Dasar CodeDeploy dan appspec.yml

Mengotomatisasi Deployment di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Apa yang dilakukan CodeDeploy

alur

  • Merilis kode ke EC2, Lambda, atau ECS
  • Menarik artefak build dari S3, GitHub, atau Bitbucket
  • Menjalankan skrip deployment melalui event siklus hidup
  • Rollback otomatis jika terjadi kegagalan
Mengotomatisasi Deployment di AWS

Komponen inti CodeDeploy

alur

  • Application: nama yang mengelompokkan deployment
  • Deployment group: target yang menerima rilis
  • Deployment configuration: cara rollout berlangsung (batch instans atau pergeseran trafik)
  • Revision: bundel artefak yang dideploy
Mengotomatisasi Deployment di AWS

Mengenal appspec.yml

appspec

  • Berkas YAML di root revision
  • version: 0.0 dan os: linux wajib di bagian atas
  • Mengarahkan CodeDeploy file mana ditempatkan di mana
  • Mengarahkan CodeDeploy apa yang dijalankan, dan kapan
Mengotomatisasi Deployment di AWS

Event siklus hidup di EC2

  • Anda menulis: ApplicationStop, BeforeInstall, AfterInstall
  • Anda menulis: ApplicationStart, ValidateService
  • Sistem menjalankan: DownloadBundle, Install
  • Tiap hook adalah skrip shell atau PowerShell pada instans

diagram

Mengotomatisasi Deployment di AWS

Event siklus hidup di Lambda

  • Lambda hanya punya dua hook: BeforeAllowTraffic, AfterAllowTraffic
  • Hook berupa fungsi Lambda, bukan skrip shell
  • CodeDeploy menggeser alias ke versi baru
  • Tidak ada instans untuk login; tidak ada file untuk disalin

perbandingan

Mengotomatisasi Deployment di AWS

Contoh appspec.yml nyata untuk EC2

  • version: 0.0 dan os: linux di bagian atas
  • files: salin isi app.zip ke /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: skrip siklus hidup
  • ValidateService: smoke-test memastikan sukses

zip

Mengotomatisasi Deployment di AWS

Ayo berlatih!

Mengotomatisasi Deployment di AWS

Preparing Video For Download...