【转】如何构建高效的事件管理流程

2022-11-17  本文已影响0人  涅槃快乐是金

本文提供了一个可以有效进行事件管理的通用框架,其灵感来自 LinkedIn 的内部流程,不同组织可以根据自己的需要进行定制。事件管理有标准化的 ITIL 流程,但下面要介绍的框架有所不同,它是为解决实时生产中断而定制的。

大多数公司提供在线服务,任何中断都会带来糟糕的终端用户体验。反复中断会影响业务和品牌价值。在高速、复杂的分布式系统中,生产中断经常会频繁发生。组织应该接受事件总会出现的现实,创建事件管理流程,缩短事件解决时间。

什么是事件?

事件是计划外的生产中断,会严重破坏终端用户的体验,需要组织立即进行干预。

根据受影响的用户不同,事件可以分为内部事件和外部事件。

内部事件是指由于用于完成工作的工具出现问题而影响员工工作效率的中断(例如,部署工具在很长一段时间内无法正常使用,员工不能登录到 VPN)。

外部事件是指影响公司产品 / 服务的终端用户体验的中断(例如,用户不能从电子商务网站购买商品,用户不能在即使通讯软件中发送消息)。

上述事件可以根据严重程度进一步划分成次要(Minor)、中等(Medium)和重大(Major)。

假如有一个社交媒体网站发生了严重的事件,那么大部分用户的服务中断超过 30 分钟就可以归类为重大事件。相比之下,中东用户无法使用私聊消息功能可能就只是一个中等事件,而如果是印尼用户的个人资料中没有出现验证徽章则可以归类为次要中断。

强烈建议以业务目标为依据,以数据为基础建立严格的事件分类指南,提高透明度,防止在非关键事件上浪费工程带宽。

什么是事件管理?

事件管理是一系列有序采取的行动,旨在缓解和解决关键事件,使服务尽快恢复健康。

事件管理阶段

事件管理角色 & 职责

在事件处理期间,要有一组经过专门培训的人员承担特定的角色,在妥善处理生产事件的同时,尽量减少混乱,这至关重要。在理想情况下,一人承担一项职能,因为责任重大,需要特定的技能。也可以根据业务需求和事件的严重程度合并和自定义角色。

事件经理

事件经理(下文简称为 IM)是事件的负责人,负责以适当的紧迫感引导事件解决。在事件处理期间,应该有一个人负责事件管理过程的一般组织,包括沟通和决策。这个人有权做出决策,并确保事件根据既定策略得到有效处理。

事件的组织对于事件的有效解决至关重要。IM 将负责召集合适的团队和利益相关方,以确保事件得到快速解决。IM 将与利益相关方合作,分配在调查和补救期间提出的工作项并进行跟踪。

需要在事件处理期间做出许多决策。IM 负责识别调查和快速解决之间的拐点,并确保可以迅速做出决策,让合适的利益相关方参与 / 了解。当故障排查期间无法达成共识时,IM 有权判定谁拥有决策权。

事件结束后,IM 是事件的沟通联络点。由于 IM 积极参与了事件,所以他们要负责与服务所有者和利益相关方合作,主导事后分析。IM 将与服务所有者合作,提供从事后分析到高层管理的事件概述和基本行动项。

值班工程师

在事件发生期间,受影响服务和拥有服务的值班工程师将参与调查和缓解导致事件的问题。

对导致中断 / 问题的服务负责的值班工程师负责调查根本原因,并采取补救措施以缓解 / 解决事件。

沟通主管

利益相关者、客户和管理层之间的有效沟通对于事件的快速解决至关重要。将信息传递给利益相关者、管理层,甚至是执行者,可以避免事件的意外恶化,帮助应对混乱局面,在组织中避免重复工作 / 单打独斗,缩短解决问题的时间。

客户升级经理

对于大公司来说,因为要迎合各种各样的企业客户,而且有严格的 SLA,所以他们通常由专门的客户升级经理来架起客户与内部事件团队之间的沟通桥梁。

从沟通经理处获取最新的沟通信息,并定期将定制的信息传递给客户。

确定缓解步骤,让客户试着缓解问题,直到问题得到完全解决。

执行经理

对于影响客户的服务,执行经理会持续更新事件状态和客户影响详情。对于可能影响业务的事件,执行经理还会在相关决策中扮演重要角色,分配资源,加速事件解决过程。

事件管理工具

为了更快地缓解问题,事件管理生命周期的每个阶段都需要许多工具。大公司会推出自定义的工具,可以与生态系统的其他部分很好地进行互操作。相比之下,对于不需要构建自定义工具的组织来说,市场上有许多工具可供他们使用,有开源的,也有商业的。本节将回顾事件管理过程中用到的基本工具的几个标准类别。

预警管理

预警管理可以帮助设置告警,并监控特定时间段内时序指标的异常情况。当检测到运营指标异常时,它会向值班人员发送通知。经过适当的配置,预警管理工具可以通过多种媒介将报告升级到值班工程师:紧急预警通过寻呼机 / 电话,非紧急预警通过短信息 / 电子邮件。

预警管理工具应该支持不同的媒介,并能够与可观察性工具(如 Prometheus、Datadog、New Relic、Splunk 和 Chronosphere)互操作。Grafana Alert Manager 是一个开源的预警管理工具;市场上也有一些商业预警管理工具,如 PagerDuty、OpsGenie 和 Firehydrant 等。

值班管理

在一个拥有数千工程师和微服务的大型组织中,在合理的时间内让合适的人参与进来,对于更快地解决事件至关重要。值班管理工具通过值班调度和升级功能,跨团队分担值班职责,并提供值班工程师映射服务,在严重的大规模事件中促成无缝协作。

值班管理工具应该支持调度和服务所有权详情的自定义。PagerDuty 和 Splunk Oncall 是其中最著名的两个商业选项,而 LinkedIn 的 Oncall 工具是一个开源版本,适合寻找低成本选项的组织。

协作工具

在发生严重事件时,数百名员工参与其中的情况并不罕见。协作和沟通对于管理混乱和有效解决事件至关重要。如今,每家软件公司都有通讯或视频会议软件,工程师们可以随时使用这些软件进行协作。可以轻松快速获取信息,弄清楚要在即时通讯应用中加入哪个组或要在视频会议软件中加入哪个会议通道,对于缩短解决事件的时间至关重要。

为每个事件设置单独的讨论渠道,对于简化协作过程至关重要。通常,会议通道的链接会固定放在群聊的描述中,方便新工程师加入会议。完善的流程可以减少诸如“我应该加入哪里”或“谁帮忙分享下会议通道链接”等协调方面的问题的干扰,并保持事件排查的沟通渠道畅通。

事件跟踪

事件会生成大量的重要数据,可能来自自动处理流程,也可能是手动记录以供将来参考的数据。由于缺少结构化,传统的笔记应用程序不会有太大的发展。支持多个自定义字段和协作功能的工单平台会更适合这种情况。获取历史事件数据的 API 接口也至关重要。

许多公司都使用 Atlassian 的 JIRA 跟踪所有事件,但 Notion、Airtable、Coda 等类似的工具也同样有效。Bugzilla 是一个可以帮助我们跟踪事件的开源替代方案。

知识共享

知识共享工具不可或缺,可以帮助工程师轻松找到正确的信息。运行手册、服务信息、事后分析文档和待办事项都是知识共享应用程序的一部分。在这方面,谷歌文档、维基和 Notion 都是很好的商业软件,可以帮助我们在组织内部撷取和共享知识。

状态页面

状态页面是为了方便外部利益相关方了解服务当前的健康状况。感兴趣的人士可以订阅有关的最新资料,了解有关事件处理进展的更多信息。当发生外部事件时,状态页面可以减少客户服务部门收到的咨询系统健康状况的入站请求。

事件响应周期

在前面几节中,我们讨论了事件管理中的不同阶段、角色和工具。本节将使用上述信息详细说明事件响应过程的各个阶段。

检测

通过内部监控系统或是客户支持或社交媒体的用户报告发现问题。一种很常见的情况是,内部员工首先发现问题并将其升级到集中式的站点运营团队。组织应该采用合理的可观察性解决方案来更快地检测问题,从而尽可能地缩短检测时间(Time To Detect,TTD)。

对于用户升级的问题,应该实现一个流程,让员工使用可用的值班管理工具将问题快速升级到相关团队。问题的升级标志着事件管理生命周期的开始。

创建

团队收集有关事件的必要信息,并创建事件跟踪工单。其他有助于工程师排查问题的信息也应该收集,如受影响的产品、开始时间、受影响用户等。

一旦创建了工单,值班事件经理就需要使用内部事件管理工具参与进来。为了方便协作,应在内部消息服务和视频桥中创建共享的沟通渠道。

分析

事件经理与团队一起确定受影响服务的值班工程师,并与他们一起进一步了解用户影响。根据事件的影响大小,事件经理将事件分为重大、中等或次要。重大事件非常严重,通常需要全体出动。

排查

一旦问题被归类为重大事件,就需要向所有利益相关方发出事件初步通报,说明发生了重大事件,并提供当前掌握的有关该事件的信息。最初的通报缺少细节,但应该为接收方提供足够的上下文,使其理解中断会产生什么影响。应及时更新面向外界的状态页面,承认出现了问题,组织正在努力解决。

事件经理应将问题升级,并根据能够获得的最佳信息召集所有相关的值班工程师。沟通主管将负责沟通,客户升级经理应向客户提供最新信息。事件跟踪工单应该包含所有必要的事件跟踪数据。

如果需要其他团队参与,那么事件经理应分别与他们联系,直到解决事件所需的所有人员都到场。

解决

团队应集中精力缓解事件,并在之后找到根本原因和解决方案。在这种情况下,团队可以探索将所有流量从受影响区域重定向到可用健康区域的选项,设法缓解问题。使用任何临时手段缓解事件都有助于缩短事件的 TTM(Time to Mitigate,缓解时间),为工程师消除导致问题的根本原因提供急需的空间。

在整个排查过程中,要详细记录稍后可能需要修复的东西、调试过程中遇到的问题和流程效率低下的情况。一旦问题得到解决,临时缓解步骤将被删除,系统恢复正常状态。

要根据发现的问题、解决问题的详细步骤和下一步可能采取的步骤更新事件通讯。然后,向客户提供最新解决方案。

回顾

定位到根本原因后,编写一份详细的事件文档,其中包含事件期间捕获的所有细节。参与事件管理的所有利益相关方和团队聚在一起,进行事后分析,其间任何人都不会受到指责。这样的回顾会议旨在反思该事件,并识别任何改进技术或流程的机会,帮助更快地缓解问题,防止类似事件的再次发生。要仔细研究事件的时间轴,以便发现事件检测或管理过程中任何效率低下的地方。确定所有必要的行动项,定义好优先级并分配给各自的所有者。高优先级行动项最紧急,应尽快处理,其余优先级比较低的行动项也必须有截止日期。要指定专人帮助跟踪这些行动项,并确保团队承担起相应的责任,完成好各自的工作。

度量指标

就像 SRE 圈里所说的:“可度量的东西才会被修复。”以下是应该在所有事件和组织中度量和跟踪的标准指标。

小 结

本文讨论了事件管理过程,并介绍了它如何帮助组织更快地管理混乱和解决事件。事件管理框架有各种风格,但这里提出的思想非常通用,任何规模的组织都可以进行定制和调整适配。

计划引入事件管理框架的组织可以从小事做起,收集事件相关的数据。这些数据有助于我们了解现有系统的低效或不足之处,并提供比较资料,衡量即将推行的新事件管理流程的进步之处。一旦对需求有了更好的了解,就可以从一个与组织规模相匹配的基本框架入手,而这不会产生任何额外的开销。可以根据需要在流程中引入其他步骤或工具。

如果你正在寻找其他关于改进和扩展事件管理流程的信息,则可以从以下几个地方入手:

希望改进当前事件管理流程的组织必须进行仔细地测试、度量、调整并重复该方法。重点应该是找出当前过程中出现的问题,进行增量改进,并衡量进展。务必从小事做起。

原文链接:
https://www.infoq.com/articles/effective-incident-management/

上一篇 下一篇

猜你喜欢

热点阅读