事件在复杂系统中是不可避免的,自动化事件响应无法处理所有问题。
我们希望解决组织面临的主要挑战之一:待命。“ SRE:从理论到实践 – On-call 的难点”看到 Blameless 工程师 Kurt Andersen 和 Matt Davis 与 Kong 的软件工程师 Yvonne Lam 和 Shoreline 的首席执行官 Charles Cary 一起在炉边聊天——称呼。
随着软件在我们的生活中变得越来越普遍和必要,我们的可靠性标准也随之增长。应用程序宕机数天甚至数小时已不再可接受。但在如此复杂的系统中,事件是不可避免的,自动化事件响应无法处理所有问题。
这一系列的期望和挑战意味着让工程师随时待命并准备 24/7 解决问题是科技公司的标准做法。尽管有必要,但随叫随到也有其自身的挑战。以下是我们对随叫随到的工程师进行的一项调查的结果,他们认为这种做法最困难的是什么:
条形图显示基于调查的 on-call 的最大困难
这些结果表明 on-call 工程师主要在缺乏实用资源(如运行手册和角色管理)的情况下苦苦挣扎。但是,要解决实际问题,通常需要对问题背后的系统采取整体方法。
当我们在 SRE 的世界中看到这些挑战时,我们希望深入研究挑战背后的挑战,建立一个整体的改进方法。这个新的 络研讨会系列将从这个角度解决 SRE 世界中的一系列不同挑战。我们认为,专家之间的坦诚和开放的对话是改进这些实践的一种启发性和善解人意的方式。
正如标题所示,本系列将关于应如何待命的理论讨论与实际实施建议联系起来。如果您没有时间观看上面的链接,这里有三个关键要点。我将在每一集旁边继续发表一系列总结文章,所以无论你喜欢哪种格式,你都可以跟上对话。
内部待命与外部一样重要
Yvonne 主要致力于 Kong 的内部工具。因此,她收到警 的事件并不是直接影响客户的典型事件,例如服务中断。取而代之的是,她的值班班次用于扑灭阻止团队集成和部署新代码的火灾。最终,当团队由于内部工具故障而无法快速部署中断修复时,这就像中断一样对客户产生影响。情况可能更糟——如果这些工具在团队之间共享,内部中断可能会完全削弱。
Yvonne 分享了她应对这些挑战的经验,从而引发了关于内部待命的重要性的讨论。她讨论了有时这些内部问题如何特别难以确定。与其拥有一套 告客户体验的观察工具,内部监控通常只是工程师模糊地 告工具“似乎很慢”。内部问题需要一些有助于解决外部中断的结构,同时还要结合处理内部问题的独特方面。
要实现这种组合,重要的是要有一些通用的影响标准。SRE 提倡使用SLI 和 SLO等工具来衡量最终最重要的事件:客户是否对他们的体验感到满意。您也可以将这种想法应用于内部问题。将您的工程师视为“内部客户”,并根据他们所依赖的工具、这些工具失败对部署代码的影响等来构建他们的“用户旅程”。这将帮助您构建反映内部系统可靠性重要性的内部待命系统,以及支持它的资源,例如运行手册。战略性地投资这些资源需要了解它们所产生的积极影响。
将您的工程师视为“内部客户”,并根据他们所依赖的工具、这些工具失败对部署代码的影响等来构建他们的“用户旅程”。
评估客户影响很难学习
我们已经讨论了反映客户满意度的通用语言的重要性,但是您如何学习这种语言?查尔斯讨论了建立这种直觉的挑战。客户影响是一个复杂的指标,包含许多因素——事件对服务的影响程度、该服务对客户体验的必要性、有多少客户使用该服务、这些客户在业务方面的重要性……不胜枚举。
事件分类系统和 SLO 影响有助于判断事件的严重性,但总会有超出预期和模式的事件。我们所有的参与者都与他们刚刚“知道”事件比指标所说的更重要的经历有关。同样,他们可以记住,按照推荐的操作手册处理发球台的事故会导致进一步的问题。Charles 举了一个例子,他知道重启服务虽然可能解决事件,但也可能导致数据丢失,需要评估风险和回 。
最终,该小组同意有些东西不能直接教授,而必须从经验中建立——轮班工作和向更有经验的工程师学习。最重要的一课:当您不知道该怎么做并且操作手册不清楚时,请寻求帮助!我们经常认为事件的严重性决定了您如何升级,但如果您不知道严重性怎么办?马特强调了拥有一个心理安全空间的重要性,让人们在感到不确定时可以放心地提醒其他人。升级不应该是放弃问题,而是一种有助于提供最有效解决方案的工具。
该小组讨论了升级的一些细微差别。升级不应该被认为是一个线性层次结构,而是一个过程,其中最适合完成任务的人被调用。找到离你“一跳”的人,在那里你可以叫他们来处理你的事情没有能力。事件管理是一个复杂的过程,具有许多不同的角色和职责;你不应该需要自己处理所有事情。你打电话的人不一定是该领域最专家的人。有时,与你有私人关系的人,比如导师,将是最有用的。作为人类,我们所有人所拥有的 会动力在随叫随到的情况下都不容忽视,甚至可以成为一种力量。
升级不应该是放弃问题,而是一种有助于提供最有效解决方案的工具。
降低犯错的成本
交动态在随叫随到时发挥了很大作用。正如我们所讨论的,在升级时可能会有很多犹豫。人们自然想成为解决问题的人,英雄。他们可能会认为升级类似于认输。如果他们升级为专家,他们可能会因为专家将他们的努力判断为“错误”而感到尴尬,并且可能会推迟升级以避免这种错误感觉。
为了解决这个问题,Yvonne 精彩地总结道:“你必须降低犯错的成本。” 促进一种无可指责的文化,在这种文化中,每个人的最佳意图都被假定。这将使人们在升级或试验时感到不受评判。Matt 专注于将事件视为学习机会的想法,这是发现系统内部工作故障的独特机会。人们越害怕犯错,他们就越会放弃探索这个机会并寻找有价值的见解。
对错误的恐惧也可能导致库尔特所说的“平均无罪时间因素”——当事件发生时,每个团队都竞相证明他们没有过错,并且不承担解决问题的责任。逃避解决问题的挑战是一个非常可以理解的人类愿望,但需要避免这种事件烫手山芋的游戏。同样,降低犯错的成本,让人们留在餐桌旁:您的代码是否导致崩溃并不重要,重要的是恢复服务并吸取教训。
该小组还讨论了让更多的开发人员和其他利益相关者为他们自己的项目随叫随到。开发选择总会有一些你无法真正理解的后果,除非你亲身体验它们。开发人员随叫随到在开发人员和运营团队之间建立了这种理解和同理心。再一次,降低错误的成本使待命更容易接近。这不应该是一个可怕的、令人生畏的经历,而是一个学习和成长的机会,一个值得拥抱的东西。
人们越害怕犯错,他们就越会放弃探索这个机会并寻找有价值的见解。
我们希望您喜欢“SRE:从理论到实践”的第一集。请期待更多关于 SRE 中其他挑战的剧集,以及挑战背后的挑战。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!