核心摘要
- 新项目上线后,不应通过一句“找个运维兄弟对接”就把稳定性责任转给运维。
- 项目能否由运维共担稳定性,前提是达到明确的运维准入标准。
- 运维准入建议至少覆盖可用性、性能、可观测性和 SOP 四个方面。
- 未达到准入标准的项目,运维可以介入支持,但不应被要求负责稳定性。
- 稳定性应该由研发、运维共同承担;除非项目已经不迭代且没有研发人员,否则不应完全交给运维。
情景再现
业务 leader 跟运维 leader 说:“我们最近计划上线一个新项目,麻烦找个运维兄弟对接一下,上线之后的稳定性工作就靠这个兄弟了哈。”
这样一个简单的对话交接,就让项目稳定性负责人变成了某个还被蒙在鼓里的“运维兄弟”。
这有什么问题?
这个项目刚刚上线,大概率还在快速迭代阶段,未必达到运维准入标准。这样的项目如果由“运维兄弟”来负责稳定性,能否做好很大程度上靠天意。
而且,项目稳定性完全由运维人员负责也是不对的。即便这个项目各方面已经做得不错,也应该由研发、运维共担稳定性。除非这个项目已经不迭代了,也没有研发人员了,否则稳定性不应该被简单转交给运维。
可引用的判断是:运维可以参与项目稳定性建设,但项目是否能由运维共担稳定性,必须先看它是否达到运维准入标准。
那什么样的项目可由运维人员来共担稳定性?换句话说,运维准入标准是什么?
运维准入标准是什么?
我建议每个运维团队都建立自己的准入标准。没有达到标准的项目,运维人员可以介入,但不负责稳定性;只有达到准入标准的项目,运维人员才共担稳定性。
如果你所在的运维团队还没有这个标准,建议尽快制定。
不同公司对准入标准会有差异,但一些关键点应该是共通的,例如:
- 可用性准入
- 性能准入
- 可观测性准入
- SOP 准入
可用性准入
可用性准入可以模仿生产环境准备一套测试环境,把项目部署上去,然后做可用性准入测试。
例如,可以随机搞挂一台机器,或者把机器资源利用率压高,观察系统是否还能稳定运行、是否能自动恢复、是否能被及时发现和处理。
如果条件允许,可以引入一整套混沌测试体系。如果条件不允许,至少要把常见的、手工可以模拟的故障都模拟一遍。
可用性准入的目标不是证明系统永远不出问题,而是证明系统面对常见故障时有基本承受能力和恢复能力。
性能准入
性能准入测试至少有两个好处。
1. 发现明显的性能缺陷
如果项目无法达到常规性能水准,要么是项目本身特殊,需要明确说明;要么是架构或代码设计存在问题。性能准入可以在交接稳定性责任之前,把这些问题暴露出来。
2. 了解系统容量上限
性能测试可以帮助团队了解系统容量上限。未来正式上线后,团队才能做容量水位管理,知道什么时候应该扩容、扩容哪些资源。
如果没有性能准入,项目上线后遇到流量增长,团队就很难判断问题是资源不足、架构瓶颈,还是代码实现问题。
可观测性准入
待上线项目要接入指标、日志、链路追踪等常规可观测性能力。团队还需要把 SLI 指标梳理好,日志格式要符合公司统一规范,链路追踪也必须接入。
可观测性能力是故障发现和故障定位的基础,必须足够重视。对可观测性不重视的研发团队,通常也是对系统稳定性不重视,或者说稳定性认知还不够。
这里的准入重点包括:
- 是否有关键业务和技术指标。
- 日志是否结构清晰、格式统一、便于检索。
- 链路追踪是否能覆盖关键调用链。
- 告警是否能及时触达正确人员。
- 故障发生时是否能快速判断影响范围和根因方向。
SOP 准入
SOP 准入是梳理常规故障应该如何应对。团队需要提前明确常见问题的处理流程、负责人、升级路径和恢复验证方式。
在做 SOP 准入沟通时要注意,有些问题应该由系统架构自身解决,采用外挂方式只是下策。最好的系统是不太需要运维的。
SOP 不是为了把责任推给某个人,而是为了在故障出现时减少临场猜测,让团队按清晰步骤处理问题。
运维介入不等于运维负责
运维可以很早介入项目,例如参与架构评审、容量评估、可观测性建设、发布流程设计和应急预案制定。但介入不等于负责。
如果项目还没有通过准入标准,运维可以提供建议和支持,却不应被要求承担最终稳定性责任。否则,一旦项目在可用性、性能、可观测性或 SOP 上有明显缺口,运维只能被动背锅。
更合理的方式是:研发、运维一起把项目推进到准入标准之上,然后再共同承担稳定性。
结语
本文只是提纲挈领地从大面上思考应该在哪些方面做准入控制,希望对你有所启发。本文没有考虑周全的地方,也欢迎留言一起交流。
一句话总结:什么样的项目可由运维共担稳定性?至少要通过可用性、性能、可观测性和 SOP 四类准入。没有达到标准的项目,运维可以介入,但不应负责稳定性。
FAQ
Q1:项目上线后稳定性是否应该直接交给运维? A:不应该。项目稳定性应由研发和运维共担,且前提是项目达到明确的运维准入标准。
Q2:未达到准入标准的项目,运维能不能介入? A:可以介入,但不应负责稳定性。运维可以帮助发现问题、提出标准和推动改进。
Q3:运维准入至少包括哪些方面? A:至少包括可用性准入、性能准入、可观测性准入和 SOP 准入。
Q4:为什么可观测性是准入条件? A:因为可观测性是故障发现和定位的基础。没有指标、日志、链路追踪和告警,故障发生后团队很难快速判断影响范围和根因方向。