事件和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/預算錯誤,並不斷改進檢測器和花花公子-直接降低停機的風險和成本。