大型、混乱 IT 系统的 4 阶段接管方法

运维团队接管复杂基础设施时,可通过这些策略和工具集快速上手。
233 位读者喜欢这篇文章。
A skyscraper in the sky.

Thomas Hawk,来自 Flickr。CC BY-NC 2.0 许可。由 Opensource.com 修改。

每个人都喜欢使用最新技术,尤其是最现代的 DevOps 工具构建闪亮的新系统。但这并非许多运维团队的现实,特别是那些运行着拥有数百万用户的大型系统和老旧复杂基础设施的团队。

对于因公司合并、部门整合或更换托管服务提供商 (MSP) 而接管现有系统的团队来说,情况更糟。新团队必须接手并快速上手,同时使用他们一无所知的混乱系统维持系统运行。

作为一家位于中国的大型 MSP,我们花了十年时间做这件事,接管和管理拥有 1000 万到 1 亿用户的系统,通常信息很少。这可能是一个令人生畏的挑战,但我们的四阶段方法和相关工具使其成为可能。如果您发现自己处于类似的位置,您可能会从我们的经验中受益。

第一阶段:止血

正如任何优秀的战地医务兵都知道的那样,我们的首要任务是止血,同时努力抢救病人。这意味着与现有团队(尤其是最终用户)讨论系统最紧迫的问题。这些问题通常是不稳定性、性能缓慢和安全问题,按此顺序排列。

通常还存在严重的隐藏问题,例如备份失败、RAID 磁盘损坏和开放的安全端口,所有这些我们都会尽早找出。因此,除了用户问题调查之外,我们还会快速扫描系统,查找明显的问题。通过这些调查,我们建立了所有问题的列表——我们看到的问题和我们需要稍后修复的问题。

我们还要确保包括异地备份在内的所有备份都正常工作,并制作自己的备份,以防我们在修复过程中破坏某些东西。这种情况经常发生。

然后,我们在止血的过程中尽可能多地修复紧急事项,特别是更改配置(如果可以,使用我们自己的配置)、关闭公共端口、修复 Java 堆分配、调整 Apache 工作进程计数等,同时设置基本日志记录和监控,以便我们更好地了解我们看不到的东西。

我们在此阶段的第一个工具集包括我们的操作系统、服务和云审计/治理工具,以及我们的深度配置管理数据库 (CMDB) 系统,这些系统让我们详细了解关键问题、反模式、过载、错误配置、开放端口、错误配置的堆和工作进程、错误的 SSL 等。

我们还使用深度监控来查看实际情况。这包括监控站点可靠性工程 (SRE) 黄金信号,以查看系统中每个级别的速率、错误、延迟和饱和度,从磁盘到数据库、应用服务器、Web 服务器以及应用程序中的每个子服务。

这个止血阶段通常需要一周到一个月的时间。

第二阶段:找出所有问题

一旦病人被救活并或多或少稳定下来,就该弄清楚我们拥有什么,特别是所有中长期问题在哪里。此阶段的目标是发现和记录,同时在此过程中修复更多问题,并走上制定真正计划的道路,以便在未来几周内尽可能安全地进行大修。

此阶段的关键问题之一是弄清楚所有部件是如何关联的。即使没有微服务,这也很具挑战性,尤其是在较旧和较大的系统中,许多服务在单个主机上运行,各种类型的多个数据库在系统周围浮动,加上缓存、负载均衡器、代理、NFS 以及遍布各处,通常与其他事物重复。

所有这些都构成了一个非常脆弱的系统,可悲的是,我们在试图弄清楚它们或进行微小调整时,破坏了许多系统,这些调整看似完全不相关的服务。

我们的工具集包括 CMDB、服务和链路发现、自动图表绘制和日志分析系统,所有这些都让我们深入了解正在发生的事情。我们还将使用应用程序性能管理 (APM) 工具(如果可以)来进一步查看代码瓶颈在哪里,尤其是在数据库中发现问题时。

问题发现阶段通常需要几个月的时间。

第三阶段:在比赛中重建赛车

最后,我们必须重建系统。这通常意味着用更新版本的自身替换每个组件,在最新的操作系统和软件版本上,使用最佳实践配置,所有这些都经过安全保护、监控和正确备份。当然,这必须在系统运行时完成,几乎没有停机时间。理想情况下,大部分时间在白天进行,因为我们从不热衷于凌晨 3 点更新数十个系统,更不用说半睡半醒时工作会发生的错误。

我们制定了一个包含仔细排序的主计划,以便我们可以逐步更改事物。理想情况下,我们尽早添加高可用性,以便我们可以在进行过程中使部分系统脱机。每一点都需要与大量利益相关者进行非常仔细的协调,包括开发人员、运维、支持、服务台,甚至营销(以避免促销期)。

我们的重建工具集包括大量细致的手动工作,以及我们可以应用的尽可能多的自动化工具,包括云自动化(CloudFormation、Terraform 等)、配置工具(主要是 Ansible)等等。所有这些都与我们的服务器设计和自动构建系统相关联,使用我们针对各种服务的最佳实践配置。

这通常需要几个月到一年的时间,因为它通常依赖于繁忙的第三方,例如应用程序开发、网络和安全团队,甚至可能需要财务批准。

第四阶段:长期管理

在我们救活病人、解决所有问题并为未来重建系统之后,我们必须保持系统正常运行,24x7 全天候管理。这是一个全新的阶段,我们重建系统的辛勤工作已经得到了回报,因为理想情况下,从那时起一切都将一帆风顺。实际上,大型和动态系统随着时间的推移会出现许多问题,但我们更新架构、版本、配置、监控等的工作应该在未来几年内得到回报。


Steve Mushero 将于 10 月 29 日至 31 日在美国田纳西州纳什维尔举行的 LISA18 会议上展示 接管和管理大型混乱系统

标签
Picture  Files must be less than 256 MB. Allowed file types: png gif jpg jpeg.
Steve Mushero 是一位全球技术专家和企业家,常驻上海和硅谷。他是上海 ChinaNetCloud 和旧金山 Siglos 的联合创始人兼首席执行官,专注于下一代云和运维管理平台。

评论已关闭。

© . All rights reserved.