运维全球最大游戏网站过程中积累的SRE经验(3)
随着流程的推广,这个团队变的越来越安静,部分是因为有了专门的交流环节,逐渐开始推行远程工作,以及团队逐渐变的国际化,但同时也是因为大部分工作都变成了一种例行任务:遵循事件模型的指导,任务完成后或者有什么不理解的地方时,可以升级上报给更资深的人员. 自动化 通过这种方式对调查过程实现自动化,意味着还可以借助软件对其实现更高程度的自动化. 通过制定指标将不同工单连接到不同的事件模型,这也意味着我们知道需要将自己的精力专注在何处.我们编写了在后台对日志文件进行梳理的脚本,借此更快速简单地找出与代码有关的问题,同时通过自动化方式响应客户的需求(“此问题是应用管理员用户 XXX 所做的某项变更导致的”),此外还采取了一系列其他措施. 在这些自动化机制的支持下,我们基于 Pexpect 为自己构建了一个自动化工具:http://ianmiell.github.io/shutit/,不过这就是另一个故事了.基本上在适应这些后我们养成了持续改进的良性循环. 回归流程本身 准备好所有这些资产后,如何预防这些资源随着时间流逝而贬值?此时流程本身非常重要. 为确保一切可以继续平滑运转,我们制定了两个重要流程:验伤(Triage),以及事后审查. 流程 – 验伤
我们有 5%-10% 的时间花在验伤流程中.另外,为了确定最准确的流程,之前已经付出了大量时间,不过这些付出获得了巨大的回报: 将需要采取的操作数量精简为必须的最少步骤 将尽可能多的任务包含在验伤流程中,这种做法对我们有很大的吸引力,但更重要的是确保流程本身的价值而非完整性.任何不常执行的操作通常会被跳过,并从验伤流程中忽略掉. 专注于通过流程节约成本 通过查找重复的内容,找到相关事件模型,更快速回复客户的咨询,并且尽可能早得进行升级上报,这些举措大幅降低了每个工单的成本.这样做还可以避免其他工程师在思考其他问题时被打扰而产生不良后果.这些举措的实际收益很难衡量,但我们可以用更少的人手,更容易地处理更多事件.这些都被高管和客户看在眼里. 将所有工作的详情记录起来也可以帮我们节约时间,(例如)当工程师接到验伤工单后,可以看到在历史事件中搜索的验伤结果,进而找出有待改进的地方.这也意味着可以由更有经验的人员随时审阅验伤流程的质量. 验伤流程的审阅 有经验的人员需要定期审阅验伤流程,以确保流程得以有效地运用. 当我转岗到另一个运维团队(是一个我不太了解的领域)后,通过恰当应用这些技术,我用了大约三天时间就将事件队列中积压的事件减少了一半.验伤流程是现成的,但大家在执行时并未仔细思考或进行有效监管,并且将这些责任交给了一个不能胜任的初级员工.大错特错.验伤流程的执行或监管,必须由具备娴熟经验的人负责,虽然看上去这是一种例行的乏味工作,但其实包含了大量重要决策,必须由经验提供支撑. 没错,我就是新的负责人,我决定将第一周的工作时间用于这种“没技术含量”的验伤任务.毕竟我觉得这个工作还是很重要的. 轮值任务 没人希望长时间负责验伤工作,因此我们采取了每周轮值的做法.借此可以实现一定程度的连续性和一致性,但也可以有效避免工程师反复在相同任务上花费大量时间而抓狂. 流程 – 事后审查 验伤流程相对的是“事后审查”.每个工单都会由有经验的团队成员进行审查,这个过程大约需要占用 5% 的工作时间,但同样是值得的. 为此需要填写一个标准化的表单,如果有任何意见建议,可添加到后续“改进”任务列表中,并划分出优先级.这为我们造成了大量等待解决的技术/流程债务. 文化 上文曾多次提到文化,只要打算进行任何类型的变更,都不得不考虑文化问题,毕竟文化已经根植于一系列概念框架中,而我们的所有行动都需要遵循这些框架的规定. 另外我还提到过,人们通常会纠结于“错误的事情”.我曾多次听说有人专注于工具和技术,而非专注于文化.没错,工具和技术很重要,但如果不能有效运用,所造成的后果甚至会比完全没使用时更糟糕.你也许可以加入全球最棒的高尔夫俱乐部,但你连挥杆都不会,只会打棒球,那么这个俱乐部对你而言有何意义? 文化所需的投入远远超过技术本身(别忘了,单单为了写文档我就花了大半年时间).如果具备合适的文化,人们将能在需要时找到合适的工具和技术. 在决定将时间和金钱花在哪里时,一定要以文化为第一选择.虽然需要耗费大量预算,但可以强有力地剔除“无用”的团队成员,这是我在接管其他团队后做的最棒的事.那人离开后,其他团队成员表现好了很多,不再受到他那过激行为的影响,很多以前做不到的事情都顺利完成了. 我们还用很小的预算构建了一个高效能团队,预算小到什么程度呢,负责招募的人甚至在电话里冲我嚷嚷说我的目标是“不可能”的.但只要专注于恰当的行为,针对找到的人员不吝付出时间,准备好妥善的流程,我们实现了效能的大幅提升,并且形成了一个高忠诚度的团队,开始在公司内部和外部(其实主要还是内部!)实现了更大规模,也更出色的壮举. 办公室政治 简单说说办公室政治.你可能要随时投入“战斗”.很可能你得不到所需的资源,所以搞不定的工作需要适时放弃. 没错,你需要监视解决方案,需要更好的文档,需要训练有素的出色人员,需要更多测试……除非有印钞机,否则不可能得到自己想要的所有东西,因此还是确定最重要的事情,试着优先解决它们吧.如果试图同时在所有方面进行改进,最终很可能会失败. 除了流程和文档,我还曾试着破解“可再现环境”的谜题.最终决定选择 Docker,这是我职业生涯的一次重大转变.我曾在 这里 和 这里 简单探讨了这些问题. (编辑:ASP站长网) |