災難恢復方案
1)為什麼需要DR和什麼目的
災難恢復(DR)是用於災難恢復服務的一組體系結構,過程和培訓(數據中心/區域故障,數據丟失,大規模配置錯誤)。DR的目標是以可控的成本和風險執行目標的RTO/RPO,同時保持客戶信心和合規性。
RTO(恢復時間目標):允許的停機時間。
RPO(恢復點目標):有效的數據丟失(來自最後一個一致點的時間)。
RLO(恢復水平目標):必須首先返回的功能級別(最低可行服務)。
2)按臨界值分類系統
0級(至關重要):付款,登錄,KYC,交易核心-RTO ≤ 15分鐘,RPO ≤ 1-5分鐘。
1級(高):操作面板,D-1報告-RTO ≤ 1小時,RPO ≤ 15-60分鐘。
Tier 2(平均):後臺,近實時分析-RTO ≤ 4-8小時,RPO ≤ 4-8小時。
Tier 3(低):非關鍵輔助-RTO ≤ 24-72小時,RPO ≤ 24小時。
在服務目錄中為每個服務分配Tier+目標RTO/RPO;與之核對決定和預算。
3)威脅模型和情景
人為:AZ/區域/提供程序故障, 網絡/DNS降解,數據庫/存儲故障,大規模發布錯誤。
人為因素:錯誤的configi/IaC、數據刪除、密鑰損害。
自然/外部:火災/洪水,能源中斷,法律封鎖。
對於每個-估計概率/影響,綁定到DR腳本和花花公子。
4) DR架構模式
1.主動活動(Multi-Region):兩個區域都為流量服務。
優點:RTO/RPO最低,穩定性高。
缺點:數據復雜性/一致性,價格高。
其中:讀重,緩存負載,無狀態服務,多主DB(嚴格的沖突規則)。
2.Active-Passive (Hot Standby):「熱」passific擁有一個完全加熱的副本。
RTO:分鐘;RPO:分鐘。需要自動故障切換和復制。
3.Warm Standby:加熱資源的一部分,在發生事故時進行縮放。
RTO:幾十分鐘;RPO:15-60分鐘更經濟,但更長。
4.Pilot Light:最小「火花」(元數據/映像/腳本)+快速掉頭。
RTO:時鐘;RPO:時鐘。便宜,適合Tier 2-3。
5.Backup&Restore:離線備份+手動預熱。
RTO/RPO:每小時。僅適用於低關鍵性和檔案。
5)數據與一致性
DB復制:- 同步-幾乎為零RPO,但↑latentnost/stoimost。
- 異步-性能更好,RPO> 0(日誌尾)。
- 一致性:選擇模型(strong/eventual/causal)。對於付款-嚴格來說,對於分析師-事件。
- 切片(Snapshots):定期創建一致點+存儲日誌(WAL/redo)。
- 跨區域交易:避免2PC;使用等效操作,delh-i-re-yay(重復重復數據消除),事件源。
- 隊列/總線:復制/鏡像、DLQ、訂購和用戶體驗。
6)網絡、流量和DNS
GSLB/Anycast/DNS: failover/failback策略、低TTL(但不過分)、來自多個地區的健康檢查。
L7路由:區域地圖,降級標誌(功能限制)。
Private-links/VPN:提供商備用通道(PSP/KYC/CDN)。
比例限制:恢復時抵禦風暴。
7) Stateful vs Stateless
Stateless由腳本/自動標記攜帶;stateful需要一致的數據策略(復制、狙擊、副本促銷、法定人數)。
緩存/會話:具有跨區域復制或日誌重播的外部(Redis/Memcached);將會話保存在令牌(JWT)或共享存儲中。
8)觸發器和自動化DR
SLO Gardrails和法定探針→自動區域失敗運行手冊。
發生事故時更改凍結:阻止非相關發布/遷移。
基礎架構作為代碼:按清單部署攤位,漂移檢查。
角色推廣:DB副本的自動推廣+作家/秘密的敷料。
9)溝通和合規性
War-room: IC/TL/Comms/Scribe;SEV的更新間隔。
狀態頁面:影響力地理,ETA,解決方案。
監管:通知時間、數據安全、不可更改的事件存儲。
合作夥伴/提供商:已確認的聯系人、專用渠道。
10) DR測試和練習
Tabletop:討論腳本和解決方案。
Game Day (stadage/prod light):模擬AZ/區域故障、禁用提供程序、 DNS重置。
恢復測試:定期隔離恢復備份並驗證完整性。
Chaos/Failure injection:受控的網絡/主機/依賴性故障。
KPI演習:實現RTO/RPO,花花公子缺陷,CAPA。
11)財務和戰略選擇(FinOps)
計算每減少RPO/RTO$:目標越低-渠道、許可證、儲備金越貴。
混合動力車: 0級-主動/熱門;Tier 1 — warm;Tier 2–3 — pilot/backup.
數據價格昂貴:使用冷層(存檔/S3/GLACIER),增量快照,重復數據消除。
定期檢討DR-infra的成本和證書/許可證。
12) DR成熟度量標準
每個級別的RTO(事實)和RPO(事實)。
DR Coverage:使用正式腳本/花花公子/測試的服務百分比。
Backup Success&Restore Success:備份和經驗證的恢復的日常成功。
時間到決定性災難:失敗決策的速度。
Failback Time:返回到正常拓撲。
否定率教學:發現的差距/教學。
Compliance Evidence Completeness:工件的完整性。
13)支票單
在實施DR之前
- 服務目錄包含Tier、RTO/RPO、依存關系和所有者。
- 為層級和預算選定了一個模式(AA/AP/WS/PL/BR)。
- 一致性和復制約定已記錄在案。
- GSLB/DNS/路由和健康檢查已配置和測試。
- Backaps、snapshots、change日誌-包括在內,經過restore驗證。
- DR花花公子和提供商聯系人以實際形式。
事故發生時(簡短)
- 宣布SEV並組裝戰爭室;凍結發行版。
- 檢查探針的法定人數;記錄影響/地理。
- 執行Failover Runbook:流量、DB促銷、隊列、緩存。
- 包括degrade-UX/限制;根據SLA發布更新。
- 收集事件(時間線、圖形、日誌、命令)。
事故發生後
- 觀察間隔的SLO N;按照計劃執行失敗。
- 進行AAR/RCA;制定CAPA。
- 更新花花公子、Alert催化劑、DR測試案例。
- 向賭客/監管機構報告(如有必要)。
14)模板
14.1個DR腳本卡(示例)
ID: DR-REGION-FAILOVER-01
Scope: prod EU ↔ prod US
Tier: 0 (Payments, Auth)
Targets: RTO ≤ 15m, RPO ≤ 5m
Trigger: quorum(probes EU, US) + burn-rate breach + provider status=red
Actions:
- Traffic: GSLB shift EU→US (25→50→100% with green SLIs)
- DB: promote US-replica to primary; re-point writers; freeze schema changes
- MQ: mirror switch; drain EU DLQ; idempotent reprocess
- Cache: invalidate region-specific keys; warm critical sets
- Features: enable degrade_payments_ux
- Comms: status page update q=15m; partners notify
Guardrails: payment_success ≥ 98%, p95 ≤ 300ms
Rollback/Failback: EU green 60m → 25→50→100% with guardrails
Owners: IC @platform, DB @data, Network @netops, Comms @support
14.2 Runbook 「Promote DB復制副本」(片段)
1) Freeze writes; verify WAL applied (lag ≤ 30s)
2) Promote replica; update cluster VIP / writer endpoint
3) Rotate app secrets/endpoints via remote config
4) Validate: read/write checks, consistency, replication restart to new secondary
5) Lift freeze, monitor errors p95/5xx for 30m
14.3 DR演習計劃(簡短)
Purpose: to check RTO/RPO Tier 0 in case of EU failure
Scenario: EU incoming LB down + 60s replication delay
Success criteria: 100% traffic in US ≤ 12m; RPO ≤ 5m; SLI green 30m
Artifacts: switching logs, SLI graphs, step times, command output
15)反模式
「有備用」,沒有定期的恢復測試。
秘密/後端不會自動切換。
重復交付時→重復的/丟失的交易不具有相容性。
對於沒有降級標誌的區域,相同的configas。
由於擔心「虛假焦慮」,長時間的解雇。
單區域提供商(PSP/KYC)沒有替代方案。
沒有失敗的計劃-生活在「永遠」的緊急拓撲中。
16)實施路線圖(6-10周)
1.奈德。1-2:按級別分類服務,安裝目標RTO/RPO,選擇DR模式。
2.奈德。3-4:設置復制/備份,GSLB/DNS,促銷程序;花花公子和跑書。
3.奈德。5-6:第一次DR演習(tabletop→stage),指標固定和CAPA。
4.奈德。7-8:交通受限的演習;failover自動化。
5.奈德。9-10:成本優化(FinOps),Tier 0移至hot/AA,季度演習和報告法規。
17)結果
有效的DR不僅僅是備用。這些是一致的體系結構,故障轉移/故障回傳自動化,數據學科(相等/復制),培訓和透明通信。當RTO/RPO是真實的,花花公子工作並定期進行演習時,災難變成了托管事件,之後服務迅速且可預測地恢復正常。