1、 SRESRE 实践白皮书实践白皮书 v1.0.3v1.0.3 2024年6月 SRE-E 修 订 记 录修 订 记 录 1.0.3 修订记录:第三章第 4 节变更管理依据 2024 年 4 月 13 日上海 B 站沙龙更新约 4 万字,包括 6 篇不同类型的企业案例 1.0.2 修订记录:增加了版权声明 为 CC BY-ND 4.0 修正了目录没有 3.1.1 的问题 修改了页眉的时间点 修正了部分错别字 目 录目 录 第一章 SRE 整体介绍.1 1.1 前言.1 1.2 SRE 发展历程.2 1.3 SRE 的目标.4 第二章 SRE 的组织架构.6 第三章 SRE 的职能.10 1 可
2、靠性构架设计.10 1.1 应用韧性架构.11 1.1.1 分布式设计.11 1.1.2 解耦设计.11 1.1.3 冗余设计.11 1.1.4 熔断设计.12 1.1.5 限流设计.12 1.1.6 降级设计.13 1.1.7 可观测设计.13 1.2 基础设施保障.14 1.2.1 机房多活.14 1.2.2 网络容灾.14 1.3 数据灾备.14 1.3.1 数据备份.14 1.3.2 数据回滚.14 2 研发保障.15 2.1 代码可靠性.15 2.1.1 代码缺陷.15 2.1.2 代码规范.18 2.1.3 代码安全.20 2.1.4 代码圈复杂度.22 2.1.5 代码重复.23
3、 2.1.6 代码注释与 API 文档.24 2.1.7 代码质量红线.25 2.2 代码仓库可靠性.27 2.2.1 仓库性能.27 2.2.2 仓库容灾.29 2.2.3 仓库安全.30 2.2.4 仓库可扩展性.32 2.3 构建可靠性.33 2.3.1 构建效率.33 2.3.2 构建成功率.35 2.4 制品可靠性.37 2.4.1 制品下载可靠性.37 2.4.2 制品部署可靠性.38 2.4.3 制品安全可靠性.40 3 入网控制.41 3.1 运行环境适配.41 3.1.1 运营环境设计.41 3.1.2 容器云适配.43 3.1.3 数据库存储适配.46 3.1.4 信创适配
4、.47 3.2 运行环境交付.52 3.2.1 基础资源服务.52 3.2.2 可观测策略.53 3.2.3 自动化策略.55 3.3 测试策略.58 3.3.1 连通性验证.58 3.3.2 功能测试.59 3.3.3 性能压测.62 3.3.4 数据迁移.67 3.4 变更评审.68 3.4.1 稳定性架构设计评估.68 3.4.2 非功能性技术评估.71 3.4.3 变更保障准备工作评估.73 3.4.4 新系统或新业务上线保障评估.74 4 变更管理.77 4.1 发布管理与变更管理关系阐述.77 4.2 变更体系设计.80 4.2.1 变更体系设计原则.80 4.2.2 变更及发布流
5、程设计.80 4.2.3 变更的工程体系设计.103 4.3 变更管理案例.131 4.3.1 B 站变更防控的设计与实践.131 4.3.2 携程云平台基础设施变更管理实践.153 4.3.3 某银行变更管理设计与实践.175 4.4 发布管理案例.194 4.4.1 中移互联网敏捷发布平台建设实践.194 4.4.2 某证券变更一体化平台建设实践.213 4.4.3 游戏 GitOps 发布管理实践.230 5 故障应急.237 5.1 故障发现.237 5.1.1 监控发现.237 5.1.2 巡检发现.238 5.1.3 人工上报(舆情,客服,运营人员等).240 5.2 故障诊断.2
6、41 5.2.1 应急协同.241 5.2.2 故障定界.243 5.2.3 影响评估(影响人数,范围,上报级别).245 5.3 故障恢复.246 5.3.1 架构自愈.247 5.3.2 应急预案(已知的预案).248 5.3.3 应急维护(人工干预,未知预案).248 5.3.4 恢复验证.248 5.4 故障复盘.249 5.4.1 复盘组织.250 5.4.2 根因分析.253 5.4.3 制定改进.255 2如何做好故障改进.255 3改进措施的记录.256 3.5.4.4 问题跟踪.257 6 上线后持续优化工作.257 6.1 用户体验优化.257 6.1.1 基于用户端的直接