不久前看到一条微博,说的是一个团队去黄山集体旅游,但是为了防止网站出现突发问题,负责运维的同学还要背着沉重的笔记本电脑上山下山。 运维人员确实总是要面对巨大的压力,但是是否有一些方法可以缓解这些压力呢?Quora的工程师Edmond Lau提出了一些解决方法。 Edmond Lau是Quora的元老级工程师,他曾带领工程团队应对用户的高速增长,开发核心组件,并为新入职的工程师提供指导和入职说明,同时协调工程实习计划。此前,他曾服务于Ooyala的视频分析团队和Google的搜索质量团队。不久前,他在自己的博客上发布了一篇文章《成功剧本——关于工程,我们从橄榄球教练身上能学到什么》。 文章开头,他假设了一个场景:作为一名工程师,在凌晨3点收到网站的自动提醒,原来是主数据库出了问题。接下来,他说道:
但他提出一个问题:
接下来,他认为可以从橄榄球教练身上吸取一些经验。 Edmond引述了旧金山49人队前任教练Bill Walsh的一个策略“成功剧本”,应用这种策略,Walsh会针对各种比赛中可能发生的情况,写下应急计划。 在他看来,Walsh认识到一点:在面对比赛关键时刻时,可能有成千上万球队的粉丝朝你狂吼,对手的球迷也在朝你扔热狗和塑料啤酒杯,宝贵的时间在 一分一秒地过去,这时的你很难保持清醒头脑,做出有效决策。Walsh认为:在面对高度紧张、精神难以集中的比赛时刻,写下剧本有助于去掉制定决策过程。
Walsh最终带领49人队获得3次超级碗胜利,并两次获得NFL年度教练称号。 Edmond认为:我们可以采纳Walsh的写剧本策略,将决策制定过程从高压或是高风险情形转移到更受控的环境中。以此,就可减少感情蒙蔽我们的 判断,或是时间重压在我们头上之类的状况。作为工程师,我们甚至可以编写程序剧本,模拟我们的响应,还要测试,以保证剧本足够健壮。 在Edmond看来:
接下来,Edmond列举了一些大型技术公司的例子,说明他们如何在正常时期模拟系统失败和灾难,以应对非常情况:
Edmond对上述例子做了总结:
在文末,Edmond列出了一些参考文章,包括: * Google的Kripa Krishan在ACM期刊上发表的《经受不可预期的考验》↩ * Netflix的John Ciancutti在Netflix技术团队博客上发表的《我们使用AWS得到的5个教训》 * Netflix的Cory Bennett和Ariel Tseitlin在Netflix技术团队博客上发表的《放到野外的Chaos Monkey》 * Dropbox的Rajiv Eranki发表的《在Dropbox学到的扩展经验,第一部分》。 Edmond Lau还在撰写一本《高效工程师手册》,感兴趣的同学可以去这里下载样章。 InfoQ中文站此前发布过两篇新闻,介绍了豆瓣和下厨房遇到的真实问题: 如果他们事先能够写写剧本,也许就可以避免遇到的严重问题,那个背着笔记本电脑上山的苦逼运维也许就可以放下电脑、放下压力、放下心情,放心轻松了。 如果你是一个运维人员,也欢迎给《那些年我们犯过的错》话题投稿,只要你:
期待你的来信! |