cai
-
如何管理错误预算:提升服务可靠性与 SLO 达成率的实践经验
客户可靠性工程中的错误预算管理方法 错误预算是服务可靠性管理中的重要工具,它可以帮助团队在功能发布速度与系统稳定性之间取得平衡。当服务超出服务级别目标(SLO)时,团队不应只依赖直觉决策,而应通过错误预算消耗分析,判断问题来源,并采取合适的发布控制、可靠性改进和风险缓解措施。对于研发团队而言,借助 …
-
运用 SRE 原则降低生产事故影响:CRE 实战经验与可靠性优化方法
如果你运营任何类型的互联网服务,就会知道生产事故几乎不可避免。无论架构设计多么稳健,发布流程多么严谨,最终总会有某些因素叠加失控,导致客户无法正常使用你的服务。 你努力打造用户喜爱的产品,不断推出新功能,既是为了提升现有用户的满意度,也是为了吸引更多新用户。然而,发布新功能,或者引入任何形式的变更,…
-
DevOps 四项关键指标:如何衡量团队研发效能是否达到精英水平?
想判断一个 DevOps 团队的软件交付能力是否优秀,不能只依赖主观感受,而应通过可量化的研发效能指标进行评估。经过多年研究,海外某 DevOps 研究团队提出了四项能够反映软件交付团队绩效的关键指标: 部署频率:组织成功将代码发布到生产环境的频率。 变更前置时间:从代码提交到正式发布所需的时间。 …
-
SRE 参与模式如何演进:从生产就绪评审 PRR 到 SRE 平台
SRE 参与:做什么、怎么做,以及为什么做 在现代软件工程和服务可靠性建设中,SRE 参与模式决定了一个服务能否更早、更系统地满足生产环境要求。本文将围绕 SRE 参与、生产就绪评审(Production Readiness Review,PRR)、早期参与模型以及 SRE 平台化实践,讨…
-
软件可靠性的代价,是对极致简洁的追求
软件系统本质上是动态的,也因此天然并不稳定。对于 SRE(站点可靠性工程)而言,提升软件可靠性,并不只是增加更多流程、工具或代码,而是持续在系统稳定性、开发敏捷性与架构简洁性之间寻找平衡。本文将从复杂性治理、无用代码清理、极简 API、模块化设计和简化发布等角度,讨论为什么软件简洁性是系统可靠性的前…
-
发布工程:软件构建、自动化发布与持续部署实践
发布工程是软件工程领域中一个相对较新、且发展迅速的分支,核心关注软件的构建、交付、自动化发布和持续部署,可以简要概括为:软件的构建与交付[McN14a]。发布工程师通常需要对源代码管理、编译器、构建配置语言、自动化构建工具、包管理器和安装程序有扎实的理解,虽然他们未必在每个领域都达到专家水平。他们的…
-
SRE 可靠性测试:从传统测试到生产环境测试
站点可靠性工程师(SRE)的一项核心职责,是量化所维护系统的可靠性。可靠性测试是 SRE 提升系统稳定性、降低故障风险、优化 MTTR 与 MTBF 的重要手段。SRE 通常会把传统软件测试技术应用到大规模系统中,以完成这项工作。可靠性既可以从历史角度衡量,也可以从未来角度衡量:前者通过分析监控系统…
-
事后复盘文化:SRE 如何通过无责复盘从失败中学习
作为 SRE(站点可靠性工程师),我们维护的是大规模、复杂的分布式系统。我们不断为服务添加新功能,引入新系统。鉴于系统规模庞大、变化速度极快,故障和中断不可避免。当故障发生时,我们会修复根本问题,使服务恢复正常运行。然而,如果没有一套正式的事后复盘流程来从故障中吸取经验教训,同样的问题就可能反复出现…
-
事故管理:流程、角色与最佳实践
有效的事故管理,是尽可能降低事故影响、缩短服务中断时间、尽快恢复正常业务运行的关键。如果没有事先演练过潜在事故的应对方案,那么真正遇到事故时,原本清晰的原则和流程很可能会在混乱中失效。 本文将先描述一起因临时、无序处置而逐步失控的事故;随后概述一套妥善的事故管理流程;最后回到同一场景,看看如果采用成…
-
应急响应指南:系统故障、事件响应与事后复盘实践
在复杂的软件系统和互联网基础设施中,系统故障不可避免。真正重要的不是故障是否发生,而是团队能否在紧急情况下快速响应、有效协作,并通过事后复盘持续改进。本文将围绕应急响应、事件响应流程、系统故障处理、主动测试和故障复盘,介绍大型技术团队在真实故障场景中的实践经验。 东西总会坏,这就是现实。 无论事件影…