Penerapan canary dan linear

Mengotomatisasi Deployment di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Satu rilis buruk, semua pengguna

terbagi

  • Perubahan logika pembayaran diluncurkan instan ke 100% trafik
  • Bug muncul di beban nyata; setiap checkout gagal
  • Canary 10% akan menangkapnya dalam lima menit
  • Biaya melewatkan canary: uang nyata hilang
Mengotomatisasi Deployment di AWS

Apa itu penerapan canary

canary

  • Kirim sebagian kecil trafik ke versi baru terlebih dulu
  • Pantau metrik selama periode tunggu tetap
  • Jika sehat, alihkan sisanya sekaligus
  • Pola umum: 10% selama 5 menit, lalu 100%
Mengotomatisasi Deployment di AWS

Apa itu penerapan linear

linear

  • Alihkan trafik dalam kenaikan yang sama
  • Tunggu di antara tiap langkah
  • Contoh: 10% tiap 1 menit selama 10 menit
  • Lebih mulus dari canary; total lebih lama
Mengotomatisasi Deployment di AWS

Canary vs. linear, berdampingan

  • Canary: satu bagian, lalu semuanya
  • Linear: banyak langkah kecil
  • Canary menangkap isu cepat; linear naik bertahap
  • Keduanya jeda jika rollback dipicu

traffic

Mengotomatisasi Deployment di AWS

Konfigurasi CodeDeploy untuk Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% selama 5 mnt, lalu 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10% per menit
  • CodeDeployDefault.LambdaAllAtOnce: seluruh trafik segera
  • ECS memiliki konfigurasi serupa berawalan ECS

label

Mengotomatisasi Deployment di AWS

Rollback otomatis dengan CloudWatch alarm

  • Lampirkan CloudWatch alarm ke grup penerapan
  • Alarm umum: errors, duration, 5xx
  • Jika alarm masuk status ALARM, penerapan berhenti
  • CodeDeploy rollback ke versi sebelumnya

label

Mengotomatisasi Deployment di AWS

Memilih konfigurasi yang tepat

pilih

  • Patch rutin berisiko rendah → AllAtOnce
  • Perubahan produksi berisiko tinggi → Canary
  • Ingin kenaikan mulus dan stabil → Linear
  • Selalu dipasangkan dengan alarm untuk auto-rollback
Mengotomatisasi Deployment di AWS

Ayo berlatih!

Mengotomatisasi Deployment di AWS

Preparing Video For Download...