Alur kerja penerapan blue/green layanan Amazon ECS - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Alur kerja penerapan blue/green layanan Amazon ECS

Proses blue/green penyebaran Amazon ECS mengikuti pendekatan terstruktur dengan enam fase berbeda yang memastikan pembaruan aplikasi yang aman dan andal. Setiap fase melayani tujuan tertentu dalam memvalidasi dan mentransisikan aplikasi Anda dari versi saat ini (biru) ke versi baru (hijau).

  1. Tahap Persiapan: Ciptakan lingkungan hijau di samping lingkungan biru yang ada. Ini termasuk penyediaan revisi layanan baru, dan menyiapkan kelompok sasaran.

  2. Fase Deployment: Menyebarkan revisi layanan baru ke lingkungan hijau. Amazon ECS meluncurkan tugas baru menggunakan revisi layanan yang diperbarui sementara lingkungan biru terus melayani lalu lintas produksi.

  3. Fase Pengujian: Validasi lingkungan hijau menggunakan perutean lalu lintas uji. Application Load Balancer mengarahkan permintaan pengujian ke lingkungan hijau sementara lalu lintas produksi tetap biru.

  4. Fase Pergeseran Lalu Lintas: Menggeser lalu lintas produksi dari biru ke hijau berdasarkan strategi penerapan yang dikonfigurasi. Fase ini mencakup pos pemeriksaan pemantauan dan validasi.

  5. Fase Pemantauan: Pantau kesehatan aplikasi, metrik kinerja, dan status alarm selama periode waktu pemanggangan. Operasi rollback dimulai ketika masalah terdeteksi.

  6. Fase Penyelesaian: Selesaikan penerapan dengan menghentikan lingkungan biru atau mempertahankannya untuk skenario rollback potensial, tergantung pada konfigurasi Anda.

Alur kerja

Diagram berikut mengilustrasikan alur kerja blue/green penerapan komprehensif, yang menunjukkan interaksi antara Amazon ECS, dan Application Load Balancer:

Diagram komprehensif yang menunjukkan proses blue/green penyebaran di Amazon ECS dengan interaksi komponen terperinci, fase perpindahan lalu lintas, dan pemantauan pos pemeriksaan

Alur kerja penerapan yang disempurnakan mencakup langkah-langkah rinci berikut:

  1. Keadaan Awal: Layanan biru (produksi saat ini) menangani 100% lalu lintas produksi. Application Load Balancer memiliki satu pendengar dengan aturan yang merutekan semua permintaan ke grup target biru yang berisi tugas biru sehat.

  2. Penyediaan Lingkungan Hijau: Amazon ECS membuat tugas baru menggunakan definisi tugas yang diperbarui. Tugas-tugas ini terdaftar dengan kelompok target hijau baru tetapi tidak menerima lalu lintas pada awalnya.

  3. Validasi Pemeriksaan Kesehatan: Application Load Balancer melakukan pemeriksaan kesehatan pada tugas-tugas hijau. Hanya ketika tugas hijau lulus pemeriksaan kesehatan barulah penerapan dilanjutkan ke fase berikutnya.

  4. Uji Perutean Lalu Lintas: Jika dikonfigurasi, aturan pendengar Application Load Balancer merutekan pola lalu lintas tertentu (seperti permintaan dengan header pengujian) ke lingkungan hijau untuk validasi sementara lalu lintas produksi tetap berwarna biru. Ini dikendalikan oleh pendengar yang sama yang menangani lalu lintas produksi, menggunakan aturan berbeda berdasarkan atribut permintaan.

  5. Pergeseran Lalu Lintas Produksi: Berdasarkan konfigurasi penyebaran, lalu lintas bergeser dari biru ke hijau. Dalam blue/green penyebaran ECS, ini adalah pergeseran langsung (all-at-once) di mana 100% lalu lintas dipindahkan dari lingkungan biru ke hijau. Application Load Balancer menggunakan pendengar tunggal dengan aturan pendengar yang mengontrol distribusi lalu lintas antara grup target biru dan hijau berdasarkan bobot.

  6. Pemantauan dan Validasi: Sepanjang pergeseran lalu lintas, Amazon ECS memantau CloudWatch metrik, status alarm, dan kesehatan penyebaran. Pemicu rollback otomatis diaktifkan jika masalah terdeteksi.

  7. Periode Waktu Panggang: Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan setelah lalu lintas produksi bergeser.

  8. Pengakhiran Lingkungan Biru: Setelah pergeseran lalu lintas dan validasi berhasil, lingkungan biru dihentikan untuk membebaskan sumber daya cluster, atau dipertahankan untuk kemampuan rollback yang cepat.

  9. Keadaan Akhir: Lingkungan hijau menjadi lingkungan produksi baru, menangani 100% lalu lintas. Penerapan ditandai sebagai berhasil.

Tahapan siklus hidup penerapan

Proses blue/green penyebaran berlangsung melalui tahapan siklus hidup yang berbeda (serangkaian peristiwa dalam operasi penyebaran, seperti “setelah pergeseran lalu lintas produksi”), masing-masing dengan tanggung jawab khusus dan pos pemeriksaan validasi. Memahami tahapan ini membantu Anda memantau kemajuan penerapan dan memecahkan masalah secara efektif.

Setiap tahap siklus hidup dapat bertahan hingga 24 jam. Kami menyarankan agar nilainya tetap di bawah tanda 24 jam. Ini karena proses asinkron membutuhkan waktu untuk memicu kait. Waktu sistem habis, gagal penerapan, dan kemudian memulai rollback setelah tahap mencapai 24 jam. AWS CloudFormation penerapan memiliki batasan batas waktu tambahan. Sementara batas tahap 24 jam tetap berlaku, AWS CloudFormation memberlakukan batas 36 jam pada seluruh penyebaran. AWS CloudFormation gagal penerapan, dan kemudian memulai rollback jika proses tidak selesai dalam waktu 36 jam.

Tahapan siklus hidup Deskripsi Gunakan tahap ini untuk pengait siklus hidup?
RECONCILE_SERVICE Tahap ini hanya terjadi ketika Anda memulai penyebaran layanan baru dengan lebih dari 1 revisi layanan dalam status AKTIF. Ya
PRE_SCALE_UP Revisi layanan hijau belum dimulai. Revisi layanan biru menangani 100% lalu lintas produksi. Tidak ada lalu lintas uji. Ya
SKALA_UP Waktu ketika revisi layanan hijau menskalakan hingga 100% dan meluncurkan tugas baru. Revisi layanan hijau tidak melayani lalu lintas apa pun pada saat ini. Tidak
POST_SCALE_UP Revisi layanan hijau telah dimulai. Revisi layanan biru menangani 100% lalu lintas produksi. Tidak ada lalu lintas uji. Ya
TEST_TRAFFIC_SHIFT Revisi layanan biru dan hijau sedang berjalan. Revisi layanan biru menangani 100% lalu lintas produksi. Revisi layanan hijau bermigrasi dari 0% ke 100% lalu lintas pengujian. Ya
POST_TEST_TRAFFIC_SHIFT Pergeseran lalu lintas uji selesai. Revisi layanan hijau menangani 100% lalu lintas pengujian. Ya
PRODUCTION_TRAFFIC_SHIFT Lalu lintas produksi bergeser ke revisi layanan hijau. Revisi layanan hijau bermigrasi dari 0% menjadi 100% dari lalu lintas produksi. Ya
POST_PRODUCTION_TRAFFIC_SHIFT Pergeseran lalu lintas produksi selesai. Ya
BAKE_WAKTU Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan. Tidak
MEMBERSIHKAN_UP Revisi layanan biru telah sepenuhnya diperkecil menjadi 0 tugas yang sedang berjalan. Revisi layanan hijau sekarang menjadi revisi layanan produksi setelah tahap ini. Tidak

Setiap tahap siklus hidup mencakup pos pemeriksaan validasi bawaan yang harus diteruskan sebelum melanjutkan ke tahap berikutnya. Jika validasi gagal, penerapan dapat secara otomatis digulirkan kembali untuk menjaga ketersediaan dan keandalan layanan.

Saat Anda menggunakan fungsi Lambda, fungsi tersebut harus menyelesaikan pekerjaan, atau mengembalikan IN_PROGRESS dalam waktu 15 menit. Anda dapat menggunakan callBackDelaySeconds untuk menunda panggilan ke Lambda. Untuk informasi selengkapnya, lihat fungsi app.py di sample-amazon-ecs-blue - green-deployment-patterns on GitHub.