2024年SRE实践白皮书.pdf
《2024年SRE实践白皮书.pdf》由会员分享,可在线阅读,更多相关《2024年SRE实践白皮书.pdf(381页珍藏版)》请在咨信网上搜索。
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 基于用户端的直接
7、用户体验优化.258 6.1.2 基于系统端的间接用户体验优化.259 6.2 重大技术保障.262 6.2.1 整体统筹保障.262 6.2.2 技术方案保障.263 6.2.3 工具可靠性保障.264 6.2.4 突发事件保障.266 6.2.5 示例 1:哀悼日停止游戏服务保障.267 6.2.6 示例 2:交易类大促核心保障流程和方案.273 6.2.7 示例 3:银行类通用重大保障活动.276 6.2.8 示例 4:发布会直播通用重大保障活动.278 6.3 运维琐事的日常管理及优化.283 6.3.1 运维琐事的介绍.283 6.3.2 运维琐事的质量管理.285 6.3.3 运维
8、琐事的效率管理.286 6.4 业务全生命周期工具建设.288 6.4.1 研发期工具建设.289 6.4.2 上线期工具建设.290 6.4.3 运营期工具建设.291 6.4.4 下线期工具建设.292 6.5 运营成本分析及优化.293 6.5.1 运营成本分析及优化的必要性.293 6.5.2 运营成本实时监控.294 6.5.3 运营成本分析及优化的指标.294 6.5.4 运营成本的统计及分析方法.296 6.5.4 运营成本的优化方法.299 6.5.5 运营成本优化持续运营.302 6.6 混沌工程.304 6.6.1 正常行为定义.304 6.6.2 设计和实施混沌实验.30
9、5 6.6.3 监控和分析实验结果.306 6.6.4 优化和修复问题.307 6.6.5 持续迭代和改进.308 6.7 应用服务 SLI/SLO.308 6.7.1 什么是 SLI/SLO.308 6.7.2 如何建设 SLI/SLO.309 6.7.3 如何持续迭代 SLI/SLO.313 6.8 持续改进.315 6.8.1 效率持续改进.315 6.8.2 质量持续改进.317 6.8.3 安全持续改进.318 6.8.4 人员能力持续提升.320 6.8.5 流程持续改进.321 7 平台工程.324 7.1 标准应用平台工程建设.324 7.1.1 应用元信息平台.325 7.1
10、.2 统一资源供给.328 7.1.3 持续集成.329 7.1.4 持续部署.333 7.1.5 部署编排.336 7.1.6 可观测.340 7.1.7 成本(定价、用量、出账).341 7.2 异构应用平台工程建设.344 7.2.1 总体设计.345 7.2.2 aPaaS 结构设计.346 7.2.3 iPaaS 结构设计.352 7.2.4 通用原子设计.354 7.2.5 SaaS 分级.361 7.2.6 服务管理.364 7.2.7 安全与审计.366 附录.371 1 参考文献.371 2 术语.371 版权声明版权声明 这项作品采用 CC BY-ND 4.0 许可进行授权
11、。要查看此许可的副本,请访问 http:/creativecommons.org/licenses/by-nd/4.0/CC BYCC BY-ND 4.0 DEEDND 4.0 DEED 署名署名-禁止演绎禁止演绎 4.0 4.0 国际国际 您可以自由地:共享 在任何媒介以任何形式复制、发行本作品 在任何用途下,甚至商业目的。只要你遵守许可协议条款,许可人就无法收回你的这些权利。惟须遵守下列条件:署名 您必须给出 适当的署名,提供指向本许可协议的链接,同时 标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。禁止演绎 如果您 再混合、转
12、换、或者基于该作品创作,您不可以分发修改作品。没有附加限制 您不得适用法律术语或者 技术措施 从而限制其他人做许可协议允许的事情。声明:您不必因为公共领域的作品要素而遵守许可协议,或者您的使用被可适用的 例外或限制 所允许。不提供担保。许可协议可能不会给与您意图使用的所必须的所有许可。例如,其他权利比如 形象权、隐私权或人格权 可能限制您如何使用作品。SRE 实践白皮书(2024 年)1 网址:SRE-E 微信:SRE 精英联盟 第一章第一章 SRE 整体介绍整体介绍 1.1 前言前言 Google 在 2003 年启动了一个全新的团队“SRE 团队”,该团队旨在通过软件工程的方法提高应用系统
13、的可靠性;随着 SRE 相关理论和实践在 Google 的日臻成熟,SRE 实践也从 Google 慢慢地扩散到了整个行业。自从 SRE 的理念进入中国以来,就已经引起了很多企业的关注和效仿,但各企业实施 SRE 的方法各异,SRE 的实现效果也各不相同。与此同时,中国的互联网行业中涌现出了一批对 SRE 充满热情的倡导者,他们为社区做出了各种贡献;包括:孙宇聪翻译出版了SRE:Google 运维解密、赵成在极客时间开设了课程SRE 实战手册,以及赵舜东在社区里积极地布道分享等等,不胜枚举。2022 年,由赵成等人牵头,首批来自于互联网、运营商、金融等行业领军企业的 SRE 团队负责人齐聚一堂
14、,组织了 SRE 研讨社区,定期开展社区分享活动,共同探讨 SRE 在各企业里的发展路径,分享各自的实战经验,并总结出了这份来自一线实战的、详实而持续更新的SRE 实践白皮书。社区每年都吸纳新的成员,逐年更新本白皮书内容,力求真实客观地描述国内企业 SRE 团队的工作方式。在实践白皮书初稿长达两年的整理过程中,我们看到了不同企业对 SRE 的理解,并尽可能统一大家对相似场景的定义;SRE 实践白皮书(2024 年)2 网址:SRE-E 微信:SRE 精英联盟 我们看到了不同企业对 SRE 职能领地的扩展,并将成功团队的经验提炼成案例供大家参考;我们也看到了在这两年的编写过程中,不同企业 SRE
15、 团队的真实变化,并及时将其更新到实践白皮书中。总之,在未来的每个季度,我们都会将各 SRE 团队的最新职能、组织形式、技术迭代等现状,补充到实践白皮书中。2023 年,中国信息通信研究院(下简称信通院)云计算与大数据研究所(下简称云大所)稳定性保障实验室的专家加入了 SRE 研讨社区,深度的参与到社区交流当中,为SRE 实践白皮书的编写工作提供了专业指导。1.2 SRE 发展历程发展历程 SRE 运动在全球的发展经历了 20 年,下面是部分重要事件:2003 年,Google 成立了第一个 SRE 团队;2010 年,Facebook 拥有了一个 SRE 团队;2014 年,USENIX 协
16、会主办的首届 SREcon(网站可靠性工程会议)在美国举行,大会成为了 SRE 专业人士交流经验和最佳实践的重要平台,标志着 SRE 作为一个独立且重要的专业领域在全球范围内的正式认可。2016 年,前 Google SRE 孙宇聪翻译出版了首部中文专业书籍SRE:Google 运维揭秘,在国内引起了很大的反响,很多企业开始学习并成立自己的 SRE 团队;SRE 实践白皮书(2024 年)3 网址:SRE-E 微信:SRE 精英联盟 2016 年,Netflix 成立了“核心 SRE 团队”。Uber 开始撰写有关其如何使用 SRE 的文章;2016 年,蚂蚁集团在国内成立了第一支 SRE 团
17、队,主要攻坚容灾架构,后续拓展到高可用、资金安全等多个业务风险领域;2017 年,LinkedIn 开始宣传其“SRE 文化”;2017 年,浙江移动正式组建应用 SRE 团队,开始收口 IT 系统的集成部署、应急保障、架构治理等工作职责,加速了传统企业的运维数字化的转型进程;2018 年,赵成在某次 SRE 的聚会上,拉起了“聊聊 SRE”微信群,国内 SRE 人才开始聚拢,SRE 社区初步成型,并逐步成为了最具影响力 SRE 中文社区;2021,阿里 CTO 线第一支横向 SRE 团队成立,隶属于技术风险与效能部,负责集团全局稳定性保障、资源成本等方面工作;2022 年,腾讯在内部技术岗位
18、设置中,新增了 SRE,标志着腾讯内部 SRE 体系的正式成立;2023 年,信通院云大所稳定性保障实验室牵头编制服务韧性工程(SRE)成熟度模型标准,推动该领域深入研究与实践应用,并在稳定性保障实验室成立了专门的“SRE 工作组”。SRE 实践白皮书(2024 年)4 网址:SRE-E 微信:SRE 精英联盟 1.3 SRE 的目标的目标 Site Reliability Engineering(SRE)的主要目标是通过结合软件工程和系统运维的最佳实践,提高大规模分布式系统的可靠性、可用性、性能和效率。以下是部分 SRE 追求的核心目标:可靠性:SRE 的首要目标是确保服务和系统的可靠性。这
19、包括减少故障、提高系统的稳定性,以确保用户在任何时候都能够获得一致的高质量服务。可扩展性:SRE 致力于设计和实施能够随着用户需求增长而扩展的系统。这涉及到对系统的架构和资源进行优化,以便在不降低性能的情况下,适应实际工作负载持续不断的峰谷状态变化。性能:SRE 关注系统的性能,旨在确保系统能够在合理地时间内快速响应用户请求。这包括对系统瓶颈的持续监控和优化,以提高整体性能。自动化:SRE 倡导自动化运维工作,以减少人为错误和提高效率。通过自动化,可以更快速地部署新功能、检测并响应故障,并合理的开展系统的升级和维护工作。监控和告警:SRE 强调对系统的全面监控,以便及时发现并解决问题。通过设置
20、有效的告警系统,可以在重大问题发生前迅速做出反应,从而减少对用户的影响。SRE 实践白皮书(2024 年)5 网址:SRE-E 微信:SRE 精英联盟 故障恢复:SRE 强调迅速而有效地恢复服务,以最小化用户体验的中断。这包括制定和演练紧急情况的应急计划。企业实现 SRE 核心目标的过程并不相同,落地路径各异。不论 SRE 部门(团队)在企业中的存在形式和所处位置,SRE 相关实践工作存在于大量流程中。这些工作流程与研发、测试、运维、产品运营等团队紧密的融合在一起,所有参与团队都在上述共享的 SRE 目标上做着各自的贡献。SRE 实践白皮书(2024 年)6 网址:SRE-E 微信:SRE 精
21、英联盟 第二章第二章 SRE 的组织架构的组织架构 SRE 团队在组织中的存在意义主要是确保系统的可靠性和高效运行。通过引入 SRE 角色,组织可以更好地平衡软件开发速率和系统稳定性之间的需求,从而实现更高水平的可用性、性能和自动化。通常 SRE 团队在组织中使命如下:可靠性优先:SRE 团队致力于确保服务的高可用性和可靠性。他们关注系统的稳定性,采取工程化方法来减少故障和提高系统的稳定性。自动化运维:SRE 团队推动自动化运维工作,以减少手动操作的错误和提高效率。通过自动化,可以更快速、可靠地进行部署、监控、故障检测和修复等操作。质量保证:SRE 团队参与服务的全生命周期,包括设计、开发、部
22、署和维护阶段,以确保系统在不同阶段都能保持高质量。快速创新:通过减少故障和提高系统的稳定性,SRE 团队为开发团队提供了更稳定的平台,使其能够更专注于业务创新和新功能的开发。在组织架构中,SRE 团队的存在形式可以各不相同,这主要取决于组织的规模、业务需求和文化。以下是一些常见的 SRE 团队的存在形式:SRE 实践白皮书(2024 年)7 网址:SRE-E 微信:SRE 精英联盟 中心化 SRE 团队:由一个专门的 SRE 团队负责支持整个组织的可靠性工作。这种模式有助于集中专业知识,确保在整个组织中实施一致的最佳实践。嵌入式 SRE 团队:SRE 团队成员被嵌入到各个产品或服务团队中,与开
23、发团队紧密合作。这种模式有助于更好地集成可靠性工作到产品开发的全过程中。混合模式:一些组织采取混合模式,既有中心化的 SRE 团队,又在一些关键项目中嵌入 SRE 角色。这种方式能够兼顾专业化和贴近业务的优势。每种存在形式都有其优势和适用场景,关键在于根据组织的需求选择最合适的模式。不论哪种方式,SRE 的目标都是通过自动化和工程方法提高系统的可靠性和效率。下面是国内某几家一线互联网 SRE 团队在组织架构中的设置模式。SRE 实践白皮书(2024 年)8 网址:SRE-E 微信:SRE 精英联盟 SRE 实践白皮书(2024 年)9 网址:SRE-E 微信:SRE 精英联盟 参考以上各个公司
24、 SRE 团队在组织架构中的位置,通常 SRE 团队需要承担以下几类职责:监控、事故响应、事后回顾、测试与发布、容量规划、工具开发和可用性改进等。由于各个公司的业务形态的不同,SRE 团队在组织架构中也有不同的定位和名称,包括:SRE 产品运维、互联网 SRE 组、AIoT SRE 组、信息技术 SRE 组、业务 SRE 组等。SRE 实践白皮书(2024 年)10 网址:SRE-E 微信:SRE 精英联盟 第三章第三章 SRE 的职能的职能 1 可靠性构架设计可靠性构架设计 可靠性架构设计是指在进行系统架构设计的过程中,根据系统的可靠性需求,采用分布式设计、解耦设计、冗余设计等高可靠性的架构
25、设计方案,以提升系统的可靠性。在进行可靠性架构设计的过程中,SRE 团队需要将应用架构设计流程完全融入其中,并与研发团队共同参与架构设计和评审工作。在系统设计阶段,应尽量消除可能出现的单点、容量等潜在风险,并提前为可能出现的系统架构风险做好应急准备。SRE 实践白皮书(2024 年)11 网址:SRE-E 微信:SRE 精英联盟 1.1 应用韧性架构应用韧性架构 1.1.1 分布分布式式设计设计 在系统中,存在被划分为职责明确、粒度合适且易于管理的组件,这些组件(如计算资源、业务部分、数据等)都可以进行分布式的部署和运行。组件之间相互独立、互不干扰,通过分布式设计可以提高开发效率和可靠性。组件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2024 SRE 实践 白皮书
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【宇***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【宇***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。