Tích hợp IaC vào pipeline CI/CD

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

Dunieski Otano

Amazon Web Services Solutions Architect

Code trước, hạ tầng sau

ưu tiên-code

  • Code triển khai qua CodePipeline; hạ tầng cập nhật thủ công
  • Devs scale Lambda; ops đổi kích thước hàng đợi SQS
  • Lệch giữa code và hạ tầng gây ngừng dịch vụ
  • Nối CloudFormation vào cùng pipeline
Tự động hóa triển khai trên AWS

CloudFormation như một hành động trong pipeline

hành-động-pipeline

  • CodePipeline hỗ trợ một hành động triển khai CloudFormation
  • Pipeline truyền một artifact template vào hành động này
  • Chế độ: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Chạy cùng với các hành động source, build và triển khai app
Tự động hóa triển khai trên AWS

Một pipeline end-to-end điển hình

điển-hình

  • Source: Git push kích hoạt pipeline
  • Build: tạo artifact template + app
  • Triển khai hạ tầng: CloudFormation tạo hoặc cập nhật stack
  • Triển khai app: CodeDeploy phát hành phiên bản mới
Tự động hóa triển khai trên AWS

Tự động quay lui khi stack lỗi

  • Cập nhật lỗi sẽ tự động quay lui về trạng thái ổn trước đó
  • Giai đoạn pipeline thất bại, chặn các giai đoạn sau
  • Cảnh báo lỗi thiết lập từ Chương 1 tự động kích hoạt

tự-động

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

Nested stack cho template theo mô-đun

  • Nested stack được khai báo với kiểu AWS::CloudFormation::Stack
  • Chia một template 2.000 dòng thành module tái sử dụng
  • Stack cha truyền tham số và đọc output
  • Mỗi module triển khai độc lập bên trong stack cha

lồng-nhau

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

StackSet cho đa tài khoản, đa vùng

  • StackSet triển khai một template trên nhiều tài khoản và vùng
  • Hữu ích cho baseline bảo mật, guardrail, hạ tầng dùng chung
  • Thêm/bớt stack instance mà không phải viết lại template
  • Quản lý tập trung, triển khai cục bộ

stackset

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

Chọn cấu hình phù hợp

hình-dạng-phù-hợp

  • Single stack: app nhỏ, một môi trường
  • Nested stack: template lớn, thành phần mô-đun
  • StackSet: cùng template, nhiều tài khoản và vùng
  • Cả ba đều tương thích tốt với CodePipeline
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...