CYBERSOFT
Đăng nhập

Kiểm thử phục hồi & chuyển đổi dự phòng (Recovery & Failover Testing) cho hệ ngân hàng lõi

Chuyên công nghệNgân hàngNâng caoChuẩn SEO
🗓 1 tháng trước19 phút đọc·👁 409 lượt xem👤 162 người đọc

Bài nâng cao: kiểm thử phục hồi & chuyển đổi dự phòng (Recovery & Failover Testing) áp dụng cho hệ thống core banking + cổng thanh toán. Sơ đồ trạng thái failover Primary→Standby, defect taxonomy riêng cho phục hồi, ca kiểm thử mất mạng giữa giao dịch, ngắt DB, toàn vẹn dữ liệu & idempotency, đo RTO/RPO thực tế. 2 tình huống thật (tiền treo, giao dịch nhân đôi), 9 mockup giao diện/sơ đồ/bảng lỗi, FAQ và trắc nghiệm 5 câu. Chuẩn SEO, dẫn về khóa Tester CyberSoft.

1. Tóm tắt nhanh & màn hình giao dịch bạn sẽ test

⭐ TL;DR — Kiểm thử phục hồi & chuyển đổi dự phòng (Recovery & Failover Testing) kiểm tra khả năng hệ ngân hàng lõi khôi phục đúng và giữ toàn vẹn dữ liệu sau sự cố: mất mạng giữa giao dịch, ngắt DB, chuyển sang máy dự phòng (Standby), rồi khôi phục lại Primary. Bài này áp dụng cho core banking CoreBank + cổng thanh toán: đo RTO/RPO thực tế, thiết kế ca kiểm thử mất mạng/ngắt DB/toàn vẹn dữ liệu, đảm bảo idempotency giao dịch. Có sơ đồ trạng thái failover, nhiều bảng ca kiểm thử, 2 tình huống thật và trắc nghiệm cuối bài.

Nếu bạn đã quen thiết kế ca kiểm thử cho luồng nghiệp vụ đúng, chương này đưa bạn sang một lớp rủi ro khác: điều gì xảy ra khi HẠ TẦNG — không phải nghiệp vụ — gặp sự cố đúng giữa lúc tiền đang di chuyển. Với một sàn thương mại điện tử, một lần failover lỗi có thể chỉ gây gián đoạn vài phút; với hệ ngân hàng lõi, cùng một lỗi có thể khiến tiền của khách 'biến mất' tạm thời hoặc bị trừ hai lần — hai kịch bản có thể kéo theo khiếu nại, kiểm toán và mất niềm tin khách hàng. Chúng ta sẽ học qua hệ thống chuyển khoản của CoreBank: từ khái niệm RTO/RPO, sơ đồ trạng thái failover, tới các bộ ca kiểm thử cụ thể cho mất mạng, ngắt DB và toàn vẹn dữ liệu.

🔒 corebank.internal/giao-dich/chuyen-khoan/GD-88451 CoreBank · Sự cố giữa giao dịch CoreBank · Chuyển khoản — sự cố giữa giao dịch Tài khoản nguồn 1900xxxx4471 · Số dư trước GD: 22.150.000đTài khoản đích 1900xxxx9034 · Ngân hàng XYZSố tiền chuyển 8.000.000đTrạng thái mạng tới Core Mất kết nối lúc 14:32:07✗ không hợp lệGhi Nợ tài khoản nguồn ĐÃ GHI lúc 14:32:06✗ không hợp lệGhi Có tài khoản đích CHƯA GHI — không rõ trạng thái✗ không hợp lệĐang chờ Standby tiếp nhận… RỦI RO: mất mạng đúng khe hở giữa 2 lệnh ghi Tiền đã bị trừ nhưng chưa xác nhận đã ghi Có Cần đối soát tự động khi Standby lên thay
Màn hình chuyển khoản CoreBank bị mất mạng đúng giữa lúc ghi Nợ tài khoản nguồn và ghi Có tài khoản đích
📖 Recovery & Failover Testing: kiểm thử khả năng hệ thống khôi phục đúng và giữ toàn vẹn dữ liệu sau sự cố hạ tầng, bao gồm việc chuyển đổi sang thành phần dự phòng khi thành phần chính gặp lỗi.

2. RTO, RPO & vì sao ngân hàng lõi cần kiểm thử phục hồi

Hai chỉ số nền tảng của mọi kế hoạch phục hồi thảm hoạ (Disaster Recovery) là RTO và RPO. RTO (Recovery Time Objective) là THỜI GIAN tối đa hệ thống được phép ngừng hoạt động, tính từ lúc sự cố xảy ra tới lúc phục hồi xong và sẵn sàng phục vụ trở lại. RPO (Recovery Point Objective) là lượng DỮ LIỆU tối đa được phép mất, tính theo khoảng thời gian trước sự cố — RPO = 5 giây nghĩa là dữ liệu ghi trong 5 giây cuối trước sự cố có thể bị mất, còn dữ liệu cũ hơn phải được bảo toàn. Với giao dịch tài chính, RPO thường phải gần bằng 0: mất dù một giao dịch cũng có thể là tiền thật của khách hàng biến mất.

Vì sao core banking đặc biệt cần kiểm thử phục hồi có hệ thống, không chỉ dựa vào tài liệu kiến trúc? Vì RTO/RPO trong tài liệu là con số MỤC TIÊU do đội kiến trúc/kiến trúc hạ tầng thiết kế, còn RTO/RPO THỰC TẾ chỉ lộ ra khi bạn thật sự gây sự cố và đo lại. Nhiều hệ thống có replication đồng bộ trên giấy nhưng khi đo thật lại có độ trễ vài giây; nhiều runbook failover chạy mượt trên môi trường test nhưng vượt SLA nhiều lần khi chạy ở production do dữ liệu lớn hơn, kết nối phức tạp hơn. Vai trò của tester ở đây không phải thiết kế hạ tầng, mà là ĐO và XÁC MINH những con số mà business đã cam kết với khách hàng và cơ quan quản lý.

📖 RTO (Recovery Time Objective): thời gian tối đa hệ thống được phép ngừng hoạt động trước khi phục hồi xong và sẵn sàng phục vụ trở lại.
📖 RPO (Recovery Point Objective): lượng dữ liệu tối đa được phép mất, tính theo khoảng thời gian trước thời điểm sự cố xảy ra.

3. Kiến trúc failover Primary→Standby & checklist lỗi kinh nghiệm

Trước khi thiết kế ca kiểm thử, tester cần hiểu rõ vòng đời một lần failover đi qua những trạng thái nào — không chỉ 'Primary hỏng, Standby lên thay' đơn giản. Sơ đồ dưới mô tả 6 trạng thái: Primary ACTIVE (bình thường) → Primary DOWN (sự cố xảy ra) → Standby PROMOTED (chuyển đổi, đo RTO tại đây) → Đối soát dữ liệu (kiểm tra giao dịch dở dang, đo khoảng dữ liệu mất so với RPO) → Primary phục hồi & resync (đồng bộ ngược dữ liệu ghi trong lúc Standby hoạt động) → Primary ACTIVE trở lại (failback hoàn tất). Mỗi mũi tên trong sơ đồ là một điểm cần có ca kiểm thử riêng, đặc biệt là cạnh nét đứt 'Dữ liệu ngoài RPO' — nơi dữ liệu có thể bị mất nếu sự cố xảy ra đúng lúc.

Vòng đời failover: Primary ACTIVE → Standby PROMOTED → Failback Mất kết nối/crash Failover (đo RTO) Xử lý GD dở dang Dữ liệu ngoài RPO Sửa Primary, đồng bộ ngược Failback hoàn tấtPrimary ACTIVEPrimary DOWNStandby PROMOTEDĐối soát dữ liệuPrimary phục hồi & resyncPrimary ACTIVE (failback)
Sơ đồ trạng thái vòng đời failover: Primary ACTIVE → Primary DOWN → Standby PROMOTED → đối soát → resync → failback

Từ sơ đồ này, ta xây một Defect Taxonomy — checklist lỗi kinh nghiệm dành riêng cho phục hồi/failover, tổng hợp từ các diễn tập DR (Disaster Recovery drill) và sự cố production đã ghi nhận. Khác với checklist chức năng thông thường, mỗi dòng trong bảng dưới trả lời câu hỏi 'lỗi này lộ ra ở TRẠNG THÁI nào trong vòng đời failover' — giúp tester biết chính xác nên gây sự cố vào lúc nào để tái hiện đúng loại lỗi cần tìm.

Defect Taxonomy — checklist lỗi kinh nghiệm phục hồi/failover cho core banking Nhóm lỗi phục hồi (kinh nghiệm)Biểu hiện thường gặpVì sao khó bắt bằng kiểm thử thông thườngGiao dịch treo giữa 2 bước ghi (Nợ/Có)Tiền bị trừ nhưng chưa ghi Có, trạng thái cuối không rõ ràngCa kiểm thử luồng đúng không mô phỏng lỗi hạ tầng xảy ra giữa 2 lệnh ghiMất dữ liệu trong cửa sổ RPOGiao dịch ngay trước sự cố biến mất, không có ở Standby sau khi lên thayTest chức năng không đo khoảng cách đồng bộ dữ liệu thực tế giữa 2 nodeFailover chậm vượt RTO cam kếtHệ thống 'đứng hình' lâu hơn SLA cho phép khi Primary gặp sự cốĐo RTO cần môi trường mô phỏng sự cố thật, khó tái hiện ở test thườngGiao dịch nhân đôi do thiếu idempotencyClient retry sau failover khiến giao dịch được ghi nhận 2 lầnCa kiểm thử tiêu chuẩn không retry request sau khi đổi node xử lýFailback không đồng bộ ngượcDữ liệu ghi ở Standby trong lúc failover bị mất khi quay lại PrimaryKiểm thử thường dừng ở bước failover, không phủ hết chu trình failbackĐối soát tự động báo sai/bỏ sótCông cụ đối soát không phát hiện đúng giao dịch treo hoặc nhân đôiLogic đối soát ít được kiểm thử độc lập như một tính năng nghiệp vụ chínhCập nhật sau mỗi diễn tập DR (Disaster Recovery drill) hoặc sự cố production thật.
Defect Taxonomy — checklist lỗi kinh nghiệm phục hồi/failover cho core banking, theo trạng thái vòng đời

4. Quy trình thiết kế ca kiểm thử phục hồi có hệ thống

Kiểm thử phục hồi chuyên nghiệp không phải 'rút dây mạng rồi xem điều gì xảy ra' một cách ngẫu hứng. Nó cần một quy trình lặp lại được, có thể đo lường, và bàn giao lại cho đồng đội — đặc biệt quan trọng vì kiểm thử phục hồi thường đụng tới môi trường gần giống production, cần phối hợp chặt với đội vận hành (Ops/SRE).

▶ Bước 1: Xác định phạm vi & môi trường diễn tập: dùng môi trường staging/DR riêng có cấu hình Primary-Standby giống production, KHÔNG diễn tập trực tiếp trên production khi chưa có quy trình an toàn.

🔒

Nội dung bị khoá

Bạn đang xem bản xem trước. Đăng nhập để mở khoá toàn bộ bài viết và tất cả tài liệu Tester/QA.

Đã xem 24% nội dung
  • Đọc trọn vẹn mọi bài viết
  • Lưu bài & ghi chú cá nhân
  • Theo dõi tiến độ đã đọc
  • Luyện phỏng vấn, ISTQB, Mock
Đăng nhập để đọc tiếp

Chưa có mã? Lấy mã qua Fanpage / Zalo CyberSoft.

0

💬 Bình luận (0)

Bạn có thể đọc mọi bình luận. Đăng nhập để bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!