Skip to content

06 可靠性文化和规范:人是万物的尺度

你好,我是白园。今天来进入可靠性的最后一个部分——文化和机制。

我们前面探讨了构建可靠性的各项基本技能,现在让我们聚焦于 如何通过优化人员管理和文化、制度建设来提高团队的凝聚力和效率。

我之前遇到过一个比较严重的故障,在一次晚高峰期间,某个同学偷偷做了一次线上变更,导致大量请求失败,影响极大。但是更加严重的是这个同学因为害怕,第一时间选择了故意隐瞒,导致问题持续扩大,最后在证据面前才不得不承认。最后整个团队都受到了非常严厉的处罚。

在系统的可靠性构建中,人为因素占据了极高的风险比重,并在许多情况下发挥着关键乃至决定性的影响。仅依赖工具和平台提供的预防措施与优化手段是远远不足以保障系统全面稳定的。人才是万物的尺度。影响人才能起到最终的决定性作用。

机制不仅仅是为了预防工程师出错,另一个层面也是为了保护工程师,如果一个工程师严格按照流程规范进行,最终就算有故障发生也不会影响传导到人的身上。

从哪些方面进行建设?

在规范方面,我们需要确立一套基本的行为准则,作为团队成员必须遵循的最低标准。类似于三项纪律、八项注意的原则,要求每位成员深入理解并严格遵守。

在奖惩机制方面,应当建立一个明确的评价体系,确保对团队成员的行为给予及时且公正的反馈。对于表现出色的成员,应当给予相应的奖励以示鼓励;而对于未能达到标准的行为,则应实施相应的惩罚措施,以促进纪律的执行和维护团队的整体效能。我们可以有效地激励团队成员积极进取,同时确保团队目标的顺利实现。

规范上的建设

主要遵循三项核心规范:首先是 红线规范,它定义了不可逾越的基本底线,确保每个人都清楚界线所在。其次是 Oncall规范,它为处理紧急故障的前线人员确立了清晰的操作指引。最后是 复盘规范,它规定了故障处理完毕后的标准流程,以确保有条不紊地进行后续分析和改进。

红线规范

红线就是不能打破的底线,红线规范的核心就是简洁和实用,避免过于复杂导致难以记忆和执行。这里我给你三条基本规范作为参考。

  • 线上变更必须在指定的维护窗口期内进行,除非遇到特殊情况且得到明确审批。 维护窗口期通常选择在业务流量较小的时段,以减少对用户的影响,并确保团队能够快速响应,解决可能出现的问题。曾经发生过这样的案例,在非维护时间进行变更导致流量过载,而相关人员在变更后离开岗位,增加了故障处理的难度和影响。
  • 每次线上变更后,必须执行分级发布和效果检查。 变更是引发故障的主要原因之一。某次一位团队成员在变更后长时间未检查变更效果,引发了严重故障。因此,及时检查和验证对于防止故障扩散非常重要。
  • 一旦发生线上故障,必须立即通报,并严禁故意隐瞒。 比如开头我们介绍的故意隐瞒的行为,这种行为不仅对业务造成了重大影响,更反映了一种逃避责任的态度,这是我们绝不能容忍的。

Oncall规范

Oncall作为维护线上可靠性的第一线守护者,它的规范性至关重要,直接影响到问题处理的效率和质量。以下是我对Oncall规范的优化建议。

  • 响应时间规定:对于线上故障和核心报警,要求Oncall人员立即响应并持续跟进,直至问题完全解决。对于业务群内的消息和问题,Oncall人员应在10分钟内给予反馈和回应。所有操作需求应在当日得到处理。
  • Oncall通告和交接流程:Oncall人员需确保问题处理的连续性,接手问题时进行一次通告,问题解决或止损后再次同步更新,若问题持续较长时间,应定期更新阶段性进展。遇到重大问题时,Oncall人员需及时进行升级通报,确保所有确认的故障都能立即得到通告。
  • 问题求助与学习:Oncall人员应积极学习问题处理方法,通过沉淀和总结形成标准操作流程(SOP),并在团队内部进行分享和学习。
  • Oncall内容与产出:将Oncall过程视为一个持续学习的机会,通过这个过程加深对系统的理解,以提升系统可靠性。要求Oncall人员编写日报和周报,记录、分析、跟进和消除问题,这些报告不仅可以把控Oncall工作的质量,也是衡量Oncall效能的一种手段。总结和沉淀问题追查与定位的经验,形成SOP。
  • 响应准备,通讯畅通:Oncall人员需确保手机24小时畅通,以便随时通过电话联系。此外还要注意网络连接,保证Oncall期间能够上网并接入VPN,若因特殊情况无法保持在线,需及时联系团队其他成员代替值班,或请求领导协助安排。

复盘规范

系统可靠性是一个持续追求的目标,而故障是系统运行中不可避免的现象,管理和处理故障的能力是衡量团队专业性的重要指标。

  • 复盘前的准备:收集和整理相关的数据和信息,确保故障报告的详尽和准确。
  • 复盘中的讨论:保持开放和坦诚的态度,确保讨论深入且有针对性。遵循“对事不对人”的原则,专注于问题本身,避免对个人进行攻击。
  • 复盘后的执行:严格按照复盘结果执行改进措施,确保问题得到彻底解决。通过持续的监督和检查,确保改进措施得到有效执行,形成闭环管理。

高质量的故障报告

报告应详细展示故障的发生过程,深入分析原因,并提出相应的改进措施。确保报告内容能够让不熟悉这个业务的人员也理解故障的原因和影响。此外,报告还应使用清晰、简洁的语言,避免行业术语和复杂表述,确保信息传达的准确性和易理解性。对于涉及多个团队或部门的故障,报告应在复盘前进行充分地协调和整合,确保内容全面、分析客观。

原因分析的关键维度

我们可以从 技术层面、流程规范、执行层面以及个人/组织层面 来分析故障原因。

  1. 首先从技术角度分析故障原因,包括代码、硬件、网络等。
  2. 审查现有流程规范,找出可能导致故障的流程缺失或薄弱环节,并进行补充和完善。
  3. 在流程规范完善的前提下,检查执行层面是否存在问题,并探索通过自动化工具等方式提高执行效率。
  4. 分析问题是否源自个人或组织,如果是个人问题,应加强个人培训和管理;如果是组织问题,则需要从组织结构和文化着手进行改进。

在分析原因的过程中应注意“6个避免”。

  • 避免自我逃避:不要回避或淡化自身责任,应首先从自身找原因并进行改进。
  • 避免简化问题:不应将故障原因简单归结为单一因素,而应从整个链路进行系统性思考。
  • 避免外部归咎:即使问题源自外部,也应从内部角度考虑如何减轻故障影响和提高应对能力。
  • 避免环境借口:对于由外部环境变化引起的故障,应提前预判并做好资源准备或降级方案。
  • 避免历史问题:对于历史遗留问题导致的故障,应主动寻找解决方案,避免类似问题再次发生。
  • 避免个人问题泛化:对于违反规范的个人行为,应视为整个团队可靠性意识的反映,需要加强团队管理和培训。

奖惩制度

为了更好地激励团队成员并维护团队的可靠性和效率,建立一个公正且有效的奖惩制度至关重要。以下是对奖惩制度的优化建议,你可以参考。

奖励制度

及时反馈

在团队内部,对于表现出色的成员应给予及时的公开表扬,这不仅能够提升个人的工作积极性,还能够激励其他成员效仿。日常的保障工作虽然可能显得单调,但对于团队的稳定运行至关重要。因此,对于日常工作中的优秀表现,应给予必要的认可和鼓励。

仪式感

设立专门的可靠性奖项,以表彰那些在保障系统可靠性方面做出突出贡献的成员。这种形式的鼓励能够在精神层面上给予成员持久的满足感。可以按月或季度为周期,对那些表现可靠的成员进行表彰,以此强化团队的正面行为。

金钱与职业发展

在金钱奖励方面,应根据成员的表现给予相应的奖励,以此作为对其努力的直接回报。在晋升机制中,应重视那些在日常工作中默默奉献、保障系统稳定的成员。他们的工作虽基础但极为关键,应得到充分的认可和晋升机会。

惩罚制度

对于小错误,应适度进行提醒和批评,以防止问题的扩大;对于严重的故障,则必须进行明确的批评,以警示全体成员。考虑到团队成员的实际情况,对于经济处罚应谨慎使用。确保处罚的合理性,避免对一线员工造成不必要的经济负担。

在绩效评估中,应体现成员的错误和过失,以此作为对其行为的反馈。对于犯有严重错误的成员,在晋升机会上应有所体现,以此强调责任感和后果意识。

环境渲染

构建可靠性文化是一个渐进的过程,它需要时间和持续的努力,不可能一蹴而就。在快速迭代、业务迅猛发展和成本压力的背景下,可靠性文化有时会被忽视。然而,正如人体健康需要持续的关注和锻炼一样,可靠性文化也需要我们不断地培育和投入。

  • 环境渲染:在办公环境中融入可靠性文化的元素,如在墙上展示与可靠性相关的标语或海报,以此不断提醒团队成员关注和维护系统的可靠性。
  • 文化周边:制作一些实用的文化周边产品,如可靠性主题的鼠标垫、笔记本等,这些物品在日常使用中能够起到潜移默化的提醒作用。
  • 公开分享:鼓励团队成员撰写和分享关于可靠性的文章、案例分析或经验总结,通过公开的交流和讨论,促进知识共享和文化建设。
  • 榜样示范:表彰那些在提升系统可靠性方面做出突出贡献的个人或团队,他们的成功案例可以作为激励其他成员的典范。

小结

这节课我们从人的角度探讨了如何提升人的可靠性意识和文化。在机制规范上,红线规范是不能打破的底线;Oncall作为第一道防线需要明确规范;复盘作为必要的环节也需要重视起来。此外还需要明确奖励和惩罚的制度才能激发人的热情。最后环境潜移默化的渲染,我们也要好好利用起来。

图片

思考题

你还有哪些更好的办法来激发人的内在热情,预防人为因素导致的故障,欢迎分享到评论区,如果这节课的内容对你有帮助的话,也欢迎你分享给需要的朋友,我们下节课再见!