CodeDeploy misalnya kesehatan - AWS CodeDeploy

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

CodeDeploy misalnya kesehatan

CodeDeploy memantau status kesehatan instance dalam grup penyebaran. Penerapan gagal jika jumlah instance sehat berada di bawah jumlah minimum instance sehat yang telah ditentukan untuk grup penerapan selama penerapan. Misalnya, jika 85% instance harus tetap sehat selama penerapan, dan grup penerapan berisi 10 instance, penerapan keseluruhan akan gagal jika penerapan bahkan ke satu instance gagal. Ini karena ketika sebuah instance diambil offline sehingga revisi aplikasi terbaru dapat diinstal, jumlah instans sehat yang tersedia sudah turun menjadi 90%. Instance yang gagal ditambah instance offline lainnya berarti hanya 80% instance yang sehat dan tersedia. CodeDeployakan gagal dalam penerapan keseluruhan.

Penting untuk diingat bahwa agar penerapan keseluruhan berhasil, berikut ini harus benar:

  • CodeDeploy dapat menyebarkan ke setiap instance dalam penerapan.

  • Penerapan ke setidaknya satu instance harus berhasil. Ini berarti bahwa meskipun nilai host sehat minimum adalah 0, penerapan ke setidaknya satu instance harus berhasil (yaitu, setidaknya satu instance harus sehat) agar penerapan keseluruhan berhasil.

Status kondisi

CodeDeploy memberikan dua nilai status kesehatan untuk setiap contoh: kesehatan revisi dan kesehatan instans.

Revisi kesehatan

Kesehatan revisi didasarkan pada revisi aplikasi yang saat ini diinstal pada instance. Ini memiliki nilai status berikut:

  • Saat ini: Revisi yang diinstal pada instance cocok dengan revisi untuk penerapan terakhir grup penerapan yang berhasil.

  • Lama: Revisi yang diinstal pada instance cocok dengan versi aplikasi yang lebih lama.

  • Tidak diketahui: Revisi aplikasi belum berhasil diinstal pada instance.

Kesehatan contoh

Kesehatan instans didasarkan pada apakah penerapan ke suatu instance telah berhasil. Ini memiliki nilai-nilai berikut:

  • Sehat: Penerapan terakhir ke instance berhasil.

  • Tidak sehat: Upaya untuk menerapkan revisi ke instance gagal, atau revisi belum diterapkan ke instance.

CodeDeploy menggunakan kesehatan revisi dan kesehatan instans untuk menjadwalkan penerapan ke instance grup penerapan dalam urutan berikut:

  1. Kesehatan contoh yang tidak sehat.

  2. Kesehatan revisi tidak diketahui.

  3. Kesehatan revisi lama.

  4. Kesehatan revisi saat ini.

Jika penerapan keseluruhan berhasil, revisi akan diperbarui dan nilai status kesehatan grup penerapan diperbarui untuk mencerminkan penerapan terbaru.

  • Semua instance saat ini yang memiliki penerapan yang berhasil tetap terkini. Kalau tidak, mereka menjadi tidak dikenal.

  • Semua instance lama atau tidak dikenal yang memiliki penerapan yang berhasil menjadi terkini. Kalau tidak, mereka tetap tua atau tidak dikenal.

  • Semua contoh sehat yang memiliki penyebaran yang berhasil tetap sehat. Kalau tidak, mereka menjadi tidak sehat.

  • Semua contoh tidak sehat yang memiliki penyebaran yang sukses menjadi sehat. Kalau tidak, mereka tetap tidak sehat.

Jika penerapan keseluruhan gagal atau dihentikan:

  • Setiap instance yang CodeDeploy mencoba menerapkan revisi aplikasi memiliki kesehatan instance-nya yang disetel ke sehat atau tidak sehat, tergantung pada apakah upaya penerapan untuk instance itu berhasil atau gagal.

  • Setiap instance yang CodeDeploy tidak mencoba menerapkan revisi aplikasi mempertahankan nilai kesehatan instancenya saat ini.

  • Revisi grup penyebaran tetap sama.

Tentang jumlah minimum contoh sehat

Jumlah minimum instans sehat yang diperlukan didefinisikan sebagai bagian dari konfigurasi penerapan.

penting

Selama penerapan biru/hijau, konfigurasi penerapan dan nilai host sehat minimum berlaku untuk instance di lingkungan penggantian, bukan yang ada di lingkungan asli. Namun, ketika instance di lingkungan asli dideregistrasi dari penyeimbang beban, penerapan keseluruhan ditandai sebagai Gagal jika bahkan satu instance asli gagal dideregistrasi dengan sukses.

CodeDeploy menyediakan tiga konfigurasi penerapan default yang biasanya menggunakan nilai host sehat minimum:

Nama konfigurasi penerapan default Nilai host sehat minimum yang telah ditentukan sebelumnya
CodeDeployDefault. OneAtaTime 1
CodeDeployDefault. HalfAtaTime 50%
CodeDeployDefault.AllAtOnce 0

Anda akan menemukan informasi lebih lanjut tentang konfigurasi penerapan default di. Bekerja dengan konfigurasi penerapan di CodeDeploy

Anda dapat membuat konfigurasi penerapan khusus CodeDeploy untuk menentukan nilai host sehat minimum Anda sendiri. Anda dapat menentukan nilai-nilai ini sebagai bilangan bulat atau persentase saat menggunakan operasi berikut:

CodeDeploy memungkinkan Anda menentukan jumlah minimum instance sehat untuk penyebaran untuk dua tujuan utama:

  • Untuk menentukan apakah penerapan keseluruhan berhasil atau gagal. Penerapan berhasil jika revisi aplikasi berhasil diterapkan ke setidaknya jumlah minimum instance sehat.

  • Untuk menentukan jumlah instance yang harus sehat selama penerapan agar penerapan dapat dilanjutkan.

Anda dapat menentukan jumlah minimum instans sehat untuk grup penyebaran Anda sebagai sejumlah instance atau sebagai persentase dari jumlah total instans. Jika Anda menentukan persentase, maka pada awal penerapan, CodeDeploy mengonversi persentase ke jumlah instance yang setara, membulatkan instance fraksional apa pun.

CodeDeploy melacak status kesehatan instans grup penyebaran selama proses penerapan dan menggunakan jumlah minimum instans sehat yang ditentukan penerapan untuk menentukan apakah akan melanjutkan penerapan. Prinsip dasarnya adalah bahwa penerapan tidak boleh menyebabkan jumlah instance sehat turun di bawah jumlah minimum yang telah Anda tentukan. Satu pengecualian untuk aturan ini adalah ketika grup penerapan awalnya memiliki kurang dari jumlah minimum instance sehat yang ditentukan. Dalam hal ini, proses penyebaran tidak mengurangi jumlah instance sehat lebih jauh.

catatan

CodeDeploy akan mencoba menerapkan ke semua instance dalam grup penerapan, bahkan yang saat ini dalam status Berhenti. Dalam perhitungan host sehat minimum, instance yang dihentikan memiliki dampak yang sama dengan instance yang gagal. Untuk mengatasi kegagalan penerapan karena terlalu banyak instance yang dihentikan, mulai ulang instance atau ubah tag mereka untuk mengecualikannya dari grup penerapan.

CodeDeploy memulai proses penerapan dengan mencoba menerapkan revisi aplikasi ke instance tidak sehat grup penerapan. Untuk setiap penerapan yang berhasil, CodeDeploy ubah status kesehatan instans menjadi sehat dan menambahkannya ke instans sehat grup penerapan. CodeDeploy kemudian membandingkan jumlah contoh sehat saat ini dengan jumlah minimum yang ditentukan dari contoh sehat.

  • Jika jumlah instans sehat kurang dari atau sama dengan jumlah minimum instans sehat yang ditentukan, CodeDeploy batalkan penerapan untuk memastikan jumlah instans sehat tidak berkurang dengan lebih banyak penerapan.

  • Jika jumlah instans sehat lebih besar dari jumlah minimum instans sehat yang ditentukan oleh setidaknya satu, CodeDeploy menyebarkan revisi aplikasi ke kumpulan asli instans sehat.

Jika penerapan ke instance sehat gagal, CodeDeploy ubah status kesehatan instans tersebut menjadi tidak sehat. Saat penerapan berlangsung, CodeDeploy perbarui jumlah instans sehat saat ini dan membandingkannya dengan jumlah minimum instans sehat yang ditentukan. Jika jumlah instans sehat jatuh ke angka minimum yang ditentukan pada titik mana pun dalam proses penerapan, CodeDeploy hentikan penerapan. Praktik ini mencegah kemungkinan penerapan berikutnya akan gagal, menjatuhkan jumlah instance sehat di bawah angka minimum yang ditentukan.

catatan

Pastikan jumlah minimum instans sehat yang Anda tentukan kurang dari jumlah total instance dalam grup penyebaran. Jika Anda menentukan nilai persentase, ingat itu akan dibulatkan ke atas. Jika tidak, saat penerapan dimulai, jumlah instance sehat sudah kurang dari atau sama dengan jumlah minimum instans sehat yang ditentukan, dan CodeDeploy akan segera gagal dalam penerapan keseluruhan.

CodeDeploy juga menggunakan jumlah minimum instans sehat yang ditentukan dan jumlah sebenarnya dari instans sehat untuk menentukan apakah dan bagaimana menerapkan revisi aplikasi ke beberapa instance. Secara default, CodeDeploy menerapkan revisi aplikasi ke sebanyak mungkin instance tanpa risiko jumlah instans sehat berada di bawah jumlah minimum instans sehat yang ditentukan.

Untuk menentukan jumlah instance yang harus digunakan sekaligus, CodeDeploy gunakan perhitungan berikut:

[total-hosts] - [minimum-healthy-hosts] = [number-of-hosts-to-deploy-to-at-once]

Sebagai contoh:

  • Jika grup penerapan Anda memiliki 10 instans dan Anda menetapkan nomor instans sehat minimum menjadi 9, CodeDeploy deploy ke 1 instans sekaligus.

  • Jika grup penerapan Anda memiliki 10 instans dan Anda menetapkan nomor instans sehat minimum menjadi 3, CodeDeploy deploy ke 7 instans pada saat yang sama di batch pertama, dan kemudian ke 3 sisanya di batch kedua.

  • Jika grup penerapan Anda memiliki 10 instans dan Anda menyetel nomor instans sehat minimum ke 0, CodeDeploy deploy ke 10 instans secara bersamaan.

Contoh

Contoh berikut mengasumsikan grup penerapan dengan 10 instance.

Contoh sehat minimum: 95%

CodeDeploy membulatkan jumlah instans sehat minimum hingga 10 kali, yang sama dengan jumlah contoh sehat. Penerapan keseluruhan segera gagal tanpa menerapkan revisi ke instance apa pun.

Contoh sehat minimum: 9

CodeDeploy menyebarkan revisi ke satu instance pada satu waktu. Jika penerapan ke salah satu instance gagal, CodeDeploy segera gagal penerapan keseluruhan karena jumlah instans sehat sama dengan jumlah instans sehat minimum. Pengecualian untuk aturan ini adalah bahwa jika instance terakhir gagal, penerapan masih berhasil.

CodeDeploy melanjutkan penerapan, satu instance pada satu waktu, hingga penerapan apa pun gagal atau penerapan keseluruhan selesai. Jika semua 10 penerapan berhasil, grup penerapan sekarang memiliki 10 instance sehat.

Contoh sehat minimum: 8

CodeDeploy menyebarkan revisi ke dua instance sekaligus. Jika dua penerapan ini gagal, CodeDeploy segera gagal penerapan keseluruhan. Pengecualian untuk aturan ini adalah bahwa jika instance terakhir adalah yang kedua gagal, penerapan masih berhasil.

Contoh sehat minimum: 0

CodeDeploy menyebarkan revisi ke seluruh grup penyebaran sekaligus. Setidaknya satu penerapan ke instans harus berhasil agar penerapan keseluruhan berhasil. Jika 0 instance sehat, maka penerapan gagal. Ini karena persyaratan bahwa untuk menandai penerapan keseluruhan sebagai berhasil, setidaknya satu instance harus sehat ketika penerapan keseluruhan selesai, bahkan jika nilai instans sehat minimum adalah 0.

Tentang jumlah minimum instans sehat per Availability Zone

catatan

Bagian ini menggunakan istilah instance dan host secara bergantian untuk merujuk ke instans Amazon EC2.

Jika Anda menerapkan ke instance di beberapa Availability Zone, Anda dapat mengaktifkan zonal configuration fitur secara opsional, yang memungkinkan CodeDeploy untuk menerapkan ke satu Availability Zone pada satu waktu.

Ketika fitur ini diaktifkan, CodeDeploy akan memastikan bahwa jumlah host sehat tetap di atas 'host sehat minimum per zona' dan nilai 'host sehat minimum'. Jika jumlah host sehat turun di bawah salah satu nilai, CodeDeploy gagal penerapan di semua Availability Zone.

Untuk menghitung jumlah host yang akan digunakan sekaligus, CodeDeploy gunakan nilai 'host sehat minimum per zona' dan 'host sehat minimum'. CodeDeploy akan menggunakan perhitungan yang lebih rendah [A] dan[B], di mana [A] dan [B] adalah:

[A] = [total-hosts] - [min-healthy-hosts] = [number-of-hosts-to-deploy-to-at-once]
[B] = [total-hosts-per-AZ] - [min-healthy-hosts-per-AZ] = [number-of-hosts-to-deploy-to-at-once-per-AZ]

Setelah menentukan jumlah host yang akan diterapkan sekaligus, CodeDeploy menyebarkan ke host dalam batch nomor itu, satu Availability Zone pada satu waktu, dengan jeda opsional (atau 'waktu pemanggangan') di antara zona.

Contoh

Jika penerapan Anda dikonfigurasi seperti ini:

  • [total-hosts]adalah 200

  • [minimum-healthy-hosts]adalah 160

  • [total-hosts-per-AZ]adalah 100

  • [minimum-healthy-hosts-per-AZ]adalah 50

Maka...

  • [A] = 200 - 160 = 40

  • [B] = 100 - 50 = 50

  • 40kurang dari 50

Oleh karena itu, CodeDeploy akan menyebarkan ke 40 host sekaligus.

Dalam skenario ini, penerapan terungkap sebagai berikut:

  1. CodeDeploy menyebarkan ke Availability Zone pertama:

    1. CodeDeploy menyebarkan ke 40 host pertama.

    2. CodeDeploy menyebarkan ke 40 host berikutnya.

    3. CodeDeploy menyebarkan ke 20 host yang tersisa.

      Penerapan ke Availability Zone pertama sekarang selesai.

  2. (Opsional) CodeDeploy menunggu sementara penerapan ke zona pertama 'bakes', seperti yang ditentukan oleh durasi Monitor atau Tambahkan durasi monitor untuk pengaturan zona pertama. Jika tidak ada masalah, CodeDeploy lanjutkan.

  3. CodeDeploy menyebarkan ke Availability Zone kedua:

    1. CodeDeploy menyebarkan ke 40 host pertama.

    2. CodeDeploy menyebarkan ke 40 host berikutnya.

    3. CodeDeploy menyebarkan ke 20 host yang tersisa.

      Penerapan ke Availability Zone kedua dan terakhir sekarang selesai.

Untuk mempelajari tentang fitur konfigurasi zona, dan cara menentukan jumlah minimum instans sehat per Availability Zone, lihat. zonal configuration