Khách hàng là dịch vụ logistics xử lý hàng chục nghìn đơn mỗi ngày, có cao điểm vào buổi tối và mùa khuyến mãi, cùng SLA nghiêm ngặt với các chuỗi cửa hàng đối tác. Hạ tầng phát triển tự phát: các VPS rời rạc, cấu hình «nằm trên máy chủ», triển khai thủ công theo hướng dẫn trong wiki. Mỗi lần phát hành đều phải triển khai ban đêm và gây gián đoạn; mỗi đợt cao điểm lại có nguy cơ mất đơn. Sự cố trong đợt khuyến mãi trước năm mới khiến nền tảng ngừng hoạt động bốn giờ và dịch vụ phải bồi thường cho đối tác — đó là lý do khách hàng tìm đến chúng tôi.
Chuyển nền tảng sang hạ tầng được quản lý mà không làm gián đoạn hoạt động kinh doanh:
hạ tầng dưới dạng mã, phân phối tự động, container và điều phối, khả năng quan sát, cùng quy trình khôi phục sự cố có thể dự đoán. Nhà sáng lập xác định tiêu chí thành công: «triển khai trong giờ làm việc, không downtime và không cần người có quyền SSH».
Chúng tôi đi theo trình tự đã được kiểm chứng: trước tiên là container và môi trường có thể tái tạo, tiếp theo là tự động hóa phân phối, sau cùng mới triển khai điều phối kèm tự động mở rộng.
- Đánh giá hạ tầng: lập sơ đồ dịch vụ và quan hệ phụ thuộc, đo tải trong giờ cao điểm và ghi lại các thao tác thủ công thường gây sự cố nhất.
- Đóng gói dịch vụ thành container: chuẩn hóa quy trình build, chuyển cấu hình khỏi mã nguồn sang biến môi trường và tạo các môi trường dev/stage/prod giống hệt nhau.
- Mô tả hạ tầng bằng Terraform: triển khai môi trường từ repository và cấm thay đổi thủ công qua bảng điều khiển của nhà cung cấp đám mây.
- Xây dựng pipeline GitLab CI: tự động chạy kiểm thử và build image; triển khai lên stage ngay lập tức, lên prod bằng nút bấm sau khi review; quay lui chỉ bằng một thao tác.
- Chuyển nền tảng sang Kubernetes có tự động mở rộng: vào các đợt cao điểm buổi tối và khuyến mãi, nền tảng tự bổ sung instance thay vì cần xử lý thủ công khẩn cấp.
- Triển khai giám sát và cảnh báo theo các chỉ số tín hiệu chính — độ trễ, lỗi, lưu lượng và mức sử dụng tài nguyên — kèm lịch trực và quy trình chuyển cấp sự cố.
- Thiết lập sao lưu và khôi phục sau thảm họa: quy trình khôi phục được quy định rõ và diễn tập sự cố trên stage, đo MTTR thực tế.
Giá trị lớn nhất của dự án không nằm ở công nghệ mà ở việc thay đổi trách nhiệm: hạ tầng không còn phụ thuộc vào «người có quyền SSH». Mọi lần triển khai đều tái tạo được, mọi môi trường đều có thể khôi phục từ mã nguồn, và dashboard phát hiện sự cố trước khi khách hàng đầu tiên kịp nhắn tin. Nhờ vậy, downtime không còn là thảm họa mà trở thành sự cố thường lệ có playbook rõ ràng và thời gian khôi phục đo được.
Hiệu quả kinh tế gồm ba phần: tiết kiệm trực tiếp 32% chi phí hạ tầng nhờ tự động mở rộng và không còn phải duy trì công suất cao điểm luôn bật; tiết kiệm giờ làm của đội ngũ trước đây dành cho các đợt triển khai ban đêm; và quan trọng nhất là giữ được doanh thu trong các đợt cao điểm giờ đã diễn ra không sự cố. Một khách hàng lớn là chuỗi cửa hàng đã gia hạn hợp đồng ngay sau đợt khuyến mãi đầu tiên trên hạ tầng mới.
| Chỉ số | Kết quả |
|---|---|
| Triển khai bản phát hành | 3–4 giờ thủ công → 15 phút tự động |
| Tần suất phát hành | 2–3 lần mỗi tháng → Gần như hằng ngày |
| Độ sẵn sàng của nền tảng | 97,8% → 99,95% |
| Tải cao điểm | Nguy cơ gián đoạn → Tự động mở rộng, không cần người can thiệp |
Các chỉ số được chuyển từ tài liệu gốc của case study. Khoảng thời gian được ghi khi nguồn có nêu.
- triển khai bản phát hành (trước đây mất 3–4 giờ thủ công)
- 15 phút
- độ sẵn sàng của nền tảng (trước đây là 97,8%)
- 99,95%
- khôi phục sau sự cố (trước đây mất 2–4 giờ)
- 20–30 phút
- chi phí hạ tầng
- −32%
Biểu đồ dùng cận trên của các khoảng (4 giờ, 30 phút). Thời gian gián đoạn = 100% − độ sẵn sàng.
- 01Commit
- 02Kiểm thử
- 03Build image
- 04Stagengay lập tức
- 05Prodbằng nút bấm sau khi review
Các hướng phát triển hạ tầng trong chu kỳ tiếp theo:
- Thực hành FinOps: cảnh báo biến động chi phí bất thường và minh bạch chi phí theo nhóm.
- Cách tiếp cận GitOps: trạng thái prod được mô tả trong repository, mọi thay đổi chỉ thực hiện qua pull request.
- Đa vùng: nhân bản các dịch vụ quan trọng để chống chịu sự cố từ nhà cung cấp.
Trước đây, mỗi lần phát hành là một đêm thức trắng, cà phê và cầu nguyện. Giờ chỉ cần bấm nút và chờ mười lăm phút. Cả công ty đã cùng ăn mừng đợt khuyến mãi đầu tiên không có sự cố.
— Giám đốc kỹ thuật của dịch vụ logistics