RTO / RPO · Cross-Zone · Drill-tested

🚨 Disaster Recovery — Site Recovery equivalent

DR Plans với ordered runbook steps, simulation drills định kỳ, RTO/RPO evidence, cross-zone backup. Tương đương Azure Site Recovery / AWS Elastic Disaster Recovery.

Năng lực chính

DR Plans

Định nghĩa plan với scope (databases, VMs, K8s namespaces), RTO target, RPO target.

Runbook Steps

Thứ tự các bước (stop traffic → snapshot → promote replica → switch DNS → verify).

Simulation Drill

Chạy diễn tập trong môi trường isolated; sinh evidence RTO/RPO thực tế.

Cross-Zone Backup

Policy destination_region, destination_zone, replication_mode (sync/async).

Manual Failover

POST /api/v1/databases/:id/failover — promote replica trong target zone.

Auto-healing

Health probe trigger failover tự động qua autoscale-service + monitor-service.

Các API DR

# Tạo DR plan
POST /api/v1/dr/plans
{ "name":"prod-failover-hcm-to-hn", "scope":{...},
  "rto_seconds": 300, "rpo_seconds": 60 }

# Thêm runbook step
POST /api/v1/dr/plans/:id/steps
{ "order": 1, "type":"snapshot", "target":"db:prod-pg", "timeout_s": 120 }

# Diễn tập
POST /api/v1/dr/plans/:id/drills
→ drill_id (status: running → succeeded/failed, evidence)

# Failover thật
POST /api/v1/dr/plans/:id/execute

Backup cross-zone

# Backup policy với replication
PUT /api/v1/backups/policies/:id
{ "schedule":"0 2 * * *", "retention_days": 30,
  "destination_region":"hn", "destination_zone":"hn-1",
  "replication_mode":"async" }

Định kỳ kiểm thử

Mỗi quarter chạy drill tự động qua scheduler:

POST /api/v1/scheduler/jobs
{ "name":"dr-drill-quarterly", "cron":"0 3 1 */3 *",
  "action":"dr.execute_drill", "params":{ "plan_id":"..." } }