I09 · 災難復原 詳細 ROADMAP
計畫文件,不會被 Quartz 渲染。
回主 roadmap → infra/ROADMAP.md
章節目標
萬一出事怎麼辦 ——Backup / Restore / DR / Chaos Engineering。本章處理系統層的災難復原 ,從單檔案損毀到整個 region 掛掉的範圍。
跟 ops-notes 分工 :本章講DR 的策略與設計 ;真實事件(掛了什麼、怎麼處理)在 ops-notes。
🌱 基本介紹
# 主題 Slug Stage 大綱 01 DR 全景 01-dr-landscape🌱 從單檔 restore 到全 region 切換;RTO / RPO 光譜
❓ 為什麼需要
# 主題 Slug Stage 大綱 02 為什麼「有 backup」還不夠 02-why-backup-not-enough🌱 Backup 跟 restore 是兩件事;定期 restore 演練;沒驗過的 backup = 沒 backup 03 為什麼 RTO / RPO 要討價還價 03-why-rto-rpo-negotiation🌱 100% uptime 無限成本;跟業務定義「可接受的損失」;Error budget 對話 04 為什麼 Chaos Engineering 不是主動找碴 04-why-chaos-engineering🌱 被動等事件不如主動驗證;漸進式引入;Netflix / Stripe 實踐
🕰️ 演進
# 主題 Slug Stage 大綱 05 Backup / DR 基礎 ⛔️ infra/disaster-recovery/28-backup-disaster-recovery 🌿 跨系列 06 DR 演進驅動力 06-dr-evolution-drivers🌱 Tape backup 恢復慢撞牆 → Disk backup;單一備份點撞牆 → 3-2-1 rule;pasive standby 成本撞牆 → Active-Active / Pilot Light;被動等事件撞牆 → Chaos Engineering
🧠 知識型
F09-A Backup 策略
# 主題 Slug Stage 大綱 07 Backup 基礎(3-2-1 rule) ⛔️ infra/disaster-recovery/28-backup-disaster-recovery 🌿 跨系列 08 DB Backup / PITR 深入 08-db-backup-pitr🌱 PG WAL 歸檔、MySQL binlog、MongoDB oplog;PITR 實測 RPO 09 Object Storage Backup 09-object-backup🌱 S3 cross-region replication / versioning / Glacier;備份的備份 10 K8s Backup(Velero) 10-k8s-backup-velero🌱 PV + resource 備份;跨 cluster 還原;災難切換 workflow 11 應用層 Backup(Redis / MQ) 11-application-layer-backup🌱 Redis RDB、MQ message durability;什麼值得備份 12 Data Recovery 分層 12-data-recovery-tiers🌱 三種資料損毀場景的完整 workflow :(1) 邏輯錯誤刪資料(recover to PITR before delete);(2) 硬碟壞 / RAID 壞(restore from backup);(3) 被攻擊加密 / 惡意修改(見 #13 Ransomware)。Detection → Decision → Execute 流程;跟 #08 PITR 配合13 Ransomware Recovery(勒索軟體恢復) 13-ransomware-recovery🌱 2024+ 必修 :Colonial Pipeline / Change Healthcare 實戰解剖;immutable backup (S3 Object Lock / WORM storage)、air-gapped backup (離線 / 不同帳戶);detection(heavy encryption activity / unusual backup access);protocol:隔離感染 → 評估影響 → 從乾淨 backup restore → 驗證無殘留
F09-B Disaster Recovery 策略
# 主題 Slug Stage 大綱 14 RTO / RPO 定義與量測 14-rto-rpo🌱 Recovery Time / Point Objective;跟業務對話的語言;度量方法 15 DR 架構模式 15-dr-patterns🌱 Backup & Restore / Pilot Light / Warm Standby / Active-Active;成本 vs RTO 權衡 16 Multi-region Failover(跟 I08 連動) 16-multi-region-failover-dr🌱 DNS / traffic switch;狀態同步;split-brain 防範 17 Database Failover 實戰 17-db-failover-practical🌱 Patroni auto-failover;RDS Multi-AZ;跨 region promote replica 18 Cross-region Replication 成本 18-cross-region-replication-cost🌱 Egress 費 / latency / 一致性;哪些資料值得複製 19 Stateful Workload DR(K8s) 19-stateful-workload-dr🌱 跟 I03 #23 StatefulSet / I04 #13 DB-on-K8s 呼應 :PG / Kafka / ES on K8s 的 DR 特殊挑戰——資料 + 配置 + Pod identity(StatefulSet pod name) 全部要 restore;Velero + pre/post hooks;Operator-aware backup(CloudNativePG backup CRD);跨 cluster replica promote 流程
F09-C Chaos Engineering
# 主題 Slug Stage 大綱 20 Chaos Engineering 基礎 20-chaos-engineering-basics🌱 Chaos Monkey → Chaos Engineering Principles;hypothesis-driven experiments 21 Chaos 工具生態 21-chaos-tools🌱 Chaos Mesh / Litmus / Gremlin / AWS FIS;K8s-native vs SaaS 22 漸進式引入 Chaos 22-chaos-gradual-intro🌱 先 Dev → Staging → 限定 prod;buy-in 策略 23 DR Automation:從 Chaos 到自動化 DR Drill 23-dr-automation🌱 演化路徑 :手動演練 → 排程 Chaos(kill pod / inject latency)→ 自動化 DR drill(季度自動切 region)→ 結果回報機制(drill 自動開 ticket、修復項目 feed back to runbook);跟 I07 CI/CD 整合(pipeline 觸發 DR drill)
F09-D Incident Response
# 主題 Slug Stage 大綱 24 Incident Response 流程 24-incident-response🌱 Severity 分級 / On-call rotation / War room / Runbook;跟 ops-notes/ 協作 25 Postmortem 文化 25-postmortem-culture🌱 Blameless postmortem;5 Whys;持續改進機制 26 DR event 完整 workflow(本章到 ops-notes) 26-dr-workflow-to-ops-notes🌱 閉環設計 :告警(I05 #26 chain)→ open ticket(PM07 Issue Tracker)→ runbook 執行(ops-notes O13 methodology)→ 具體案例 commit(ops-notes O01-O12)→ postmortem → update runbook → update Chaos test;從 I09 到 ops-notes 的完整流程 ,原本 #26 ops-notes 協作升級
F09-E Business Continuity Plan
DR 講技術面怎麼恢復 ;BCP 講業務連續性 ——客服還能接電話嗎?利害關係人怎麼告知?infra 要支援 BCP 的什麼設施。
# 主題 Slug Stage 大綱 27 BCP vs DR:infra 要支援的業務連續性 27-bcp-vs-dr🌱 BCP 涵蓋:客戶溝通(status page Statuspage / Atlassian / Upptime)、內部協調(備援溝通管道 like Slack fallback)、利害關係人通知模板;infra 層要提供 status page / 聯絡人系統 / 備援 webhook;跟 management/engineering-process/04-incident-management 連動
🔧 小實作注意事項
# 主題 Slug Stage 大綱 28 Backup 還原演練 28-backup-restore-drill🌱 每季演練;timing;驗證資料一致性 29 Multi-region Failover 演練 29-multi-region-drill🌱 測 DNS 切換時間;驗應用是否還能寫;RPO 驗證 30 第一個 Chaos Experiment 30-first-chaos-experiment🌱 Dev 環境 kill random pod;觀察自動恢復;記錄學到什麼
💣 Anti-pattern
# 主題 Slug Stage 大綱 31 DR Anti-patterns 31-dr-antipatterns🌱 Backup 從不測 restore、只有本地 backup(同一 DC 燒了就沒了)、RTO 設 0(不切實際)、DR 計畫寫完不演練、Chaos 直接上 prod 沒準備、Incident 結束沒 postmortem、Runbook 太久沒更新;2024+ 新 anti :沒 immutable backup 被勒索軟體同時加密、Stateful workload DR 只 restore Pod 忘了 Pod identity、DR drill 手動做但從不 automation、BCP 只有 checklist 沒有 alternative comms channel
🧰 對應檢查工具
# 主題 Slug Stage 大綱 32 DR 工具 32-dr-tooling🌱 K8s Backup : Velero / Kasten K10 / Trilio;DB Backup : pgBackRest / Barman / Percona Xtrabackup;Chaos : Chaos Mesh / Litmus / Gremlin / AWS FIS;Immutable Storage : S3 Object Lock / AWS Backup vault;Incident : PagerDuty / Opsgenie;Status Page : Atlassian Statuspage / Upptime(OSS)/ cState;DR Automation : Chaos Mesh scheduled experiments / AWS Route 53 ARC
📎 補充
# 主題 Slug Stage 大綱 S01 台灣企業 DR 實況 s01-taiwan-dr-reality🌱 雙機房 / 雲地混合;法規 / 保險要求;跟國際大廠的落差 S02 DR 的 Compliance 面向 s02-dr-compliance🌱 SOC 2 / ISO 27001 對 DR 的要求;跟 I06 連動
章節進度統計
知識主題 :32 + 2 補充 = 34 項(2026-04 新增 6 題:Data Recovery 分層 #12、Ransomware Recovery #13、Stateful Workload DR #19、DR Automation #23、DR workflow 閉環 #26、F09-E BCP #27)
🌿 growing:2(既有 + pointer)
🌱 seed:32
跨系列連結
→ infra/disaster-recovery/28-backup-disaster-recovery(原始篇)
→ ops-notes/(真實事件 + postmortem)
→ I04 Data Ops(DB backup 深度)
→ I05 Observability(incident 時的觀測)
→ I08 Cloud(Multi-region DR 成本)
→ backend/deployment/ B18(deployment 跟 DR 協調)
→ management/engineering-process/08-release-methodology/01(發布策略跟 DR)