(编者注:这是此帖子的更新;它最近在2018年2月13日上次更新。)

太多公司继续使用随叫随到的旋转和事件响应流程,使团队成员感到压力,焦虑,并且一般悲惨。值得注意的是,充足的良好工程师正在为此而拒绝或留下工作。

它不一定是这样的。在新的遗物中,我们的Devops练习使我们能够创建支持和事件响应流程,支持快速增长,并最大限度地提高系统的可靠性 - 同时保护开发商免受戏剧和压力的影响。我们希望通过分享我们的经验和建设和管理随叫随线旋转和事件响应系统的最佳实践,我们可以帮助其他公司解决类似的挑战 - 为自己的开发人员和其他从业者提供生活更轻松。

行动中的随叫随到的政策:从新遗物学习

我们的工程团队由软件工程师,站点可靠性工程师(SRES)和工程管理人员组成。大多数团队至少有三项服务负责。组织中的每个工程师和工程经理都加入了一个呼叫旋转,通常在他们就业的前两到三个月内开始。

我们首先做到这一点,因为它是必要的。新的遗物为全球数以千计的客户提供关键的监控,警报和商业智能,适用于其应用和基础设施。当我们的一个客户有问题时,它不是一个选择,让问题等到第二天。虽然我们在美国和欧洲进行了工程师,但我们的大多数工程团队都有共享同一时区的成员。这意味着我们无法跑“遵循太阳”的旋转像谷歌一样在这项计划中,世界上某一地区的工程师在结束工作后,将他们的随叫随到的职责交给全球各地的同事。

最佳实践:采用和拥抱Devops实践

在出现之前DevOps作为应用程序开发方法,呼叫职责通常依赖于工程师和其他IT人员的子集,例如集中式站点可靠性或运营团队。

这些员工 - 而不是实际建立软件的开发人员 - 响应他们观看的服务的事件。然而,站点可靠性团队的反馈很少达到开发人员。此外,产品所有者经常选择进入下一个新功能,而不是敦促他们的团队偿还技术债务,并尽可能可靠地使产品和服务成为可靠的。亚博最新版直播

一个原因Devops的出现是拆除这些组织筒仓。在现代应用架构(如新的遗物用途)中,服务适合依赖于复杂的云服务,数据库维护者和复杂网络层的复杂系统的大型互连产品平台 - 只是为了命名系统的几个部分。虽然特定的事件响应可以从一个团队开始,但是要了解事件和解决任何客户面向响应所需的细节可能涉及进一步堆栈的服务。

Devops支持未经团队是一个岛屿的想法,该团队必须能够互动并清晰,记录的随叫随到的流程,以保持这些复杂的系统顺利运行。此外,在强大的Devops实践中,开发人员对他们构建的服务做出更好的决定,因为它们也必须支持它们 - 他们不能为别人担心墙壁服务。

最佳实践:平衡自主权和问责制

然而,成功的呼叫过程确实取决于团队的组成,他们管理的服务以及团队的服务的集体知识。新遗物的大多数球队使用某种形式的一周内呼叫旋转,一个工程师作为主要响应者,另一个工程师作为次要的。所以,如果一个团队有六名工程师,那么每六周的每个工程师都会成为主要人员。

大多数团队使用PANTRDUTY时间表确定主要和次要,他们使用PageRduty升级政策要确定谁首先分页,当次要分页时,如果既不是主要的也不是辅助确认页面。

最佳实践:追踪和测量呼叫性能

新遗物跟踪各个工程师,团队和组级别的几个呼叫指标:

  • 每个工程师的页数总数
  • 工程师被分页的小时数
  • 收到的离事数量的页数(在正常工作时间之外发生的页面)

这些指标以及如何对其进行响应,对维护允许团队在随叫随到的实践中茁壮成长的结构和组织至关重要。例如,在新的遗物中,我们建立了一个从PageRduty提醒信息并将其写入的工具遥测数据平台。然后,经理和执行者可以创建仪表板,显示在给定的时间框架内团队被分页的次数,以及这些警报在非工作时间发生的次数。

跟踪Off-Locth页面有助于注意与呼叫无管理呼叫负载斗争的团队。什么是无法管理的负担?在新的遗物中,如果团队平均每周超过一个OFF小时页,那么该团队被认为具有高调的负担。

如果团队的负担太高,请考虑允许团队专注于支付技术债务或自动化远离劳动,直到他们的随叫随到的负担。或者,如新的遗物,您可以以高级站点可靠性工程师(SRE)的形式提供支持,他可以帮助团队提高服务。

选择随叫随到模式时要考虑的问题

随叫随到的模型不一定是复杂的,但它必须确保指定的工程师始终可以响应页面并处理涉及其责任范围的事件。关注模型应该回答的一些问题包括:

  • 模型如何为每个呼叫旋转选择团队​​成员?
  • 旋转持续多久?
  • 随叫随到的工程师无法回答页面时会发生什么?
  • 如果工程师不感觉到处理随叫随到的页面的任务,则提供哪些选项?
  • 在任何特定时间将在通话时间有多少工程师?
  • 多个随叫随到的工程师将如何划分职责?
  • 团队将如何处理未核化的旋转和其他无法预料的事件?

对于拥有多个团队的大型组织来说,答案还取决于团队自治的程度。DevOps组织通常倾向于高水平的团队自治,但有些组织比其他组织更进一步。

事件响应:寻呼机熄灭时会发生什么

组织的随叫随到过程是组织软件质量和可靠性实践的一个关键方面。另一个密切相关的方面涉及其事件响应程序。

事件响应涵盖从平凡地恐怖的赌场进行恐怖;没有专业监测工具的帮助,有些人无法注意到,而其他人可能会影响数百万用户并制造国家头条新闻。

新遗物定义了“事件”,如系统以一种可能对其客户产生负面影响的意外方式行为的任何情况。

像许多软件公司一样,New Relic不能等到事故发生后再制定计划。我们需要迅速而有效地采取行动。我们必须有一个明确的计划,并准备就绪。

最佳实践:在您的客户之前发现事件

成功事件响应系统的目标很简单:发现事件 - 而且,理想情况下,在客户受其影响之前修复它。

作为一个组织,我们的目标是确保我们从未发现事件,因为恼怒的客户正在发推文 - 这是最糟糕的情况。我们还要确保我们没有愤怒的客户来电支持,也不是理想的情景。

在新的遗物,我们喜欢说我们“喝自己的香槟“(它比”吃自己的狗粮“更好)。工程团队可以自由选择他们用来建立服务的技术,其中一个条件:必须进行服务。这意味着它必须具有监控和警报。(除了极少数情况下,我们使用自己亚博最新版直播的产品。)

当然,如上所述,工程团队也有他们管理的服务的通话旋转。一个良好的监控设置,具有主动事件报告,意味着一旦检测到问题,就会分配工程师 - 最好在客户注意到它之前。

最佳实践:开发一个系统以评估事件严重程度

有效的事件响应从一个系统开始对其严重程度进行排名 - 通常在客户影响方面测量。新的遗物内部事件严重程度规模为组织建立自己的事故响应过程做出了一个很好的起点;它基于1-5的排名,为每个级别清楚地记录了标准:

  • 5级事件不应该具有客户影响,并且可以简单地宣布提高对危险服务部署等某些内容的认识。
  • 第四级事故涉及到影响但不妨碍客户的小错误或小数据滞后。
  • 3级事件涉及主要数据滞后或不可用功能。
  • 第1级和第2级事件是涉及简短,全产性中断或对业务直接威胁的案件的案件。在新的遗物,“kafkapocalypse“从几年前,这是这种事件的一个例子。

每个事件级别都涉及一种用于调用内部资源的特定协议,管理响应,无论是如何与客户沟通以及其他任务。新的遗物将其最严重的事件作为紧急情况进行分类;这些通常需要提高响应,并且在某些情况下,直接参与我们的法律,支持和领导团队。

考虑事件如何影响客户并影响客户体验非常重要;并考虑资源,响应小组需要诊断,包含和解决问题。

在New Relic,我们会在事件发生时指定严重程度来决定我们需要多少支持。然后,在事件发生后,我们根据实际的客户影响重新评估指定的严重级别。这反映了New Relic的一个关键事件响应原则:我们鼓励工程师在事件中迅速升级,以便他们能够获得解决问题所需的支持。事件结束后,我们评估实际影响,如果结果证明影响没有最初担心的那么严重,我们就降低其严重性。

最佳实践:定义和分配响应团队角色

下表概述了新的遗物用途对其事件响应团队的工作人员的角色概述。其中许多角色在特定严重性级别输入图片。在其他情况下,分配给角色的职责可能会根据事件的严重程度而变化:

角色 描述 组织
事件指挥官(IC) 驱动现场事件的解决。保持CL通知事件的影响和解决状态。保持新并发症的警报。
该IC不会对事件进行技术诊断。
工程
技术领先(TL) 执行技术诊断和修复事件。保持IC了解技术进步。 工程
通讯铅(CL) 在发生事故时,让IC了解客户影响报告。让客户和业务人员了解事件。决定使用哪个通信通道。 支持
通信经理(CM) 协调团队的紧急沟通战略:客户成功,营销,法律等。 支持
事件联络(IL) 仅为严重性1事件。保持支持和业务所通知所以IC可以专注于解决方案。 工程
紧急指挥官(EC) 可选的严重性1事件。如果多个产品倒塌,则作为“IC的IC”。亚博最新版直播 工程
工程经理(EM) 根据事件的根本原因和结果管理受影响的团队的事件后流程。 工程

最佳实践:设置事件响应方案

大多数组织都不能完全模拟实际的事件响应——尤其是严重程度很高的事件。但即使是有限的模拟也可以让您了解事件期间将发生什么、如何设置优先级和升级过程、如何协调团队角色,以及其他关键见解。

让我们来看看一个例子,涉及新遗物的假设事件:

我们的模拟开始于一个新Relic产品团队的待命工程师获得一个页面。的New Relic的人工合成物Minion将监测工程师服务之一的健康检查让她知道健康检查失败。她检查了这一点新的遗物见解仪表板的服务并看到,确实,健康检查失败了 - 吞吐量正在下降,而她担心的客户将受到影响。现在发生了什么?她该干什么?

首先,她在我们指定的松弛频道宣布了一件事。一种叫做Nrrdbot(一种改良的克隆)的机器人GitHub的Hubot),有助于引导她的过程。自从她决定采取事件的指挥官,她类型911 ic me。此更新Slack通道标题并创建一个新的开放事件盖板(我们的内部家用事件追踪器);NRRDBOT直接邮件(DMS)工程师具有下一步。

在松弛中宣布的示例事件

新遗物使用名为NRRDBOT(GitHub的Hubot的修改克隆)的松弛机器人来指导通话响应器通过事件响应过程。

IC现在应该做三件事:

  1. 设置一个严重程度(有多严重?)
  2. 设置标题(出现问题的摘要)和事件的状态(现在正在进行的内容)。
  3. 找到一个或多个技术线索来调试这个问题。如果集成电路是技术主管的最佳人选,他们将会找其他人来接替集成电路的角色,因为集成电路不会对事故进行技术诊断。

当IC设置严重性(或在事件过程中更改它)时,确定谁会引入响应的帮助。对于至少严重3级的事件,支持的团队成员自动加入事件作为通信领先。CL的工作是协调与客户的沟通;他们将在任何与事件相关的客户投诉中继,并根据客户发现的客户积极沟通。

此时,IC开设了一份人群采购的协调文件,以便在参加响应的每个人之间分享。她负责管理响应所涉及的所有各方之间的沟通流程。她还在需要时支持支持,更新状态(每10分钟或作为NRRDBOT提醒她),并更新严重性,因为事情变得更好或更糟。

如果问题尚未在60-90分钟内得到解决,那么她将把她的IC扮演给别人,因为它是一种疲惫的责任,特别是在凌晨3点。

一旦问题完全解决,所有领导都证实了他们的满​​意度,IC通过进入结束事件911结束在松弛。这就结束了事件。

最佳实践:希望最好,但计划最坏的计划

上面的例子模拟了New Relic的一个重大事件,但它从来没有上升到真正的紧急情况的水平。紧急事件极其罕见(或者应该如此),但它们给企业带来的风险呈指数级上升。事实上,在最坏的情况下,如果事件升级到无法控制的程度,它可能会变成一种存在的威胁。

在新的遗物中,具有严重性1或2的事件集自动触发了页面的后台进程新的遗物应急响应力(nerf),以及一个随叫的工程学执行。NERF团队成员经验丰富的新遗物员工,深入了解我们的系统和架构,以及我们的事件管理流程。它们擅长处理高度严重性的事件,特别是当这些事件需要协调多个团队时。

高管加入一个事件响应团队,内合行人员提供三个关键职能:通知执行领导;协调我们的法律,支持和安全团队;并做出艰难的决定。

最佳实践:使用事件来学习,改进和成长

作为从事件捕获知识和学习的第一步,我们示例中的新遗物IC也将执行几个事件后任务:

  • 收集进入协调文件的最终详细信息,包括
    • 事件持续时间
    • 客户的影响
    • 任何需要回滚的紧急修复
    • 事件期间出现的任何重要问题
    • 关于谁应该参与事后回顾的注释
  • 确认谁应该被邀请参加无可指责的回顾
  • 选择一个团队拥有事件(在上面的例子中,综合团队)因此该团队的工程经理可以安排事故后回顾

我们还要求团队在事件发生后的一个或两个工作日内进行回顾。新的遗物组织“无可指责”回顾旨在揭示问题的根本原因 - 找不到替罪羊。了解更多关于新的遗物结构和用途无可指责的回顾作为其更广泛的致力于DEVOPS DEVOPS最佳实践的一部分。

最佳实践:实现一个不重复事件(DRI)策略

在新的遗物,如果服务事件会影响客户,我们有一个不要重复事件(DRI)迫使我们停止对该服务的任何新工作的政策,直到我们修复或减轻事件的根本原因。DRI进程在新的遗物工程团队的成功中发挥着重要作用 - 确保他们识别和偿还技术债务,这是经常通过其他方式优先考虑的工作。

重要的是要记住,目标不是完全消除事件 - 这根本就是不是现实的。相反,新的遗物希望其团队更有效地回应未来的事件发生。

现在轮到你了:引导事件响应计划的问题

我们涵盖了很多地面讨论新的遗物如何处理我们的随叫随到和事件响应流程,并建议您可以从经验中带走的最佳实践。我们鼓励您创建明确的指导方针,以便您的团队知道预期的内容;识别并降低事件响应和解决过程中最严重的摩擦;并决定如何构建随叫的随叫随到和事件响应进程。

解决以下问题可以帮助您更有效地执行所有这些任务。

  • 尺寸:工程组织有多大?个人团队有多大?您的团队可以处理什么样的旋转?
  • 增长:工程组织的增长有多快?周转率是多少?
  • 地理:您的组织是地理上集中或广泛分布的吗?您是否拥有尺寸和分发来研究所“遵循太阳”的旋转,或者工程师需要应对offlow页面页面?
  • 组织:工程组织如何结构化?您是否采用了现代Devops文化,其中团队拥有从开发到运营的服务的完整生命周期,或者是默默地的开发和运营?您是否有集中式SRE组,或者是整个组织嵌入工程团队的SRES?
  • 复杂:应用程序的结构是怎样的?您的工程师是否支持将定义良好的服务插入到更大的体系结构中,或者您的产品是由不同团队支持的单一应用程序?每个团队支持多少种服务?这些服务有多稳定?
  • 依赖性:有多少客户(内部或外部)取决于您的服务?如果服务失败,爆炸半径有多大?
  • 工具:您的事件响应过程和工具有多复杂?你的团队的运行手册和监控有多彻底和及时?当工程师响应一个页面时,他们有足够的工具和组织支持吗?工程师会自动吗,动作的问题通知
  • 期望:正在呼吁您的工程文化中的规范?它被视为工作的宝贵和重要组成部分,还是作为无关的负担?
  • 文化:您的公司是否有一个可靠的文化,侧重于真正的根本原因和解决系统问题,或者您有“责备和羞耻”文化,当出现问题时,人们受到惩罚的文化?

查看加速Aiops的事件响应了解更多关于New Relic应用智能如何帮助您改进您的事件响应过程的最佳实践。

Annette Sheppard是新遗物的高级产品营销经理。她专注于AIOP,一直在寻求学习新的东西。查看帖子

有兴趣为New Relic博客写作吗?亚搏体育登入网送我们一个球场!!