从多个企业系统黑盒化迁移案例中吸取经验教训后,如何看待系统问题?

目录
基础设施运营中最棘手的挑战之一处理那些已经变成黑匣子的系统。
在这种状态下,系统面临着诸多挑战,例如不清楚是谁在何时何地做了哪些设置,以及为什么做了这些设置,导致责任方的身份不明确;此外,由于担心如果尝试更改可能会出现问题,因此存在破坏当前稳定状态的风险。
许多系统负责人虽然意识到系统日益增长的“黑箱”特性,却也因此感到束手无策。然而,忽视这个问题只会延缓风险的到来。本文将基于我们实际参与的案例,探讨“黑箱”系统的本质以及拆解它们所需的思维方式。
为什么系统会变成黑匣子?
系统的“黑箱化”并非负责人疏忽或恶意所致,而是在日常运营中为确保服务顺畅运行而竭尽所能的过程中逐渐形成的。
为什么原本应该透明的系统最终却变得不透明?我们将从三个角度解释主要原因。
一系列基于现场判断的个别回应。
当系统发生故障时,工程师需要尽快将其修复。然而,这种紧急响应可能会导致系统变成一个“黑匣子”。
为了解决燃眉之急,我们有时会当场更改设置或采取临时措施。然而,问题解决后,我们往往没有时间记录这些更改的细节, “为什么需要更改设置”也只存在于处理问题的人的记忆中。
此外,随着个人专业知识的提高——包括只有特定人员才能理解的独特操作和决策标准——其他成员将无法进入某些领域或难以进入这些领域。
当这一系列操作在内部没有共享的情况下重复进行时,它就会变得越来越神秘莫测。
随着时间的推移,该设置的预期目的逐渐消失。
即使是当初引入时有合理理由的设置,随着商业环境的变化,也会随着时间的推移而变得毫无意义。
例如,几年前仅在特定时期或某项活动中必要的安全限制措施,可能会继续保留而不予解除。
一段时间后,人们会因为担心“删除这个设置会发生什么”而选择保留原有设置,然后简单地在其上叠加新的设置。随着这个过程不断重复,内部机制变得错综复杂,最终导致没有人能够掌握全局。
优先考虑稳定运行可以避免变革。
当系统运行稳定时,我们往往不太愿意清理其内部组件或将其更新到最新版本。结果,新版本在我们还没反应过来之前就已经发布了,而我们还没意识到,旧版本的生命周期结束(EOL)就已经临近了。这种情况相当普遍。
随着系统持续运行,其复杂性日益增加,即使是微小的改动也会增加意外故障的风险。因此,根本性的改进和精简往往会被推迟,而工作的重心则完全转移到维持现状上。
就这样,无人完全了解、无人敢触碰的领域逐渐扩散到整个系统中。
从案例研究中可以看出三种模式
在我们目前实际支持的案例中,都存在一个共同的“面对黑匣子的时刻”,因此我们想结合我们收到的实际客户反馈来介绍一下。
1. 我们无法破解过去秘制酱料的配方(某大型媒体公司)
在服务器迁移过程中,我们开始调查时发现,之前的维护公司实施了多层独特的配置。
“实际操作中存在比我们预想的更多的未知环节,我们花费了大量时间才将其解开。” 迁移项目的本质并非仅仅是数据迁移,而是将这套“秘方”改写成一套现代化的标准流程。
2. 内容不同是自然现象(游戏运营公司)
我们也收到了这样的反馈:“在从其他公司接管服务的商业模式中,黑箱现象很常见。”
只有在收到账目后,你才会意识到图表与实际情况并不相符。重要的是不要害怕差异。积极主动地“勇于尝试,直面问题,然后才能获得更深入的理解”,最终会帮助你最快地理解问题所在。
3. 因恐惧而陷入“困境”(网络媒体公司)
在这种情况下,尽管知道操作系统和插件已经老化,但由于交接程序不完善,无法采取任何措施。
“我害怕更新会带来漏洞,所以什么都做不了。”这种“无法行动”恰恰是黑匣子的弊端,它会最大限度地增加安全风险。
拆解黑匣子的三种方法
我们不仅重视拆解黑匣子,而且重视确保类似情况不再发生的过程。
① 将“现实结构”可视化
我们不会盲目信任设计文档,而是会验证当前运行流程、网络端口状态和中间件配置的各个方面。绘制“实际配置”图,而不是设计阶段设想的“理想状态”图,是拆解黑盒的第一步。
② 通过“支持性”方式分享知识
如果由单个公司或个人单独处理黑箱拆解工作,将会带来不可逆转的风险。通过与客户携手应对这些挑战,我们可以分享我们在黑箱拆解方面的知识,并实施防止问题再次发生的措施。
正如一位客户所说,“Beyond 的专业知识与我们的研究相结合,使我们能够高效地共同解决问题。” 只有将专业视角(客观性)与客户视角(领域知识)相结合,我们才能稳妥地揭示问题的根本所在。
③ 超越拆除的“资产创造”
我们不会将拆解后的知识重新锁在某人的脑子里,而是将其重新定义为基础设施即代码 (IaC) 并配以最新的文档。这样一来,它就变成了一个任何人都能在迁移后访问和改进的基础设施。
概括
不知道某件事既不丢人也不危险。最大的危险在于因为不知道而让问题悬而未决。
诸多实例表明,共同探索“未知”领域并携手理解系统,不仅能加深理解,还能促进团队成长。迁移的完成并非最终目标,而仅仅是稳定运行新系统的起点。
如果你面对的是一个你不敢触碰的系统,为什么不从一起打开这扇门开始呢?
云基础设施服务信息
Beyond 的云服务器支持将作为合作伙伴,为您的基础设施提供支持,与您携手解决您可能遇到的任何问题。
2
