Triển khai in-place và blue/green

Tự động hóa triển khai trên AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Sự cố 2 giờ sáng

2.00

  • Triển khai đồng loạt gặp sự cố
  • Mọi máy chủ chạy phiên bản lỗi
  • Khách hàng thấy lỗi trong 1 giờ
  • Rollback cần một lần triển khai đầy đủ nữa
Tự động hóa triển khai trên AWS

Vì sao chiến lược triển khai quan trọng

2.1

  • Một bản phát hành lỗi có thể làm dịch vụ ngừng hoạt động
  • Đồng loạt = nhanh nhất, rủi ro nhất
  • Triển khai dần = chậm hơn, an toàn hơn
  • Chiến lược quyết định phạm vi ảnh hưởng khi thất bại
Tự động hóa triển khai trên AWS

Triển khai in-place

in-place

  • Triển khai lên chính các instance đang phục vụ lưu lượng
  • Theo lô: chia đôi rồi chia đôi; hoặc từng máy một
  • Kiểm tra sức khỏe từng lô trước khi chuyển tiếp
  • Rẻ; không cần hạ tầng bổ sung
Tự động hóa triển khai trên AWS

Triển khai blue/green

  • Blue = cụm production hiện tại
  • Green = cụm mới hoàn toàn với phiên bản mới
  • Load balancer chuyển lưu lượng từ blue sang green
  • Cụm cũ vẫn sẵn sàng để rollback nhanh

blue-green

Tự động hóa triển khai trên AWS

Lambda và ECS hỗ trợ sẵn blue/green

  • Lambda: chuyển lưu lượng qua con trỏ alias version
  • ECS: chuyển lưu lượng qua replacement task set
  • Không cần nhân đôi cụm kiểu EC2
  • Bạn vẫn chọn cấu hình triển khai

ecs

Tự động hóa triển khai trên AWS

Chọn in-place hay blue/green

  • Ngân sách hạn chế, bản vá ít rủi ro → in-place
  • Cần zero downtime hoặc rollback tức thì → blue/green
  • Máy chủ legacy đơn lẻ → chỉ còn in-place
  • Lambda hoặc ECS → blue/green có sẵn

decide

Tự động hóa triển khai trên AWS

Rollback trong CodeDeploy

rollback

  • Rollback = triển khai lại bản sửa đổi thành công trước đó
  • Kích hoạt tự động khi triển khai thất bại
  • Kích hoạt tự động khi có cảnh báo CloudWatch
  • Blue/green rollback: chuyển load balancer về lại
Tự động hóa triển khai trên AWS

Cùng luyện tập nào!

Tự động hóa triển khai trên AWS

Preparing Video For Download...