Kiến thức cơ bản về CodeDeploy và appspec.yml

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

Dunieski Otano

Amazon Web Services Solutions Architect

CodeDeploy làm gì

luồng

  • Phát hành mã lên EC2, Lambda hoặc ECS
  • Kéo artifact build từ S3, GitHub hoặc Bitbucket
  • Chạy script triển khai qua các sự kiện vòng đời
  • Tự động quay lui nếu có lỗi
Tự động hóa triển khai trên AWS

Thành phần cốt lõi của CodeDeploy

luồng

  • Application: tên nhóm các lần triển khai
  • Deployment group: mục tiêu nhận bản phát hành
  • Deployment configuration: cách rollout diễn ra (theo lô instance hoặc chuyển lưu lượng)
  • Revision: gói artifact được triển khai
Tự động hóa triển khai trên AWS

Làm quen với appspec.yml

appspec

  • Tệp YAML ở gốc của revision
  • version: 0.0 và os: linux bắt buộc ở đầu
  • Chỉ định cho CodeDeploy file nào đặt ở đâu
  • Chỉ định cho CodeDeploy chạy gì, khi nào
Tự động hóa triển khai trên AWS

Sự kiện vòng đời trên EC2

  • Bạn viết: ApplicationStop, BeforeInstall, AfterInstall
  • Bạn viết: ApplicationStart, ValidateService
  • Hệ thống chạy: DownloadBundle, Install
  • Mỗi hook là script shell hoặc PowerShell trên instance

sơ đồ

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

Sự kiện vòng đời trên Lambda

  • Lambda chỉ có hai hook: BeforeAllowTraffic, AfterAllowTraffic
  • Hook là hàm Lambda, không phải script shell
  • CodeDeploy chuyển alias sang phiên bản mới
  • Không có instance để đăng nhập; không cần sao chép file

so sánh

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

Một appspec.yml thực tế cho EC2

  • version: 0.0 và os: linux ở đầu
  • files: sao chép nội dung app.zip đến /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: script vòng đời
  • ValidateService: smoke-test xác nhận thành công

zip

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...