【编者按】本文作者为 Chris Riley,主要介绍告警疲劳的产生原因与对抗告警疲劳的8种方法。文章系国内 ITOM 管理平台 OneAPM 编译呈现。
各司其职、孤军作战非常不利于团队沟通,一旦发生重大事件,各个部门就很难掌握事件始末,这不仅降低了整个开发团队的沟通质量,而且对运维工作也造成了极大困扰,即告警疲劳。告警疲劳不仅会影响团队成员的工作情绪,而且会阻碍软件交付链的成长。
DevOps 的最大优势是清除沟通障碍并简化运维操作。通常,DevOps 团队有两种类别:一种是面向所有应用程序的集中式团队,另一种是面向每个应用程序或核心服务的去中心化团队。前者规模较大,但是比传统的NOC环境要小,而后者则是很小的团队。
DevOps 团队除了负责维护基础设施以外,有时还要管理发布过程,以及维持生产的正常运行。而最后这项工作是最伤脑经也最耗时的,一旦处理有误就会影响到整个环境。虽然没有人愿意值班待命,但我们还是得这样做,因为平均修复时间(MTTR)越短,问题响应越迅速,接下来的几天甚至几周里,大家的日子都会好过些——最重要的是它能维持业务的正常运转。
但是,一旦值班开始影响到团队情绪并占据运维团队大量的时间,就可能招致巨大的风险——集中式团队和去中心化团队很容易产生告警疲劳。集中式团队的疲劳不仅是要解决所有应用上的大量告警,而且还很难找到合适的人来解决问题,因为值班的人很有可能没法解决告警的问题。至于去中心化团队的告警疲劳,主要是由于团队太小而告警太多所致。
告警疲劳对DevOps和IT运维团队的影响主要体现在四个方面:
士气低落:如果大部分时间都用于解决问题,你不仅要没日没夜地处理事件,而且所做的事情越来越无聊,感觉每天就是灭不完的火,这样很容易磨灭团队的沟通热情,导致工作效率降低。
单点故障:在集中式团队中,MTTR 主要取决于运维人员通过一组非常有限的值班操作来响应问题并确定根本原因的速度。在去中心化团队中,确定根本问题的时间会有所增加,但是由于掌握的信息不足,运维人员无法准确地筛选问题并快速解决。再有就是,由于呼叫列表太短,很有可能根本无法解决问题。因此,一旦有问题产生,这些因素都会造成运维瓶颈和单点故障。
机会成本:这是告警疲劳所造成的影响中最容易被忽略的一点——整个团队和交付链所耗费的成本增加。如果你的 DevOps 团队在告警过程中不堪重负,他们就无法完善和创新交付链,因为他们只会机械地响应,没有精力去开发更好的版本、完善基础设施的自动化过程或主动预防未来的问题。这不仅阻碍了团队进步,而且增加了技术成本,因为经常重复的问题并没有真正得到解决。
发布速度延迟:解决问题所耗费的时间越长,发布速度就越慢。仔细想想你们团队有多少次推迟了发布时间?
应对告警疲劳最简单的方式是扩大运维团队,但是这未必是最好的选择,因为有些情况下我们也确实需要小一点的DevOps团队。
所以,建议大家在与告警疲劳作斗争时试试以下8个方法:
创建更好的升级策略:计划!不要只是给团队创建一个呼叫列表,你要考虑告警疲劳可能会对团队资源和士气造成哪些影响,然后再制定相应的计划和策略,也许很小的变动就能带来极大的帮助,比如打破循环。
安排 QA 和开发人员值班:这需要整个团队全员上阵,虽然做起来很困难,但是如果你把 QA 团队和开发人员安排到值班工作中,你获得的信息就更完善,解决问题的速度也更快。他们即便是与运维团队的成员并行工作,其效果也可见一斑,因为更广泛的支持不仅可以提高生产问题的可见性,帮助开发人员解决应用程序的相关问题,而且还可以加强了解,防患于未然。
进行详细的事件分析:通过事件分析评估告警设置的效果可以让你随时改进设置并发现当前存在的瓶颈。同时,数据还可以指出重复性问题。总之,要充分发挥数据的指导性作用。
安排时间以终结重复性问题:分配一定的时间确定之前快速修复的问题并彻底解决,以确保将来不再重复。但是要将问题及所有后续问题完全消灭,这对运维团队而言是个艰巨的任务。
标准化通知规则:不要让值班成员任意设置自己的规则,一定要将规则标准化或模板化,以保证一致性和问责制。
允许平行告警:除了垂直呼叫以外,还要有平行告警,这样多个团队成员就可以共同攻克问题以缩短MTTR。
利用工具:事件管理工具对抵抗告警疲劳大有帮助。一个好的事件管理解决方案,例如 PagerDuty、OneAlert ,不仅可以帮助你自动处理告警并过滤告警噪音,以防止无关紧要的告警造成过重的负担;而且还能协助你找准告警以采取更加有效的值班操作。此后,要是在晚上出现告警,你就知道真的出了问题。
优化代码:提高代码质量可以减少宕机。这其实很简单,但又总是被忽略。所以,一定要花时间优化代码、提高测试覆盖率、完善系统测试和测试自动化,并将收获和成果向所有成员展示。
以上这些方法都可以优化运维性能,并且受益面广。总而言之,告警疲劳是确实存在的问题,它不仅会影响 DevOps 和 ITOps 团队的幸福感,而且会影响整个开发团队创新和完善发布代码的能力。
本文系 OneAPM 工程师编译整理。OneAlert 是 OneAPM 旗下产品,是国内第一个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客