Mengelola environment dan versi yang disetujui

Mengotomatisasi Deployment di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Kode yang sama, tiga environment

kode yang sama

  • Promosikan versi Lambda dari staging ke prod
  • Artifak sama, tanpa rebuild
  • Satu panggilan API memperbarui alias prod; kodenya tidak berubah
  • Itulah "build once, deploy many"
Mengotomatisasi Deployment di AWS

Versi yang disetujui, per layanan

versi

  • Lambda: alias menunjuk ke versi fungsi
  • ECR + ECS: tag image + revisi task definition
  • API Gateway: stage dengan deployment
  • S3: versi objek di bucket dengan versioning
Mengotomatisasi Deployment di AWS

Cara kerja alias Lambda

3 versi

  • Versi adalah snapshot immutable dari fungsi
  • Alias adalah pointer bernama ke sebuah versi
  • Perbarui alias untuk mempromosikan sebuah versi
  • Alias mendukung weighted routing untuk rilis canary
Mengotomatisasi Deployment di AWS

Tag ECR dan definisi tugas ECS

  • Image ECR immutable per digest
  • Tag adalah label yang dapat dipindah pada digest
  • Definisi tugas ECS mereferensikan image:tag atau @digest
  • Untuk produksi, pin berdasarkan digest agar bit tepat terkunci

ecr

Mengotomatisasi Deployment di AWS

Sekilas tentang stage API Gateway

  • Stage adalah deployment dari API
  • Tiap stage punya URL sendiri dan riwayat deployment
  • Promosikan dengan mendeploy API ke stage berikutnya
  • Variabel stage menyimpan nilai runtime per environment

api-2

Mengotomatisasi Deployment di AWS

Mempromosikan sebuah versi

  • Bangun artifak sekali
  • Validasi di dev, lalu staging
  • Perbarui alias atau tag prod, tanpa rebuild
  • Artifak yang sama berjalan di semua environment

promosi

Mengotomatisasi Deployment di AWS

Memisahkan konfigurasi

terpisah

  • Kode tetap sama di semua environment
  • Konfigurasi memuat perbedaan dev vs prod
  • Variabel stage, env var, Parameter Store, Secrets Manager
  • Jangan pernah hardcode nilai environment di artifak
Mengotomatisasi Deployment di AWS

Ayo berlatih!

Mengotomatisasi Deployment di AWS

Preparing Video For Download...