SRE体系建设指南
sre体系建设指南
一、团队建设
指导思想
拥抱风险:容忍风险、度量风险、管理风险、研究当前高频故障原因和主要风险;演进式、SLO目标内允许故障
工作准则:专注改进设计、专注研发工作;把可靠性工作纳入软件各阶段、简单化、减少琐事
工作方法
Google Sre具体方法:紧急响应、有效告警、Oncall轮值;事后总结、故障管理、有效排障;应对过载、测试可靠性、故障跟踪;可靠性管理、处理连锁故障
Mikey金字塔:容量规划、开发工作、用户体验、监控、事故响应、事后回顾、测试与发布;沟通与协作
工作目标
确定可靠性工作对象:强依赖服务、核心系统/服务、核心业务
目标与度量:确定合理目标、服务质量目标、SLI/SLO/SLA、目标一致性(上下游强依赖关系的服务目标对齐)、Error Budget错误预算
代码质量:回归策略、测试有效、研发过程、性能压力测试、联调测试
软件可靠性-长期关注研发工作
业务架构:强弱依赖、核心链路、用户旅程、资损防控、攻防演练;数据对账(隔天对账、实时对账)
应用架构:微服务架构、分层架构、可熔断可降级、调用方式
系统架构:资源隔离、服务隔离、业务隔离
基础设施架构:双活、主备冗余、反亲和、流量调度、两地三中心
标准规范
优秀实践、标准作业流程SOP、组织红线、通用标准
SRE文化
自驱、精进、担当、开放、协作、共享(团队文化关键字);业界倡导/宣言(研发效能宣言、敏捷宣言、DevOps八荣八耻)
人才培养
岗位互备、技术分享、学习小组、新人辅导
二、工具链打造
可观测性
包含内容:聚合度量指标、链路追踪(StackTrace、RUM、NPM、APM)、事件日志
优秀实践:黄金指标/北极星指标(业务核心指标识别)、监控大盘、灭火图
能力要求:故障发现、定界与定位、故障诊断
全链路压测
流量回放压测、单链路压测、单机或单应用压测
故障修复
故障报告、协同平台、预案平台
持续交付
持续测试/验证、持续部署、持续集成、持续构建
混沌工程
Chaosmesh、ChaosBlade
Aiops
舆情监控、自动决策、根因推荐、无阈值告警、智能告警
三、工作流程
可靠性变更&发布
变更管理:自动化发布、有计划地发布、变更记录、变更通知、变更审批、变更终止、变更回滚
发布策略:灰度发布、蓝绿部署、金丝雀部署、A/B Test
变更要求:可灰度、可监控、可终止、可回滚
巡检:系统巡检、功能巡检、人工巡检
立体式监控覆盖:APM、NPM、RUM、应用日志、服务端指标、服务端调用链路
拨测:链路质量:连通性、路由、时延、丢包、DNS;服务质量:页面性能、API性能、文件下载
通知:报警、巡检通知、大盘分析
应急事件通知
开关预案:风险盘点、预案梳理、预演推演、预案制定、预案演练
故障干预:隔离、回滚、降级、熔断、重启
事故管理
应急协同:故障通知与升级、故障追踪、应急响应机制(WarRoom/电话会议、现场指挥、职责分工、进度信息披露)
故障治理
故障复盘:原则:五条归零(过程清楚、机理清楚、影响清楚、整改到位、举一反三);复盘过程(回顾、分析、总结、行动)流程闭环
故障判定:故障定级、故障定性、故障定责(故障报告、故障评审、定期回顾)
容量管理
资源部署:混合云、多云、Buffer池
资源评估:性能压测、历史运营数据挖掘、流量预估(节假日、重大运营活动)
弹性调度:无状态化、自动扩缩容
效率与性能
性能分析与优化、在质量达标情况下效率优先
持续运维/持续运营
稳定性运营报告:巡检日报、运营周报、运营月报、季度/年度总结
重大活动保障:重保活动评估、容量评估/工作负载评估、资源保障、安全防护、风险梳理及预案、后勤保障、OnCall值守
接手运维新工作:全新项目启动、中途接管现有项目、团队内新人接手运维、重点项目-准备SRE覆盖
必备知识库
云原生技术
云原生DevOps:CI持续集成、CD持续部署、容器编排、弹性伸缩
云原生架构:Service Mesh、MicroServices、IAC、Serverless
容器技术:容器网络、容器存储、资源隔离(CPU、内存、磁盘、网络)
公有云:常用云产品、多云差异、多云协同、云工具链建设(基于公有云提供的API)
应用软件高可用
架构模式:SOA、MicroService、ServiceMesh
微服务通信:通信协议、异步通信、分布式事务
集群容错设计:容错设计、过载保护、超时重试
服务治理:服务发现、负载均衡
应用软件框架与可靠性
开源框架:Springcloud、MVC、GIN、Dubbo
数据库与中间库可靠性
数据库:关系型数据库、NOSQL、中间件(队列、缓存)
软件基础设施可靠性
发布流水线、研发环境与可靠性、数据流水线、周期任务系统、分布式锁系统、共识系统、DNS、负载均衡、监控与报警系统、统一元数据(资源元数据、业务元数据)
Linux技术与可靠性
linux基础操作、系统及应用性能调优、脚本编程能力、常见高可用技术和方案、系统及应用安全加固、Linux内核调优
服务器可靠性
计算服务器、存储(对象存储、文件存储、块存储)、网络
网络可靠性
核心网、接入网、专线网、骨干网、无线网
数据中心可靠性
网络、电力、制冷、消防、IT设备
运维安全与可靠性
DevSecOps、代码静态扫描、入侵检测、AntiDDOS