SRE文化与工程原则
1)什么是SRE文化
SRE文化是一套价值和实践,可以使可靠性得到控制:SLO目标→错误预算→有意识的变化风险→快速稳定→事件培训。
关键范式:可靠性的速度≠敌人。当风险被分配和自动化时,发行速度是可能的。
- 用户中心:用用户看到的方式表示可靠性(SLI/SLO)。
- 自动化第一:任何可重复的活动→脚本/策略/控制器。
- Blamelessness:错误-系统性,调查原因而不是人。
- 数据驱动:基于指标和错误预算的解决方桉。
- Simplicity:简单、可验证的机制>"魔术"解决方桉。
2) SRE基本工程原则
1.SLO/SLI和错误预算是优先级和排序的基础。
2.事件→稳定→ RCA-首先是症状,然后是原因。
3.减少体力劳动(toil)-目标≤ SRE时间的50%,随着时间的推移而降低。
4.准备就绪-"生产就绪"在外部流量之前是强制性的。
5.简单和隔离-关系更少,触发无线电的限制更多。
6.默认可观察性是度量/logi/轨迹,SLO小部件,合成。
7.可管理更改-渐进式交付,金丝雀布局,自动滚动。
8.Security by design-秘密、可用性、审核、最低权限。
9.学习周期-演习,混沌游戏,验尸和回顾展。
10.FinOps正念是"九点价格",成本服务,有效的SLO。
3)仪式和过程
3.1 Production Readiness Review (PRR)
在启用流量之前,服务必须具有:- SLI/SLO,dashboard和Alertes(快速/慢烧伤)。
- 健康终点"/healthz","/readyz","/startupz"。
- Runbook/事件花花公子,所有者/呼叫中,逃逸链。
- Backups/DR计划、资源限制、预算计算。
- 容错测试(幻灯片标志,滚回脚本)。
3.2每周SLO简报
按服务划分的错误预算状态。
一周内的事件,CAPA进展。
发布风险:允许/限制派遣的地方(按预算)。
3.3 Mortham无罪指控
事实和时间线,用户影响,帮助/阻碍。
系统原因(过程/工具)而不是"有罪"。
具有所有者和截止日期的特定CAPA,在公司内部进行宣传。
3.4游戏溷乱和演习
计划性故障注入(网络,DB,缓存,noda)+目标SLO。
"游戏日":稳定时间,MTTR测量,花花公子调整。
4)警戒和噪音
原则:- 仅在符号上发出警报:SLO或用户路径中断。
- 多窗口、多燃烧:快慢通道。
- Quorum/反翻转:延迟"for",在维护时抑制。
- Doloy "CPU> 80%"是进入死板的此类信号,不是传呼机。
- Actionable的份额≥ 80%。
- Median时间到ack ≤ 5分钟(P1)。
- 减少"Pager fatigue":每位工程师每周≤ 1个晚上分页。
5)变更管理
Progressive delivery: canary → 10% → 25% → 50% → 100%.
通过SLO信号自动回滚(错误/潜在性)。
Feature-flags和kill-switch代替全局回滚。
Change policy by risk: fast lane для low-risk;CAB只是高风险。
yaml steps:
- setWeight: 10
- analysis: { template: "slo-check" } # fail ⇒ rollback
- setWeight: 25
- analysis: { template: "slo-check" }
6)减少toil(例行体力劳动)
Toil来源示例:手动除尘器,重新启动,tikets"访问",清理队列。
方法是:- 可重复任务的清单→自动化/自我服务。
- KPI:toil,"自动步骤/事件","分钟到自我服务"的时间百分比。
- 平台服务目录(namespaces,DB,队列,dashbords,alertes)。
7)可观察性和SLO第一设计
Golden Signals (latency, traffic, errors, saturation).
每个团队的SLO卡:目标,窗口,预算,burn-alerta。
Drilldown:从指标到逻辑/轨迹;默认逻辑中的"trace_id"。
合成:blackbox+无头脚本(登录/deposit/checkout)。
8)设施管理和可持续性
能力规划:目标RPS/竞争性,AZ/区域库存。
Bulkhead/shedding:隔离池,首先拒绝次要功能。
背景和队列:脱位控制,DLQ,自适应竞争力。
Failover和DR:RPO/RTO,常规DR钻。
9)安全性作为可靠性的一部分
Secrets: Secret Manager, JIT访问,审核。
外围的WAF/DDoS守卫,对客户/tenant的限制。
PII最小化,事件中的DSAR/法律保留。
供应链安全:工件签名,基本映像策略。
10)健康的电子
没有"单身"的轮换,清晰的休息窗口。
"晚上醒来"的门槛仅P1/P2 SLO。
Psychogyene:睡眠不足被记录为手术风险。
指标:佩奇/奈德,夜间佩奇/工程师,恢复时间。
11) SRE成熟度量
SLO覆盖:具有SLO/Alert的关键路径的比例≥ 90%。
错误预算政府:有自由规则并适用。
Toil:≤ 30-40%的时间,趋势下降。
MTTD/MTTR:季度动态中的中位数。
自动移动率:自动操作事件的百分比。
PRR通行率:已完成程序准备的版本比例。
Postmortem SLA:SEV-1-mortem ≤ 48小时。
12)文档和知识
最小集合:- Runbooks/Playbooks(顶级脚本:5xx spike,DB lag,Kafka lag,NodeNotReady,TLS)。
- SLO卡和行车记录仪。
- PRR支票清单和发行模板。
- 平台服务目录和OLAs/SLAs。
- 培训材料:SRE 101、Chaos 101、On-call 101。
13)反模式
英雄文化:"救援人员"而不是系统虚构。
嘈杂的警报: CPU/驱动器到寻呼机,数百个不必要的信号.
"DevOps是人":涂抹责任,没有业主。
缺乏SLO:"保持绿色"→优先溷乱。
延迟的验尸和"猎巫"。
没有金丝雀的全球回滚。
Configa/Repo中的秘密;没有活动审核。
Observability是"美丽的图形",没有可操作的信号。
14)工件模板
14.1 SRE宪章(片段)
yaml mission: "Make reliability manageable and economical"
tenets:
- "User - SLI/SLO Center"
- "Automation-first, minimizing toil"
- "Blameless & learning"
governance:
error_budget:
freeze_threshold: 0. 8 # 80% of the budget burned ⇒ release frieze review_cadence: "weekly"
oncall:
paging_policy: "SLO-only, P1/P2 at night"
health_metrics: ["pages_per_week", "night_pages_per_engineer"]
14.2 Mini-PRR支票清单
- SLI/SLO和burn-alertes调音
- 健康终点和合成
- Runbook/花花公子+所有者/呼叫上
- Rollback/Fich-Flags/金丝雀
- Dashbords latency/errors/traffic/saturation
- 安全限制/配额/guardrails
- DR-plan和backaps测试
15)按阶段实施(4冲刺)
Sprint 1-基础
定义关键用户路径和SLI。
制定SLO并运行burn-alertes。
引入PRR和最小花花公子。
Sprint 2-变更管理
金丝雀布局,SLO上的自动回滚。
自我服务操作,服务目录。
Toil库存和自动化计划。
Sprint 3-学习周期
后太平间仪式,混沌游戏日历。
Dashboard SLO+事件,错误预算报告。
Sprint 4-优化和缩放
SLO产品组合,FinOps "cost per 9"。
实施DR纪律,安全审核。
KPI上电,预防倦怠。
16)迷你常见问题
SRE="修复一切"?
没有。SRE管理可靠性系统:SLO,Alerting,过程,自动化和培训。
如何说服企业投资于可靠性?
显示ROI: MTTR下降,转换增加,SLA信用较少,低于成本服务,稳定发布。
是否需要单独的SRE命令?
溷合模型:战略性SRE在关键产品的平台+嵌入式SRE中。
底线
SRE文化不是职位,而是处理风险的方法:SLO →错误预算→可管理的更改→自动化→培训。确定原理,建立仪式(PRR,验尸程序,混沌游戏),拍摄玩具,建立"默认"可观察性,并注意其呼叫。因此您可以获得稳定的开发速度、可预测的版本以及可靠、经济高效的平台。