HN 09:41 Liên hệ
Case 01

VinaPay: từ 180 nghìn
lên 1,2 triệu giao dịch mỗi ngày.

Mười bốn tháng tái kiến trúc một ví điện tử đang phục vụ 4 triệu người dùng, không một ngày dừng dịch vụ.

Fintech · 2024–2025Đội chuyên trách 9 kỹ sư, Hà Nội. Hợp đồng theo tháng, gia hạn năm thứ hai.

Bài toán

Năm 2023, VinaPay có 4 triệu người dùng và một hệ thống lõi viết bằng PHP từ năm 2017. Toàn bộ nghiệp vụ nạp, rút, chuyển, thanh toán nằm trong một ứng dụng duy nhất nối với một cơ sở dữ liệu MySQL. Trần thực tế là 180.000 giao dịch/ngày; mỗi chiến dịch khuyến mãi lớn đều kết thúc bằng một sự cố và một buổi họp giải trình với ngân hàng đối tác.

Đội kỹ thuật nội bộ 6 người đủ để vận hành nhưng không đủ để vừa vận hành vừa xây lại. Ban điều hành đặt ba yêu cầu: không dừng dịch vụ, không mất dữ liệu sổ cái, và có hệ thống mới trước mùa mua sắm cuối năm 2025.

180kgiao dịch/ngày là trần của hệ thống cũ
2,4sđộ trễ p95 khi có khuyến mãi
7sự cố nghiêm trọng trong 12 tháng trước dự án

Giải pháp

Chúng tôi không đề xuất viết lại từ đầu rồi chuyển một lần. Thay vào đó, sprint 1–4 dựng sổ cái mới (double-entry, Go + PostgreSQL) chạy song song và đối soát từng giao dịch với sổ cũ. Khi 30 ngày liên tiếp không lệch một đồng, sổ mới trở thành nguồn sự thật.

Từ sprint 5, hệ thống cũ được tách dần thành 7 dịch vụ: tài khoản, sổ cái, nạp/rút qua ngân hàng, thanh toán QR, khuyến mãi, thông báo, đối soát. Mỗi dịch vụ giao tiếp qua Kafka, có giới hạn tốc độ và cầu dao riêng để một dịch vụ lỗi không kéo cả ví. Người dùng được chuyển sang lõi mới theo từng nhóm 5%, đo lỗi 48 giờ rồi mới chuyển nhóm tiếp.

Song song, hai kỹ sư React Native viết lại ứng dụng di động, giữ nguyên luồng người dùng quen thuộc nhưng gọi API mới. Hạ tầng chuyển lên AWS EKS bằng Terraform; mọi thay đổi hạ tầng đều qua pull request như mã nguồn.

Fig. 1Đội backend, sprint 12
Fig. 2Review tại VinaPay

Kết quả

Tháng 5/2025, lõi cũ được tắt. Ngày cao điểm 11/11/2025, hệ thống xử lý 1,2 triệu giao dịch với độ trễ p95 180 ms, không có cảnh báo nào ở mức nghiêm trọng. Chi phí hạ tầng trên mỗi giao dịch giảm 44% dù tổng chi phí cloud tăng do khối lượng.

1,2trgiao dịch/ngày ở đỉnh, gấp 6,7 lần trần cũ
180msđộ trễ p95, giảm 13 lần
0sự cố nghiêm trọng trong 9 tháng vận hành

Đội nội bộ VinaPay tiếp nhận 4 trong 7 dịch vụ; CODELAB duy trì 4 kỹ sư theo hợp đồng năm thứ hai cho sổ cái và hạ tầng.

Bài học

Đối soát song song 30 ngày là khoản đầu tư tốn kém nhất và cũng là lý do dự án không có một ngày dừng dịch vụ. Chuyển người dùng theo nhóm 5% khiến dự án dài thêm 6 tuần, nhưng cho phép phát hiện 3 lỗi nghiệp vụ mà kiểm thử tự động không bắt được.

Tên khách hàng và số liệu trong mẫu là hư cấu để minh họa bố cục.

Case 02 →

Điều phối xe Nam Việt: –31% km rỗng

Xem tất cả case study