Kỹ thuật & vận hành
Phát hành an toàn hơn: chuẩn bị rollback trước khi triển khai
Xác định rủi ro, diễn tập khôi phục và kiểm chứng luồng nghiệp vụ trước khi kết luận một đợt phát hành đã hoàn tất.
Xác định bản phát hành và đường khôi phục
Triển khai có thể báo thành công trong khi quy trình nghiệp vụ gặp lỗi. Trước khi phát hành, xác định luồng người dùng bị ảnh hưởng và tín hiệu buộc phải dừng mở rộng. Giao một người quyền quyết định dừng.
Ghi phiên bản ứng dụng, cấu hình và thành phần phụ thuộc trong hồ sơ phát hành. Giữ sẵn gói triển khai của phiên bản trước. Hướng dẫn kỹ thuật phát hành của Google SRE nhấn mạnh tính tái lập, phát hành theo từng bước và khả năng quay lại khi tính năng có lỗi. Hãy coi khôi phục là một phần của bàn giao, không phải việc chỉ tính khi có sự cố.
- Chỉ định người phụ trách phát hành và đầu mối sự cố.
- Ghi phiên bản hoạt động tốt và hướng dẫn khôi phục.
- Thống nhất điều kiện dừng trước khi bắt đầu triển khai.
Kiểm tra rollback có thực sự khả thi không
Quay lại phiên bản ứng dụng và khôi phục dữ liệu là hai việc khác nhau. Ứng dụng cũ có thể không hiểu cấu trúc cơ sở dữ liệu mới. Hoàn tác mã không đảo ngược thanh toán, tin nhắn hoặc bản ghi đã thay đổi.
Khi đổi cấu trúc dữ liệu, cân nhắc thay đổi bổ sung tương thích với cả hai phiên bản. Hoãn thay đổi phá hủy đến khi không còn cần phiên bản cũ. Kiểm thử khả năng tương thích với ứng dụng trước. Với thao tác không thể đảo ngược, quy định cách đối soát hoặc sửa tiếp. Kiểm chứng việc phục hồi bản sao lưu riêng và xác định dữ liệu ghi nào có thể mất.
- Ghi rõ khả năng tương thích của cấu trúc dữ liệu và cấu hình.
- Diễn tập khôi phục ngoài môi trường vận hành chính thức.
- Giao người đối soát dữ liệu và các tác động ra hệ thống ngoài.
Phát hành có kiểm soát và kiểm tra đúng việc
Tạo gói triển khai một lần rồi chuyển chính gói đã kiểm thử qua các bước, thay vì tạo lại mỗi nơi. Thử quy trình triển khai trong môi trường kiểm thử có tính đại diện. Kiểm tra quyền và cấu hình mà không để bí mật xuất hiện trong nhật ký.
Nếu kiến trúc cho phép, phát hành cho nhóm giới hạn trước khi mở rộng. Theo dõi lỗi, độ trễ và tín hiệu nghiệp vụ như lượt đặt lịch hoàn tất. Chọn thời gian quan sát bao phủ lưu lượng và tác vụ nền liên quan. Cờ bật tắt có thể vô hiệu hóa tính năng, nhưng không đảo ngược thay đổi cơ sở dữ liệu hoặc giao dịch bên ngoài.
- Chạy kiểm tra nhanh cho các luồng người dùng trọng yếu.
- Dừng mở rộng khi tín hiệu vượt giới hạn đã thống nhất.
- Dùng đường khôi phục được duyệt, không ứng biến bằng lệnh chưa kiểm chứng.
Kiểm chứng khôi phục rồi mới kết thúc phát hành
Nếu cần rollback, ghi lại quyết định và thực hiện quy trình đã diễn tập. Sau đó kiểm tra phiên bản đang chạy và thử lại các luồng nghiệp vụ. Xem hàng đợi, tác vụ theo lịch và giao dịch dở dang. Lệnh rollback thành công chưa chứng minh người dùng đã làm việc bình thường.
Chỉ kết thúc phát hành khi các kiểm tra đã thống nhất đều đạt. Ghi vấn đề còn tồn tại và thông báo thay đổi cho người dùng bị ảnh hưởng. Xem lại lỗi mà không quy chụp cá nhân, rồi cập nhật kiểm thử và hướng dẫn khôi phục. Không danh sách nào bảo đảm tuyệt đối, nhưng bằng chứng rõ giúp quyết định tiếp theo tốt hơn.
- Xác nhận hành vi dịch vụ, không chỉ trạng thái tiến trình.
- Theo dõi công việc dở dang cần sửa.
- Giữ hồ sơ phát hành với bằng chứng và người phụ trách việc tiếp theo.