没办法,我必须干掉他们团队的 Leader

没办法,我必须干掉他们团队的 Leader

文末有活动

不知是我的运气差还是运气好,因年初疫情而*离开 Pony 的公司后,本以为会在家休息一段时间,恰巧大学好友阿杰给我内推到他们公司了,而且待遇还不错,于是就去了阿杰所在的公司做起了系统工程师。

阿杰和我都是学计算机的,但他能力比我强多了,从毕业到现在,在这家公司一直担任的是核心业务的研发,现在也是团队的研发 Leader 了。他帅气能干,情商智商双双在线,不管是研发测试运维,还是运营产品客服,各个部门的人都跟他很熟。

我时常听到这样的声音:

“阿杰,后台的权限帮忙看看,给我加一下。”

“这个需要业务的数据导出一下,快去找阿杰。”

“新功能的那个算法对不对啊,去让阿杰帮忙一起测试一下,”

就连团队负责的业务系统出现问题,也都由阿杰来负责。

如此云云......

但作为朋友,也作为负责系统稳定的工程师,我为阿杰在公司的位置忧心忡忡。从我的多年专业的角度观察,毫不客气的说,阿杰虽然是团队的主心骨,但也是业务中潜在的“单点故障”。

万一哪天他有个不测离开了团队,或者也像我之前一样*离开了公司,那团队不是要停摆了么?

这种情况下,我要怎么验证我的担忧呢?总不能背后给阿杰一刀,让他休个长期病假,好让领导和团队都有所觉悟,来意识到阿杰不在的严重后果。这是开个玩笑,但我也急需一个机会来验证我的想法。

一天下午,我看见同事的桌子上放着这本书。

没办法,我必须干掉他们团队的 Leader

看到「混沌工程」,这还是我之前听过的一个概念,似乎跟我的工作有点关系,但在现在这个节骨眼上,「混沌工程」是个格外闪亮的一个词儿,冥冥之中让我觉得,它能帮我完成我想做的事儿没办法,我必须干掉他们团队的 Leader

混沌工程是 Netflix 公司倡导的一套探索系统稳定性的方法论,至于怎么实践嘛,我没有机会琢磨,不过现在有机会了!

我好奇地翻开了它,果然没让我失望,这不就是“猴子搬来的救兵”吗?

著名的开源项目 Chaos Toolkit 的联合创始人拉斯·迈尔斯为本书作者,在实践混沌工程方面有着丰富的经验,书中满是宝贵的实战经验分享。

对我来说,最重要的是他详细讲解了如何找到潜在故障的证据并说服团队加以改进,流程十分清晰:收集假说 -> 开展游戏日 -> 验证假说。

我很快断定,这本书就是我解决阿杰问题的行为指南。

对,就是它了,帮我解决掉阿杰,哈哈哈哈,于是我就认真地读了几天。

书中讲了一个 Netflix 的系统探索工具,叫混沌猴,用于探索服务意外中断时,系统能否有效地应对,这个 Netflix 在混沌工程领域的第一个工具,也是非常重要的一个工具。

根据“混沌工程原则”给出的定义,混沌工程是一门对系统进行实验的学科,旨在了解系统应对生产环境的各种混乱状况的能力,建立对系统的信心。

显然,我对没有阿杰的研发团队是没有信心的,阿杰一走,团队就乱成一团,这就是我的「混沌工程假说」。

根据书中所讲,我需要让领导和阿杰的团队开展混沌工程中的「游戏日」,来验证我的假说。 

我找到领导,对他说:“周三上午,我想让阿杰消失。” 

“啊,别做傻事,有话好好说!”领导这个回复也说明他是个脑洞不小的人。 

我连忙解释说,只是想搞一次故障演练,不止针对系统运维方面,主要是看看研发团队离开阿杰后会有什么情况。在详细说明我的担忧后,领导半信半疑地答应了。但最重要的是,我根据书中的建议,邀请领导观摩「游戏日」当天情况,后面你会看到,这很重要!

接着,我找阿杰说明情况。他竟然也同意了,但有一个条件:不能算他请假和旷工,而且必须提前给他老婆打声招呼,说他将在周三上午失联时,也不能让她老婆找到他。因为团队很可能找各种机会求助自己。包括给他老婆打电话找人。所以在「游戏日」当天,必须切断阿杰的全部通信手段。幸运的是,阿杰的老婆非常乐意让他“消失”,我也就不用多费口舌了。

周三,「游戏日」如期而至。阿杰很早就被我从押送到另一个办公区的会议室里,没收了手机,拉下窗帘,把我看的这本书交给了他。于是我回到了工位工作,故意在临时环境中注入了故障,并向阿杰团队说明正在临时环境中进行故障演练。

团队的第一反应在我意料之中,他们说:“阿杰不在,我们没法干活啊。” 果然不出我所料!不过,我还是慢慢鼓励大家先别管阿杰,继续工作。

时间在慢慢流逝,团队的工作进展得相当艰难。大家不知道事故应对指南在哪里(我像书里建议的那样,拿小本本把这一点当作“故障”记录了下来)。大家想看看后台系统,弄清楚发生了什么事,可找回密码的过程犹如噩梦(我把这也记在了小本本上)

不过我慢慢地紧张起来。团队在执行很多操作前根本没有查阅事故应对的文档,更有甚者,按下回车键前嘴里还嘟囔着“那我试试这个吧……”,我担心如果发生了什么严重的错误,自己不能发现,没法制止。现在,连我都开始觉得自己需要被把阿杰放出来了。

于是,我跑去找阿杰,问了阿杰一些业务系统的问题,还提到了团队成员使用的一些命令和参数。不等我问完,阿杰突然从座位上弹了起来,只见他冲出房间,并惊恐地大喊:“快给我停下!!!”

原来,团队已经不知不觉地进入了生产环境,而且正在删除数据库……幸好阿杰及时赶过来,才避免了重大损失。因为,阿杰突然意识到,之前有一次事故有类似相似的地方,而上次修复故障时是自己来完成的,而上次无意间发现的漏洞使他也差点数据库删了。「游戏日」戛然而止。

这次「游戏日」不到三个小时就结束了,还是以失败告终。但团队所有人都意识到,阿杰确实是一个重要人物,也是一个潜在的「单点故障」,团队不能过度依赖阿杰。于是,我们一同定制了专门的流程方案,阿杰也将把各种问题做成文档,帮助所有人了解系统和业务。

作为这次「游戏日」中冷眼旁观的人,领导对有惊无险的演练还是有些后怕,于是非常积极地为培训项目和文档项目签了预算单。

我的混沌工程假说也被验证了,但我并没有「干掉」阿杰,反而使每一位团队成员有机会成长为阿杰,这对公司来说绝对是一件美事。

这次游戏日让我尝到了混沌工程的甜头。不过,之后再开展「游戏日」时,我想我会采纳书中的另一条建议:请一位对系统十分熟悉的“安全监督员”,避免无法挽回的损失。谁能还能帮我完成这个想法呢?我又打起了阿杰的主意没办法,我必须干掉他们团队的 Leader

关于混沌工程

定义:混沌工程是一门对系统进行实验的学科,旨在了解系统对应生产环境的各种混乱状况的能力,建立对系统的信心。

所有系统的用户都希望系统具备可靠性,但影响可靠性的因素有很多。混沌工程师能找到证据,指明那些异常但不可回避的状况下系统的应变情况。

混沌工程的唯一目标就是证明系统存在缺陷。通过开展混沌工程方面的科学实验,你可以测试系统是否存在缺陷,从而了解系统在混乱的类生产环境条件下如何表现。

《混沌工程实战》这本书是写给工程师的一本混沌工程指南,从基本概念出发,逐渐展开混沌工程的整体流程。

没办法,我必须干掉他们团队的 Leader

享受正版低价折扣

这本书从混沌工程的基本定义和实践流程出发,借助开源混沌工程框架Chaos Toolkit,通过案例深入浅出地解释了如何完成完整的混沌工程实验,包括所需要面对的挑战、推进的准备项、采用的工具以及具体的实施方法。书中有关游戏日的介绍尤其重要,这是在目前关于混沌工程的书中,第一次详细剖析游戏日的具体开展方式。内容通俗易懂,非常适合学习混沌工程,是一本非常实用的入门指南。

——黄帅,亚马逊AWS资深云架构师

这本书一方面简洁明了地介绍了混沌工程的相关概念,为开展混沌工程实验提供了基本的指导原则,另一方面通过Chaos Toolkit工具,从实践角度出发,逐步指导混沌工程技术的实施。我相信,通过阅读这本书,读者能非常快速地将混沌工程应用到自己的项目中,让越来越多的系统运行得更加稳定。

——唐刘,PingCAP首席架构师

随着系统规模的扩大和复杂度的提高,服务故障层出不穷,于是很多公司开始在故障预防领域进行探索。结合一些公司的最佳实践,这个领域慢慢演化为如今的混沌工程。通过阅读这本书,不仅可以深入了解混沌工程这门实验性学科,也可以建立起一套完整的思维框架,从而面对工作中的各种问题。

——焦振清,京东云架构师

文末活动 

说说你的周围有没有像「阿杰」一样的人?

转发点赞本文留言获赞 Top3 的读者,每人将获得一本想要的图灵数学书。

统计点赞截止时间:8月7日 12:00 

没办法,我必须干掉他们团队的 Leader

14天时间

带你读完

《程序员的数学2:概率统计》

快速掌握概率统计知识

没办法,我必须干掉他们团队的 Leader

没办法,我必须干掉他们团队的 Leader

没办法,我必须干掉他们团队的 Leader

没办法,我必须干掉他们团队的 Leader

没办法,我必须干掉他们团队的 Leader

没办法,我必须干掉他们团队的 Leader