电锯硅片大屠杀

职责是大多数现代组织的重要组成部分。 毕竟,问题经常发生在凌晨3点。 但是谁应该当值? 以及如何组织这个过程使其有意义?

看在猫下,那里的Baruch Sadogursky( @jbaruch )和Leonid Igolnik( @ligolnik )讲述了一个不幸的值班人员的恐怖故事。 还记得Vasya,他总是不得不在凌晨三点修复错误吗? 这仅仅是开始。



该材料是根据Baruch和Leonid在2017年秋季DevOops会议上的演讲准备的。



所以值班。 以假设的Vasya为例,他不久前在某家公司工作了大约一年。 今天是星期五,恰巧瓦斯亚当值。 一切顺利:Vasya在睡觉,他的梦想很美。

尽管他没有任何怀疑,但他的技术支持同事却收到客户的电话。 他说,周一他将不得不向CEO展示一个非常重要的演示,但是某些操作无效。 迫切需要解决此问题。 支持人员会竭尽所能(建议将其关闭然后再打开),并将此问题升级为服务人员。

Vasya独自负责整个项目,他将必须这样做。 一位技术支持工程师叫醒了他,并试图用非常简单的词来解释问题:“那里不起作用,出了点问题。”

Vasya倾听同事的声音,思考发生了什么,并做出唯一正确的决定...



支持工程师很生气,但仍然要求客户等到星期一。 客户不同意这种情况,并将问题上报给支持经理。 现在他打电话给Vasya并说这并不严重:“不过,事情很重要,客户担心,这是必要的。” Vasya是负责任的人。 必须有必要:喝咖啡和跳舞(在原木上找东西)。

在日志中,事实证明一切都不是那么简单。 首先,Vasya寻找一个可以访问正确日志15分钟的人员。 他找到了并得到了日志。 但是如何? 当然要以.doc格式邮寄。 Vasya是负责任的年轻人,他读过Word中的日志:根本不了解任何内容。 但是,您可以在知识库中搜索一些关键字。 Vasya将有趣的事物挂了大约20分钟,学到了很多有趣的事物,但目前不需要。

Vasya接下来做什么? 您需要寻找人,但是Vasya是一位年轻的工程师,要唤醒Senior吓人。 因此,他认为您需要给同一个初级的同事打电话。



一位同事是一个好朋友,悲痛的一半使他们了解问题所在并开始解决。 经过两到三个小时的工作,他们找到了一个修复程序。 必须立即将其投入生产。 但是如何? 有一个变更控制委员会,每两个星期在星期一开会一次。 但是此选项不合适,您迫切需要它。

自然,您无法部署到生产环境,没有根。 因此,唯一的选择是通过电子邮件发送包含两个类和一段说明的jar文件。 这些家伙将通过ssh投入生产,在那里他们会将WebSphere中的这个jar文件放入正确的目录中。 现在,早上6点至7点,您终于可以充满成就感地上床睡觉了。



星期一,Vasya上班,看到一幅异常的图画。 CEO之所以对工程副总裁大喊,是因为客户对CEO的大吼是因为他的CEO对他的大吼。 事实证明,不可能解决这个问题。

当局有四个问题:“星期五发生了什么?”; “为什么我星期一听到老板的消息?”; “为什么修复需要六个小时?” 和“谁该怪?” 行动人员被召唤到房间里,他们说这不是他们的问题。 Vasya和另一位女佣被叫到房间,他还说:“什么都没做。” 整个土豆比赛一直持续到午餐。

由于该吃饭了,所以决定“好吧,它本身就被打破了,没人要怪。” 故事的结尾。



让我们安排一个简短的汇报:让我们经历这个噩梦,并尝试为所有问题给出答案。

谁应该当值


系统管理员(或更时髦的词-SRE)可以当值。 他们这样做已经有好几年了,他们已经做好了一切。 DBA可以当值,从事消息传递的人可以。 如果幸运的话,NOC(网络运营中心)正在值班-这是所有这些家伙都放在同一房间的时间。 他们有运行手册,说明在困难情况下该怎么办。



这些家伙一切都清楚,他们是职业球员。 但是,不幸的是,DevOps具有等式的第二部分,它实际上并不想执行任务。 第二部分如何制作? 是的,是否必须强制使用,因为专业人士应该意识到义务的重要性。

人们不想当值有两个原因。 一种情况是这样的:



当一切都不好的时候,没人愿意当值。 这个问题的解决方案非常简单:



您需要编写良好的代码,一切都很简单。 但这也需要学习。 出现了一个新问题:“如何学习?”。 您需要将手指放在插槽中-#painisinstructional。 疼痛会有所帮助。



职责本身可以提高代码的质量。 星期一,同一位瓦斯亚很可能会纠正他的错误,以免再坐一个晚上寻找错误。

值班障碍


值班时,不应有一些障碍。 让我们来看看Vasya的星期五惨败吧。 还记得他如何阅读Word文档中的日志吗?



我们所有人都喜欢Microsoft产品,但是在现代世界中您无法做到这一点。 关于日志,有一些显而易见的事情,每个人都应该理解。 要点是解决这些问题的工具数量:Logstash,Loggly,Sumo逻辑,Kibana。 需要使用它们。

回到访问问题:为什么不授予对日志的访问权限? 答案是敏感数据。 客户应保证保护数据免遭泄漏。 这意味着无法将日志显示给任何人,或者您需要使用具有数据屏蔽功能的系统。 他本人会隐藏个人数据,并且在没有所需访问级别的情况下不会将其显示给任何人。 当今所有的日志解析工具都具有此功能。

这些工具的另一个优点是可以在它们之上建立“对穷人的监视”。 例如,在日志中,看到一定数量的错误(队列已满,等等)后,您可以触发过敏。



谁决定问题的重要性


如何理解,执勤或紧急奔跑解决问题? 谁指定严重程度? 谁来决定问题的严重性? 解决支持。 怎么了 因为支持对问题有看法。 他知道一切都糟透了。

而且,今天几乎所有公司都按照“连续交付”的原则工作,因此所有客户都同时获得了所有功能(并同时存在错误)。 假设存在一个错误,该错误对于客户端来说像是“那里不起作用,没关系”。 同时,支持人员会看到数百个有关该问题的警报,这显然很严重。

客户还参与确定问题的重要性。 但是有一个问题-客户并不总是相信自己的小问题会得到修复,并且将其放在首位。 严重程度开始被用作操纵工具。 但是,如果正确定义了严重性定义,并且客户端了解什么是SLA,则通常不会发生这种情况。 当客户开始了解什么真正重要和什么简单重要时,这是一个相互学习的过程。

由于产品制造商并不总是了解问题的背景,因此需要给客户机会展示重要性。

SLA-在一天之内保证响应和解决方案的速度,但可以更快。 同样,这取决于上下文。



组织挑战


Vasya直到最后都不了解问题。 当然,他只是醒了,一位技术支持同事也做得不好。 它仅以一种方式处理:票证。 票证是一个参考号码,告诉您一切的含义。 这对于Vasya来说是必要的,因为支持人员可以告诉Vasya“打开我们的票务管理系统并查看票号42”,而不是电话。 由于多种原因,这是必要的。 首先,Vasya不会醒来,而是睡着了,而是去读一张票,了解这有多么重要。 其次,可能存在多个问题。

影响整体情况的另一个困难是:需要找到Vasya。 支持者如何知道Vasya今天正在值班? 如果他也不认识Vasya怎么办。 重要的是,您只能找到合适的人。 解决方案是虚拟扩展,具有工程师,生产等各种前缀。 好吧,或者其他更复杂的系统。 使用此解决方案,您无需猜测半夜应该去哪里打电话;所有内容都会自动切换。

在Slack,Telegram,Skype中的任何地方进行升级聊天都更加方便。 聊天标题是同一张票的号码。 合适的人之间的这张票上的所有通信都在此聊天室中进行。 这种聊天工具最有用的功能之一是,您无需在一段时间后告诉参加工作的人任何事情。 您可以简单地了解已经做出的决定。

好吧,虚拟电话桥可以与发生火灾时的聚会场所进行比较:每个人都知道发生问题时应该去哪里。 顺便说一下,在Zoom或Bluejeans之类的现代系统中,所有必需的功能已经内置。



升级路径


瓦西亚害怕召唤主人,因为他们太可怕了。 怎么办呢? 让我们谈谈升级路径。 您必须始终知道谁以及何时起床或下班。 这对每个人都应该完全清楚:一个醒来的人,一个醒来的人。 如果第一个路径不起作用,您还需要知道在哪里打电话。 良好的升级途径一直到公司的首席执行官。



有些沟通应该来自首席执行官。 他必须意识到关键问题。

差事经理


下一个有趣的职位是值班经理。 他不必成为技术专家,也不必参与解决问题。 首先,Vasya在深夜无法告诉客户任何有用的信息。 值班经理可以在这种情况下提供帮助。 此外,他可以从事协调,困难情况下的项目管理,资源管理。 毕竟,工作必须顺利进行。



生产准入


我应该让Vasya进行生产吗? 毕竟,并不是所有人都是出色的工程师,而且有些我不想向他们学习的东西会令客户感到恼火。 这可以通过部署过程解决。 如果正确配置了过程,则Vasya可以单击按钮,结果将禁用其生产代码。 如果您有正常的连续交付管道,则很可能可以自动完成(所有测试都会通过)。 如果不是这样,在许多公司中,决定是由高级工程师或经理做出的。 他审查,评估代码的风险并做出决定。

甚至在此修复程序出现之前,就应该包含用于故障排除的文档化工具。 最常见的值班问题之一:他开始思考如何打开调试或更改日志级别。 同时,其他所有问题都没有。 建议记录下解决方案。



职责变更


现在让我们讨论值勤过程,通常需要一周时间。 在某些时候,有必要进行更改。 为了有效地进行更改,必须在特定时间执行此操作。 必须清楚地计划所有事情,并且希望能够将问题有效地转移给下一个值班人员。 在许多公司中,这是作为标准集会进行的,或者在其中创建了一个页面,供服务员保存一本小杂志。



其他问题


还有其他各种问题需要解决。 其中之一是获得生产的证明。 建议进行基本认证,以便一个人表明自己了解什么是可能的,什么不是。



怎么翻译呢?


但是如何将所有这些都带到公司呢? 您需要了解,这将需要一些时间。



我们需要从值班的高级官员开始。 他们有经验,知道如何维修。 主的问题更少:可以访问日志等。

建议从一个小团队开始。 如果团队已经很大,则需要在其中创建一个小的团队。 此外,当一切开始正常运行时,您可以羞愧其余的。



结论


我们传递到主要的东西。 尽管我们的技术人员爱上了技术,但最重要的不是公司使用的产品和技术,而是值班人员“我参与改进产品的过程”(或职责本身)的感觉。 许多人都知道您需要值班,但是您希望看到改进。 人们应该意识到,多亏了他们和他们的改进,情况才变得越来越好。



聚苯乙烯


我们想推荐一本叫做Drive的书。 这是一本书,讲述了像我们这样的专业人士的工作动机。 这种动机包括三个主要组成部分,(破坏者)它们都不是金钱。



在本周日,Baruch和Leonid将在圣彼得堡的DevOops 2018上发表报告“ #DataDrivenDevOps” 。 来吧,会有很多有趣的事情:这是报告 ,这是约翰·威利斯 ,这是与BoF和卡拉OK的聚会。 等着你!

Source: https://habr.com/ru/post/zh-CN425967/


All Articles