Home 技术文章 您能否从服务器自动化中获益?
Applications

您能否从服务器自动化中获益?

About The Author

Outline

在过去几年中,我们的网络支持了成千上万的直播体育赛事,大量软件下载,数十亿小时的流式视频内容,以及来自数千个Web应用程序的需求,这些应用程序都需要实时响应和全球一致的性能。 为了支持这种大规模增长,自2015年以来,我们的全球网络已增长到250 Tbps以上,需要300个PoP中的数千台新服务器。

为了应对不断增长和变化的网络部署挑战,我们的运营团队使用StackStorm开发了一个IT自动化平台。 这是一个巨大的飞跃,改变了我们的团队部署,更改,修复和停用服务器基础设施的方式,跨越了我们全球网络中超过95%的服务器群。

下面介绍我们如何构建自动化平台,使我们能够:

  • 在不到三年的时间内,我们的网络中将添加超过12,000台服务器。
  • 在某些情况下自动生成票证,在其他情况下无需票证即可解决问题。
  • 为我们的团队提供工具,使他们能够实时协作。
  • 减少工程师执行一系列手动步骤所花费的时间。

将StackStorm自定义到项目小龙虾中

认识到IT自动化平台的价值和日益成熟,2015年,我们成立了基础设施自动化团队,项目名为小龙虾。 我们认真地开始开发IT自动化解决方案—对于我们这样的规模的组织来说,这不是一项小任务。 我们仍在使用的项目名称的选择是有意的。 我们的工具早已有鱼类和航海主题,但除此之外,我们选择小龙虾是因为它们作为过滤喂食器,有助于保持他们生活的环境清洁。

最初,我们考虑开发自己的IT自动化框架,但在早期就决定采用StackStorm,并通过其他增强功能来支持我们的独特要求和规模,使我们能够最有效地向前发展。 StackStorm是一个开源事件驱动型平台,支持DevOps自动化的”基础设施即代码”方法。 它擅长基于事件运行工作流,与Slack集成(我们在整个运营团队中使用),并具有本机ChatOps支持。

对StackStorm进行了一些配置更改,使其能够以我们需要的规模运行。 这主要涉及增加正在运行的服务实例的数量和减少数据保留。 当我们开始该项目时,我们的网络由8,000台服务器组成。 现在,我们的服务器数量已达到20,000台,而且还在不断增加。 我们的可扩展性的关键在于能够以工作人员的身份运行任意数量的StackStorm实例,而不是试图让一个StackStorm实例处理一切。 如下图所示,这是我们开发的一个称为策略引擎的组件所实现的,它根据我们的业务逻辑将请求提交给StackStorm。 策略引擎可以选择将请求排队,并在策略确定其安全时自动运行它们。 这些策略监控并发性,容量,流量,生产状态,基础设施, 黑名单和故障率。

提交请求通过策略引擎实例路由到任意数量的StackStorm员工,从而实现几乎无限的可扩展性。

编纂部落知识

任何IT自动化项目的基本方法都是捕获现有流程和工作流,将它们转换为无需手动干预即可实施工作流步骤的代码, 并将已编纂的工作流存储在一个集中式存储库中,您可以根据需要调用这些工作流,作为其他自动化的一部分或通过ChatOps命令调用这些工作流。

项目启动后,小龙虾团队从整个组织中捕获现有工作流和流程。 幸运的是,不同组使用的大多数最重要的进程(如网络运营中心(NOC),数据中心运营或SysOps)都有详细的文档记录,可以使用Python编程语言快速编程并添加到小龙虾中。

例如,如果我们的NOC想要实施重新启动工作流,则需要根据各种策略检查来验证在计算机上工作是否安全。 例如,如果服务器在生产中,则系统将采取步骤以耗尽连接并更新状态。 接下来,它将执行实际的重新启动和必要的步骤,以验证机器是否已准备好投入生产,然后才能最终恢复生产。

当然,有很多边缘的情况下。 最具挑战性的是文件编制过程。 这些部落知识案件需要跨职能的合作,并与专业知识确保他们得到正确处理的个人交谈。 自动化工作的另一个好处是我们能够获取这些知识,确保这些知识在我们的组织内继续向前发展。

在某些情况下,我们甚至能够通过与了解特定任务的情况或如何解决特定问题的几位工程师和技术人员联系,找到更有效的方法来处理特定任务。 我们发现,在某些情况下,不同团队成员的知识水平不同。 此时,我们将收集每个人的情报并开发一个每个人都同意提供最高效解决方案的工作流程。

按需部署新服务器

小龙虾在许多层面上改变了我们的IT运营,例如简化服务器管理,减少服务器停机时间和加快服务器部署。 仅在2018年,ITOps就为我们的全球网络增加了22 Tbps容量。 如果没有小龙虾的自动化,就不可能增加数千台服务器。 这项工作是在没有显著增加工作人员的情况下完成的。

目前,小龙虾为大约20种不同的服务器类型提供了强大的自动化功能。 在我们的组织中,我们将服务器类型定义为运行或多或少相同服务的一组服务器。 不同的应用程序在不同的服务器类型上运行,并且在生产中,每种服务器类型都有不同的支持需求。 如今,小龙虾支持大约10种服务器类型的整个服务器生命周期,还可以对大约10种其他服务器类型执行大多数修复,修订和修补。 它还为大约40或50人提供不同程度的支持。 由于我们专注于部署最广泛的服务器类型,因此小龙虾可支持约96%的全球服务器人口。

由于使用小龙虾,CDN的性能和应对意外事件的能力全面提高。 我们的网络设备齐全,可支持来自主要体育赛事流和高峰软件下载的海量,不断增长的流量,例如,通过保持更多服务器投入生产,并减少在高峰流量时段从生产中移除服务器的中断。

从性能角度来看,我们的规模有助于说明为何小龙虾至关重要。 如果您的公司只有一个数据中心,您可以安排停机时间并随时满足该数据中心的需求。 但是,当您谈论几乎每个时区的数据中心时(如下面的网络图所示),您必须应对不同的配置文件,使用情况和使用时间。 逐一考虑所有这些因素可能非常复杂,但小龙虾可以轻松处理。

使用小龙虾,我们仍然可以计划自动执行配置或升级等任务,但系统足够智能,可满足本地需求。 假设拉脱维亚的一个新闻事件导致视频流出现了巨大的峰值,当我们想要重新配置拉脱维亚的所有服务器。 由于小龙虾与我们的指标收集系统之间的集成,系统将看到流量增加,重新配置将停止。 如果需要,它甚至可以将更多的服务器投入生产。

在基础设施故障成为服务中断之前将其捕获

小龙虾和其他监控系统可显著减少单个服务器的停机时间和维修时间。 我们的系统持续监控网络是否存在问题或故障,并可自动创建服务工单或直接应用修复程序。 借助自动化系统,员工无需”眼睛”即可发现网络错误—计算机永远不会感到无聊或疲劳,并且可以持续监控。

以这种方式可以完成的检查数量几乎没有任何限制。 我们的指标系统持续运行硬件检查,不需要让机器退出生产,而另一个系统会查找不良值,并在发现问题时调用小龙虾检查机器。 通过这种方法,我们可以及早发现硬件故障。

例如,如果指标显示硬盘驱动器开始出现故障,自动化系统将启动小龙虾中的工作流程,以验证受影响机器上的错误并收集有关故障的详细信息,例如哪个硬盘驱动器在哪个插槽中出现故障, 护罩编号等。 然后,它会为数据中心操作组创建一个特制票据,并派遣技术人员安装替换票。

过去,任何手动工作流都需要多个部门在各个步骤之间进行协调或交接,这都会造成明显的延迟。 使用自动化工作流,完成时间可以是分钟,而不是等待请求弹出的传票队列中的天数。 这将更多的控制权掌握在最了解其系统和应用程序的各个运营团队手中。

为工程师提供可提高工作效率的工具

我们以前的NOC工作方法涉及发出命令和等待事情发生。 如果NOC技术人员花费10,20或30分钟等待服务器正常关闭,您必须询问原因。 这是一个很好的利用时间吗? 小龙虾可以同时运行许多次执行。 如上所述,小龙虾的设计是横向扩展的。 因此,如果我们需要更多的工作,我们可以添加一个新的节点。 如果我们突然发现自己必须一次性完成大量工作,我们可以在整个CDN中向上扩展几个节点,然后再向下扩展。

此外,技术人员在任何时候只能处理多少台机器上的内存。 只有最出色的多任务处理程序才能在不同状态下处理五台或六台以上的机器,而不会丢失跟踪或出错。 但是有了小龙虾,没有必要在各种任务之间跳转,他们可以发出命令并继续。

在由软件基础设施和系统运营团队开发的现有智能配置系统的基础上,服务器生命周期的其他方面在小龙虾中得到了全面支持,并在很大程度上自主进行,包括操作系统更新,服务器配置或重新配置固件更新以及安全修补程序。 发布新的修补程序时,小龙虾会加快验证测试,以确保可以发布修补程序。

由于小龙虾与Slack集成,因此它支持正常的IT流程,并在需求和要求发生变化时促进协作。 团队现在可以将其手动流程定义为自动化工作流程,而不是等待单个部门实施变更。 然后,他们可以将工作流程提供给最终用户以按需运行。 还可以实施限制工作流安全运行时间的策略。 这还允许工程师站在数据中心的服务器前面发出命令,以更改他们要处理的服务器的生产状态。

最后的想法

随着成千上万的客户每天通过超过20,000台服务器的全球网络推送数万亿字节的数据,我们的StackStorm实施已成为保持我们的服务健康和安全的重要操作工具。 它使我们能够更快地扩展网络以满足客户需求,同时在动态变化和意外流量激增的情况下提供更好的性能。 这种运营灵活性使我们成为更可靠的服务提供商,可以扩展以满足流媒体和Web应用程序需求。

虽然大多数组织的运营规模与我们不同,但仍有几个运营平台可使自动化具有吸引力,包括其以下能力:

  • 让开发人员专注于可产生更高回报的工作
  • 标准化日常和平凡的任务。
  • 改善部门间协作。
  • 减少服务器停机时间。
  • 通过实施固件更新和安全补丁来提高安全性。

毫无疑问,迁移到IT自动化可带来极具吸引力的投资回报,但重要的是要确保您出于正确的理由进行迁移。 一个好的方法是将自动化视为一种方式,为工程师提供工具,使他们能够提高工作效率和熟练程度,并使他们能够专注于改进。

过渡到基于工作流程的自动化是社交和编纂部落知识的绝佳方式。 而不是每个人都有自己的方法-我们把部落团结起来,提出一个共同的工作流程,并使每个人都能贡献未来获得的知识,一个单一的底线.

Tags

Just For You