事件和SRE花花公子
1)什么是事件及其与SLO的关系
事件是违反SLO/服务功能或造成违规风险的事件(错误的预算过得不可接受)。
经典指标:MTTD,MTTA,MTTR,MTBF。
预算错误和burn-rate定义了升级的优先级和窗口。
2)严重程度(SEV)和标准
SEV触发器:超过5xx%、p95>阈值、支付决定性尖端、Kafka-lag>阈值、NodeNotReady> X min、TLS过期<7天、DDoS信号/泄漏。
3)角色和责任(RACI)
事件指挥官(IC)-单一决策,任务流管理,SEV身份变更。
Ops Lead(Tech Lead)-技术策略,假设,虚构协调。
Communications Lead (Coms)-状态更新(内部/外部)、StatusPage/聊天/邮件。
Scribe(编年史)-时间线,解决方案,工件,图形/徽标链接。
呼叫工程师/SMEs-播放器操作的执行。
安全/隐私-包括安全事件或PII。
FinOps/Payments-当影响计费/PSP/成本时。
4)事件生命周期
1.细节(警报/复制/合成)→自动创建事件卡。
2.三元组(IC指定,SEV指定,收集最小上下文)。
3.稳定化(mitigation: 关掉机头/rollback/rate-limit/failover)。
4.调查(RCA假设,事实收集)。
5.服务恢复(validate SLO,观察)。
6.通讯(内部/外部,最终报告)。
7.Postmortham(无指控,CAPA计划,所有者,时限)。
8.预防(测试/alerta/花花公子/标志,团队补习)。
5)沟通和"战争室"
一个单一的事件频道("#inc-sev1-YYYYMMD-HMM"),只有事实和行动。
无线电协议样式的命令: "IC:指派滚装版本1。24 → ETA 10分钟。"
地位升级:每15枚地雷SEV-1枚、每30至60枚地雷SEV-2枚。
状态页面/外部通信-通过模板通过Comms Lead。
禁止:平行的"安静"房间,未经检验的假设进入共享通道。
6)Alerting和SLO-burn(示例规则)
快速通道(1-5分钟)和慢通道(1-2小时)燃烧率。
多信号:预算错误,5xx%, p95, Kafka-lag,支付限额,合成。
寻找根本原因-只有在症状稳定之后。
promql
Ошибочная доля 5xx > SLO sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.01
Burn-rate быстрый (пример)
(sum(rate(http_requests_total{status=~"5.."}[1m])) / sum(rate(http_requests_total[1m])))
/ (1 - SLO) > 14.4
7)花花公子vs ranbuks
花花公子是按事件类型(分支,条件,风险)进行操作的场景。
Ranbook是步骤/命令(检查,虚构,验证)的特定"地图"。
规则:花花公子引用了几本书籍(rollbacks,feature-flags,failover,缩放,交通阻塞等)。
8)事件卡模板
yaml id: INC-YYYYMMDD-XXXX title: "[SEV-1] Рост 5xx на API /payments"
status: active monitoring resolved sev: 1 reported_at: 2025-11-03T17:42Z ic: <ФИО>
ops_lead: <ФИО>
comms_lead: <ФИО>
scope: regions: [eu-west-1], tenants: [prod], services: [api, payments]
impact: "5xx=12% (обычно <0.5%), конверсия депозитов -20%"
mitigation: "откат на 1.23.4, включен rate-limit 2k rps, фича X выключена"
timeline:
- "17:42: алерт SLO burn-rate быстрый"
- "17:46: назначен IC, открыт war-room"
- "17:52: найден релиз 1.24 как кандидат"
- "18:02: откат завершен, 5xx вернулись к 0.3%"
artifacts:
dashboards: [...]
logs: [...]
traces: [...]
risk: "возможен очередной всплеск при включении фичи X"
next_steps: "канареечный релиз, тесты, постмортем до 2025-11-05"
9)SRE花花公子模板(Markdown)
markdown
Плейбук: <название>
Область/симптомы
Список детекторов, сигнатуры в метриках/логах/трассах.
Быстрая стабилизация (Triage & Mitigation)
- [ ] Ограничить трафик/включить WAF-правило/фичефлаг OFF
- [ ] Роллбэк/канареечный релиз/выкатить фикс конфигурации
- [ ] Включить деградационный режим (read-only, кэш-форс)
Диагностика (RCA hints)
- Метрики: … Логи: … Трассы: …
- Частые первопричины/чек-лист гипотез
Риски и коммуникации
- Внутренние/внешние апдейты, SLA-обязательства
Верификация
- [ ] SLO восстановлено (порог/время окна)
- [ ] Нет регресса по смежным сервисам
Последующие действия
- CAPA, задачи в backlog, обновление алертов/дашбордов/плейбука
10)类型花花公子
10.1 API 5xx Spike
稳定:禁用有问题的鞭打;增强API复制副本;启用缓存;发行回滚。
诊断:diff版本,logs错误(top-exceptions),p95生长,pressure DB/kesha。
风险:支付/后端级联。
10.2 БД: replication lag / lock storm
稳定:暂停重型乔布/报告;将阅读重定向到向导;增加wal_buffers/replika-sloty。
诊断:长期事务,阻止查询,计划变更。
固定:索引/hintas,乔布斯重建,查询细分。
10.3 Kafka consumer lag
稳定:暂时缩放消费者;减少非关键服务的生产;增加政党/配额。
诊断:重生,缓慢去序列化,GC暂停。
验证:Lag →到目标值,没有空白。
10.4 K8s NodeNotReady/资源风暴
稳定:cordon+drain;重新分配负载;检查CNI/overlay;关闭嘈杂的DaemonSet。
诊断: disk pressure, OOM, throttling, network drops.
预防:pod disruption budgets,资源限制/请求。
10.5个TLS/证书到期
稳定:强制更新秘密/入口;临时超速。
诊断:信任链,clock-skew。
预防:Alert T-30/T-7/T-1,自动复兴。
10.6 DDoS/异常流量
稳定:WAF/机器人规则,rate-limit/geo过滤器,上游挂载。
诊断:攻击概况(L3/4/7),来源,"雨伞"。
预防:随机,自动缓存,缓存,与提供商玩。
10.7支付PSP外包
稳定:智能路由到备用PSP/方法;用挤压器提高复出;"软"UI降解。
诊断:破解代码故障、API 状态/PSP状态页。
通讯:企业和札幌的透明升级,正确的ND/转换统计数据。
10.8 安全事件/PII泄漏
稳定:节点隔离/秘密旋转,渗出锁定,法律保留。
诊断:访问时间线,受影响的对象/字段。
通知:监管机构/合作伙伴/根据司法管辖区要求的用户。
预防:增强DLP/分段,"least privilege"。
11)花花公子自动化
ChatOps命令: '/ic set sev 1', '/deploy rollback api 1.23.4`, `/feature off X`.
Runbook-bots:半自动步骤(drain node, flip traffic, purge cache)。
自助护理钩子:检测器→标准测序(rate-limit,restart,scale)。
自动创建卡片/时间线,包括警报和命令。
12)花花公子质量: 支票清单
- 清晰的症状和检测器(度量/标志/轨迹)。
- 风险评估的快速稳定步骤。
- 命令/脚本是相关的,在堆迭中进行验证。
- SLO恢复验证。
- 外部升级的通信模式和标准。
- 关闭后的Postmortham链接和CAPA。
13)Postmortham(无忧无虑)和CAPA
目的:学习而不是找到罪魁祸首。
内容:发生了什么,发现什么是好的/坏的,因素(那些+过程)的贡献,预防行动。
期限:SEV-1期48小时;SEV-2-3个工作日。
CAPA:具体所有者,时机,可测量的影响(MTTR 减少/MTTD增长)。
14)法律方面和证据基础
法律保管:冻结log/truss/alerts, write-once金库。
工件存储链:按角色访问、完整性控制。
监管通知:司法管辖区的时限/模板(特别是受影响的付款/PII)。
私有性:在分析中最小化和掩盖PII。
15)事件过程效率指标
按社区和领域划分的MTTD/MTTA/MTTR。
SEV是正确的(未注销/overrating)。
机动车辆事故的比例。
花花公子覆盖顶部N脚本(>90%)。
按时执行CAPA。
16)按阶段实施
1.第1周:SEV矩阵,呼叫角色,通用卡模板,战争室法规。
2.第2周:前5种症状的花花公子(5xx,DB lag,Kafka-lag,NodeNotReady,TLS)。
3.第3周:ChatOps/机器人,自动卡制作,通信模板/StatusPage。
4.第4周以上:安全花花公子,PSP外卖,法律保存,定期演习/混乱游戏。
17)"快速"ranbook的示例(片段)
Rollback API (K8s)
bash kubectl rollout undo deploy/api -n prod kubectl rollout status deploy/api -n prod --timeout=5m
Верификация:
kubectl -n prod top pods -l app=api
Drain node
bash kubectl cordon $NODE && kubectl drain $NODE --ignore-daemonsets --delete-emptydir-data --timeout=10m
Feature-flag OFF(示例)
bash curl -X POST "$FF_URL/toggle" -H "Authorization: Bearer $TOKEN" -d '{"feature":"X","enabled":false}'
18)迷你常见问题
什么时候抬起SEV-1?
当关键SLO/业务功能(支付,登录,游戏)受到影响时,并且燃烧率将"吞噬"预算。
更重要的是-RCA或恢复?
总是稳定,然后是RCA。稳定前的时间是主要指标。
一切都需要自动化吗?
自动执行频繁和安全的步骤;罕见/风险-通过半自动和IC确认。
结果
强大的事件过程取决于三个支柱:明确的角色和SEV规则,具有自动化功能的优质花花公子/ranbook以及无指控的验尸文化。记录模板、在线培训、测量MTTR/预算错误,并不断改进检测器和花花公子-直接降低停机的风险和成本。