Họ đang đo gì
Bạn có nghĩ tới việc QUAY LUI không, và có nhận ra database mới là ràng buộc thật.
Trả lời ngắn~30 giây
Rolling thay dần từng phần, rẻ nhất, nhưng trong lúc chạy có cả hai phiên bản cùng phục vụ và quay lui cũng chậm như triển khai. Blue-green dựng nguyên một môi trường mới rồi chuyển traffic một nhát — quay lui gần như tức thì, đổi lại tốn gấp đôi hạ tầng trong lúc chuyển. Canary đẩy cho 1–5% người dùng trước, quan sát chỉ số, rồi mới mở rộng — an toàn nhất, và cần có hệ đo đủ tốt để quyết định.
6 pod đang chạy v1. Mục tiêu: lên v2 mà không ai nhận lỗi 502.
Giải thích sâu
Ràng buộc quyết định gần như luôn là database, không phải cách triển khai. Nếu migration của bạn không tương thích ngược thì blue-green mất hết ý nghĩa: bạn không quay lui được vì môi trường xanh cũ không đọc nổi schema mới. Đó là lý do các đội deploy nhiều lần một ngày đều tách migration khỏi deploy và áp dụng expand–contract — không có kỷ luật đó thì mọi chiến lược triển khai đều chỉ đẹp trên slide.
Canary chỉ có giá trị nếu bạn biết dừng dựa trên cái gì. Nhìn tỷ lệ lỗi và độ trễ là mức tối thiểu, nhưng chúng bắt được lỗi kỹ thuật chứ không bắt được lỗi nghiệp vụ — một thay đổi làm giảm tỷ lệ chuyển đổi 20% có thể có tỷ lệ lỗi hoàn hảo. Vì vậy canary tốt gắn với một hoặc hai chỉ số nghiệp vụ, và có ngưỡng tự động huỷ chứ không chờ người nhìn dashboard.
Một kỹ thuật thường bị gộp nhầm vào đây: feature flag. Nó tách việc TRIỂN KHAI khỏi việc PHÁT HÀNH — code lên production ở trạng thái tắt, rồi bật cho từng nhóm người dùng. Quay lui là đổi một cờ trong vài giây, không cần build lại. Với phần lớn đội, kết hợp rolling deploy đơn giản cộng feature flag cho lợi ích của canary mà không cần hạ tầng định tuyến phức tạp.
Câu hỏi tiếp theo họ sẽ hỏi
?Quay lui trong bao lâu là chấp nhận được?
Ngắn hơn thời gian bạn chịu đựng được sự cố. Nếu SLO cho phép 43 phút/tháng mà quay lui mất 30 phút thì một lần deploy hỏng đã tiêu gần hết ngân sách. Đo thời gian quay lui như một chỉ số riêng, đừng giả định nó nhanh.
Trả lời thế này là mất điểm
- Không có kế hoạch quay lui cho migration. Đó là chỗ mọi chiến lược triển khai gãy.
- Canary mà không định nghĩa điều kiện huỷ. Lúc đó nó chỉ là rolling deploy chậm hơn.