Tóm tắt: Một bản sao lưu chưa phải năng lực phục hồi cho tới khi đội ngũ đã khôi phục thử, kiểm tra dữ liệu và đo thời gian.
Thuật ngữ chính: RPO: lượng dữ liệu tối đa có thể mất; RTO: thời gian tối đa để khôi phục; failover: chuyển dịch vụ sang hệ thống dự phòng.
Bài toán
Bản sao dữ liệu cũng sao chép thao tác xóa nhầm. Bản sao lưu có thể không dùng được nếu thiếu khóa mã hóa hoặc bỏ sót hàng đợi và kho tệp. Vì vậy, phục hồi phải được kiểm thử như một quy trình hoàn chỉnh.
Vì sao cách làm đơn giản chưa đủ
Mỗi capability cần mục tiêu khác nhau. Mất năm phút analytics có thể chấp nhận. Tuy nhiên, mất một payment đã xác nhận thì không.
Regional failover là thay đổi consistency. Trước khi chuyển tiếp writer khác, writer cũ phải bị fence. Nếu không split brain sẽ tạo conflict rất khó đối soát.
Luồng xử lý
backup và sao chép dữ liệu→Detect
tuyên bố incident→Recover
restore theo thứ tự→Verify
kiểm tra dữ liệu và nghiệp vụ
Quyết định kiến trúc
Phân tầng dữ liệu theo tác động
Chọn sao chép dữ liệu, log shipping, snapshot và retention từ RPO thật. Thay vì dùng mẫu đắt nhất cho mọi nơi.
Recovery thành phần phụ thuộc theo thứ tự
Identity, secret, cơ sở dữ liệu, broker, object kho lưu trữ và application tạo thành graph. Tự động hóa và kiểm thử đúng thứ tự đó.
Kiểm chứng business invariant
Row count là chưa đủ. Phải kiểm tra balance, khách hàng isolation, sự kiện continuity và object reference sau restore.
Phân tích chuyên sâu
RPO gồm cả hệ bất đồng bộ
Chỉ restore cơ sở dữ liệu có thể làm broker offset, search chỉ mục và object metadata lệch nhau. Cần xác định phần nào rebuild, phần nào authoritative.
Recovery cần năng lực tổ chức
Incident role, communication template, vendor contact và decision authority là một phần của RTO. Công nghệ không bù được một phê duyệt không ai có quyền đưa ra.
Các bước triển khai
- Định nghĩa RPO và RTO theo từng business capability, không dùng một số cho toàn nền tảng.
- Lập bản đồ mọi stateful thành phần phụ thuộc, key và configuration cần để restore.
- Tự động restore vào môi trường cô lập và tổ chức recovery exercise định kỳ.
Ví dụ kỹ thuật: Cổng kiểm chứng recovery
restore(backupId, isolatedEnvironment)
assert pointInTime >= incidentTime - RPO
assert invariant('tenant_isolation')
assert invariant('ledger_balanced')
assert syntheticJourney('sign-in-to-publish')
approve traffic cutoverGiữ môi trường restore cô lập tới khi kiểm tra integrity và security đạt. Không đưa bản sao chưa chắc chắn ra khách hàng.
Các tình huống lỗi cần tính trước
- Backup thành công nhưng restore lỗi vì format hoặc key đã thay đổi.
- DNS cutover xong nhưng client giữ kết nối dài tới region cũ.
- Failback ghi đè ghi đã được nhận trong disaster mode.
Tín hiệu cần giám sát
| Tín hiệu | Ý nghĩa |
|---|---|
| Recovery point gần nhất đã verify | Đo khả năng bảo vệ dữ liệu thật, không chỉ backup job success. |
| Thời gian từng restore stage | Cho biết runbook có đạt RTO hay không. |
| sao chép dữ liệu lag và ghi fencing | Thể hiện rủi ro data loss và split brain. |
Cách kiểm chứng thiết kế
- Restore ngẫu nhiên một backup mà không dùng môi trường gốc.
- Làm mất một region trong khi synthetic ghi tiếp tục và đo dữ liệu được chấp nhận.
- Thực hiện failback và đối soát mọi ghi trong disaster mode.
Kế hoạch triển khai an toàn
Tự động restore một data store quan trọng trước. Sau đó, thêm thành phần phụ thuộc tới khi chạy được trọn business journey. Diễn tập hàng quý với leader luân phiên, ghi RPO/RTO thực tế và biến mọi bất ngờ thủ công thành code hoặc checklist đã test.
Checklist trước khi đưa vào vận hành
- Backup không thể thay đổi, được mã hóa và nằm ngoài sự cố ranh giới chính.
- Credential restore và encryption key sống sót qua cùng thảm họa.
- Failover có cơ chế fenced single writer và failback được tài liệu hóa.
Kết luận
Resilience được chứng minh bằng số liệu recovery có bấm giờ và đối soát, không phải bằng việc có replica.
