文末有活动

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

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

我时常听到这样的声音:

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

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

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

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

如此云云......

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

关于混沌工程

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

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

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

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

享受正版低价折扣

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

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

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

——唐刘,PingCAP首席架构师

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

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

文末活动 

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

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

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

14天时间

带你读完

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

快速掌握概率统计知识

没办法,我必须干掉他们团队的 Leader相关推荐

  1. 如何培养一个搞垮团队的Leader?

    作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 搞垮一个团队并没有想象的那么容易,首先Leader要有搞垮团队的潜力,普通Leader基本没戏. 不过 ...

  2. 技术部门 Leader 与团队那些事

    不知不觉中,已经进入IT圈子五个多年头了,短短五年,却是人生最美好的五年,这五年中经历了塞班的没落到消失,经历了移动互联网的兴起.疯狂到理性发展,这五年中也接触了太多的人,形形色色.稂莠不齐,有行业的 ...

  3. 很多人都在埋怨没有遇到好的团队,但好的团队不可能凭空出现,一流的团队不能仅靠团队成员努力,作为Leader,要有可行的规划,并坚定地执行、时势地调整(转)...

    <西游记>中的唐僧团队历经千难万险,终于求得真经,目标明确.分工合理为这支队伍最终走向成功奠定了基础.唐僧从一开始,就为这个团队设定了西天取经的目标,虽然经历各种挫折与磨难,但目标从未动摇 ...

  4. 作为Leader如何与团队成员更好地沟通?

    在平时的工作中,作为一名领导,如何处理协调好团队成员间的工作安排是一项很重要的能力,尤其是如何了解大家的工作进度,其实也是一个很有技巧的工作,为什么这么说呢?鉴于大多数的程序员性格还是偏内向,且少言语 ...

  5. 给新晋技术团队Leader的4条建议

    前言 笔者从15年5月开始从带3人小团队到目前10人左右规模,从一线研发工程师到Team Leader(下文简写为TL)身份转换的过程中,曾经有过很多迷茫与困惑,完成转换之后总结一些心得写到这篇文章中 ...

  6. 前端 Leader 是如何带领团队和建设团队文化的

    参考了一些别人的建议. 到目前为止,带过大公司的业务大前端团队.创业公司大前端负责人.大公司基础团队负责人,现在 客户端/前端/全栈的基础团队 Leader,同时兼顾技术规划和写部分代码. 一. 愿景 ...

  7. 尝试做一个好的技术Leader, 建立“去中心化团队”

    前言 心中早已有将近几年的心中所想和收获以及实践付诸笔下做下整理,苦于不知道什么才是正确的方式,也困扰于1+1如何让大于2的问题,猛然回首,竟已惘然.思量再三,还是静下心来讲讲感悟心得,说不定若干年后 ...

  8. 团队软件库_if 我是前端团队 Leader,怎么制定前端协作规范?

    万字长文,继续刷新我的文章长度记录,涉及前端开发的方方面面.本文将持续更新和完善, 文章部分观点可能比较武断或不完整,欢迎评论和补充,一起完善该文章. 谢谢 笔者长期单枪匹马在前端领域厮杀(言外之意就 ...

  9. if 我是前端团队 Leader,怎么制定前端协作规范?

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Nothing in this world no wounds people ...

最新文章

  1. 线性表元素的区间删除
  2. Spring Boot - 手把手教小师妹自定义Spring Boot Starter
  3. 一文了解结构体字节对齐
  4. qt如何讲自己定义的label放到mainwindow中_如何更改SAS变量格式?
  5. 流与文件 java_java流与文件处理,请看代码:
  6. windows下的库文件在linux的使用,Windows、Linux之间传输文件的几种方式
  7. Spring源码:AOP(1)
  8. java电信计费项目论文_基于JAVA开发的电信IP计费系统设计毕业论文
  9. Mybatis多条件直接查询Param注解版
  10. XML/YAML文件的输入输出
  11. 现在很多人都在网上找富业
  12. 《Orange’s 一个操作系统的实现》3.保护模式4----LDT(Local Descriptor Table)
  13. 学校运动会广播稿计算机,学校运动会广播稿【五篇】
  14. LeetCode:3Sum_15
  15. protoc导出时遇到protoc-gen-go unable to determine Go import path解决方法
  16. Gram Matrices理解
  17. v-show和v-if有什么区别
  18. keras实现回归预测
  19. 后端开发工程师需要掌握的内容
  20. ajax资料收集-Ajax文章(教程和实例)---Ajax资源下载(源码和教程)---Ajax规范标准

热门文章

  1. linux 文件和打印机共享文件夹,linux服务器向windows客户端提供文件/目录及打印机共享...
  2. python怎么设置环境变量_百度经验_如何在Python中设置环境变量
  3. java调用exe_要精通Java,先研究它的执行原理
  4. c++ 高通、低通、带通滤波器_射频/微波滤波器
  5. tcp retransmission 出现的原因_浅谈TCP的keepalive机制
  6. java规约下载_Java规约 PDF 下载
  7. eci转换ci公式_原文提供的置信区间不是95%,如何转换?
  8. MyClouds-V1.0 发布,微服务治理及快速开发平台
  9. 降低函数之间的耦合度
  10. 启程 - 《每日五分钟搞定大数据》