Strategi deployment: versi, alias, dan pengalihan traffic

Aplikasi Serverless dengan AWS Lambda

Claudio Canales

Senior DevOps Engineer

Mengapa strategi deployment penting

  • Deteksi bug cepat.
  • Batasi dampak.
  • Pulih cepat.

Deploy berisiko vs deploy aman

Aplikasi Serverless dengan AWS Lambda

$LATEST vs versi yang dipublikasikan

$LATEST

  • Berubah setiap kali Anda memperbarui kode.

Versions

  • Snapshot immutable.
  • Mudah dipin untuk rollback dan pembagian traffic.

Latest vs versi

Aplikasi Serverless dengan AWS Lambda

Versi adalah snapshot immutable

  • Perlakukan versi seperti artefak rilis.
  • Tiap versi menangkap kode dan konfigurasi.
  • Setelah dipublikasikan, tidak berubah.
  • Selalu bisa kembali ke kondisi yang terbukti baik.

Snapshot versi immutable

Aplikasi Serverless dengan AWS Lambda

Alias adalah penunjuk stabil

  • Penunjuk stabil.
  • Panggil alias, bukan versi.
  • Ubah tujuannya tanpa mengubah pemanggil.

Alias menunjuk ke sebuah versi

Aplikasi Serverless dengan AWS Lambda

Alias dev dan prod

  • Cocok untuk environment.
  • Sering pindahkan dev.
  • Promosikan ke prod dengan memindahkan alias.

Pemetaan alias dev dan prod

Aplikasi Serverless dengan AWS Lambda

Pengalihan traffic dengan alias berbobot

  • Uji di produksi dengan aman.
  • Sebagian besar traffic tetap di versi saat ini.
  • Persentase kecil ke kandidat.

Konsep routing alias berbobot

Aplikasi Serverless dengan AWS Lambda

Langkah kanari 1: 90/10

  • 90% tetap di versi saat ini.
  • 10% menguji kandidat di beban nyata.
  • Pantau error dan latensi.

Pembagian kanari 90/10

Aplikasi Serverless dengan AWS Lambda

Langkah kanari 2: 50/50

  • Jika 10% terlihat baik, naikkan bobotnya.
  • 50% saat ini, 50% kandidat.
  • Masalah cepat muncul di 50/50.
  • Monitoring penting.

Pembagian kanari 50/50

Aplikasi Serverless dengan AWS Lambda

Langkah kanari 3: 100% baru

  • Arahkan semua traffic ke versi baru.
  • Versi lama masih ada.
  • Rollback mudah.

Kanari 100% baru

Aplikasi Serverless dengan AWS Lambda

Model mental blue/green

  • Biru = versi stabil saat ini.
  • Hijau = versi kandidat baru.
  • Beralih dengan memindahkan alias.
  • Routing berbobot membuat peralihan bertahap.

Peralihan blue green

Aplikasi Serverless dengan AWS Lambda

Rollback = kembalikan alias

  • Tanpa redeploy.
  • Pindahkan alias ke versi terakhir yang diketahui baik.
  • Pulih dalam hitungan detik, bukan jam.
  • Versi immutable dan alias stabil saling melengkapi.

Rollback dengan memindahkan alias

Aplikasi Serverless dengan AWS Lambda

Monitor selama peralihan

  • Error dan timeout.
  • Durasi dan tail latency.
  • Throttle jika Anda memakai batas.
  • Jeda atau rollback cepat.

Metrik monitoring deploy

Aplikasi Serverless dengan AWS Lambda

Kesalahan umum: menganggap $LATEST sebagai prod

  • Mengandalkan $LATEST mengurangi prediktabilitas.
  • Versi dan alias memperjelas apa yang berjalan.
  • Rollback menjadi aman.

Peringatan drift pada latest

Aplikasi Serverless dengan AWS Lambda

Abaikan

Aplikasi Serverless dengan AWS Lambda

Daftar periksa deploy aman

  • Publikasikan versi.
  • Alihkan traffic bertahap dengan alias.
  • Monitor hasilnya.
  • Siapkan rollback di setiap langkah.

Diagram daftar periksa deploy aman

Aplikasi Serverless dengan AWS Lambda

Poin penting

  • Versi memberi prediktabilitas.
  • Alias memberi stabilitas.
  • Routing berbobot menambah keamanan.
  • Rollback = pindahkan alias.

Poin penting deployment

Aplikasi Serverless dengan AWS Lambda

Ayo berlatih!

Aplikasi Serverless dengan AWS Lambda

Preparing Video For Download...