View a markdown version of this page

Selesaikan penerapan bergulir Amazon ECS lebih awal dengan kriteria keberhasilan awal - Amazon Elastic Container Service

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

Selesaikan penerapan bergulir Amazon ECS lebih awal dengan kriteria keberhasilan awal

Saat Anda memperbarui layanan yang menggunakan strategi penyebaran bergulir, Amazon ECS memulai penerapan yang menggantikan tugas pada revisi layanan sumber dengan tugas baru pada revisi layanan target. Amazon ECS menyelesaikan penerapan setelah semua hal berikut benar:

  • Revisi layanan target mencapai 100 persen dari jumlah yang diinginkan, dan semua tugasnya berjalan dan sehat.

  • Pemutus sirkuit penyebaran atau CloudWatch alarm tidak memicu rollback.

  • Jika Anda menggunakan rollback berbasis alarm, waktu memanggang berlalu.

  • Tugas pada revisi layanan sumber dibersihkan.

Dengan kriteria keberhasilan awal, Anda mengonfigurasi kapan Amazon ECS menyelesaikan penerapan, berdasarkan kepercayaan dan kebutuhan operasional beban kerja Anda.

Anda dapat menggunakan kriteria keberhasilan awal dalam skenario berikut:

  • Anda yakin bahwa persentase tugas yang sehat pada revisi layanan target sudah cukup untuk menyelesaikan penerapan, dan Anda ingin menyelesaikannya lebih cepat sehingga penerapan berikutnya, CI/CD pipeline, dan operasi dependen lainnya dapat dilanjutkan.

  • Layanan Anda berjalan pada kapasitas khusus atau terbatas, seperti beban kerja GPU-accelerated inferensi, di mana beberapa tugas membutuhkan waktu lebih lama untuk diluncurkan karena ketersediaan perangkat keras.

  • Layanan Anda memiliki tugas pada revisi layanan sumber yang lambat habis dan sebaliknya akan menahan penerapan terbuka, seperti tugas dengan koneksi berumur panjang.

  • Anda ingin pemutus sirkuit pener CloudWatch apan atau rollback alarm melindungi penerapan hingga revisi layanan target mencapai tingkat kesehatan yang Anda tentukan, dan Anda tidak ingin rollback setelah titik itu.

Anda menentukan kriteria dengan menggunakan pengaturan berikut dalam konfigurasi penerapan.

Persentase sehat

Ini earlySuccessCriteria.healthyPercent mewakili jumlah tugas yang harus berjalan dan sehat pada revisi layanan target sebelum Amazon ECS menyelesaikan penerapan, sebagai persen dari jumlah tugas yang diinginkan untuk layanan. Nilai ini dibulatkan ke atas. Misalnya, jika persen sehat adalah 90 dan jumlah yang diinginkan adalah 100, Amazon ECS menyelesaikan penerapan setelah 90 tugas sehat. Jika persentase sehat adalah 50 dan jumlah yang diinginkan adalah 3, Amazon ECS menyelesaikan penerapan setelah 2 tugas sehat.

Tugas sehat ketika melewati pemeriksaan kesehatan yang Anda konfigurasikan untuk layanan.

Amazon ECS meluncurkan tugas yang tersisa pada revisi layanan target di luar penerapan, melalui penskalaan layanan reguler. Setelah Amazon ECS menyelesaikan penerapan, pemutus sirkuit penerapan dan rollback CloudWatch alarm tidak lagi berlaku.

Persentase sehat harus antara layanan minimumHealthyPercent dan 100.

Pembersihan revisi layanan sumber

Ini earlySuccessCriteria.sourceServiceRevisionCleanup menentukan kapan Amazon ECS membersihkan tugas dari revisi layanan sumber. Ini memiliki dua nilai, BLOCKING danDEFERRED.

DenganBLOCKING, penerapan berlangsung dalam urutan sebagai berikut:

  1. Persentase tugas yang sehat berjalan dan sehat pada revisi layanan target.

  2. Jika Anda menggunakan rollback berbasis alarm, waktu memanggang berlalu.

  3. Amazon ECS membersihkan tugas pada revisi layanan sumber.

  4. Amazon ECS menyelesaikan penyebaran.

DenganDEFERRED, penerapan berlangsung dalam urutan sebagai berikut:

  1. Persentase tugas yang sehat berjalan dan sehat pada revisi layanan target.

  2. Jika Anda menggunakan rollback berbasis alarm, waktu memanggang berlalu.

  3. Amazon ECS menyelesaikan penyebaran.

  4. Amazon ECS membersihkan tugas pada revisi layanan sumber, di luar penerapan.

DenganDEFERRED, Amazon ECS mencoba membersihkan tugas pada revisi layanan sumber hingga dua minggu.

Gunakan DEFERRED untuk layanan dengan koneksi berumur panjang atau perlindungan skala tugas, di mana tugas dari revisi layanan sumber mungkin perlu terus berjalan tanpa menahan penerapan terbuka. Ini berguna ketika menguras revisi layanan sumber adalah operasi panjang dan perkakas Anda CI/CD memiliki batas waktu. Amazon ECS menyelesaikan penerapan ketika persentase sehat terpenuhi, dan tugas pada revisi layanan sumber terkuras di luar penerapan.

Bagaimana Amazon ECS mengevaluasi kriteria keberhasilan awal

Amazon ECS menyelesaikan penerapan yang menggunakan kriteria keberhasilan awal setelah semua hal berikut benar:

  • Jumlah tugas yang berjalan dan sehat pada revisi layanan target setidaknya persentase sehat dari jumlah yang diinginkan, dibulatkan ke atas.

  • Pemutus sirkuit penyebaran atau CloudWatch alarm tidak memicu rollback.

  • Jika Anda menggunakan rollback berbasis alarm, waktu memanggang berlalu.

  • Jika pembersihan revisi layanan sumber adalahBLOCKING, tugas pada revisi layanan sumber dibersihkan.

Amazon ECS meluncurkan setidaknya satu tugas pada revisi layanan target dan menunggunya menjadi sehat sebelum mengevaluasi persen sehat.

Contoh jumlah tugas yang sehat
Jumlah yang diinginkan Persentase sehat Tugas sehat yang diperlukan (dibulatkan ke atas)
2 50 1
3 50 2
10 80 8
100 90 90
10 100 10

Konfigurasikan kriteria keberhasilan awal

Anda dapat mengonfigurasi kriteria keberhasilan awal untuk layanan baru atau yang sudah ada dengan menggunakan konsol atau AWS CLI.

Konsol

Dalam alur buat layanan atau perbarui layanan, di bawah Konfigurasi Deployment, aktifkan kriteria keberhasilan awal. Masukkan nilai untuk Persentase sehat, dan pilih opsi pembersihan revisi layanan Sumber, baik Memblokir atau Ditangguhkan.

AWS CLI

Tetapkan earlySuccessCriteria nilai dalam --deployment-configuration parameter saat Anda membuat atau memperbarui layanan.

aws ecs update-service \ --cluster MyCluster \ --service MyService \ --deployment-configuration '{ "strategy": "ROLLING", "earlySuccessCriteria": { "enable": true, "healthyPercent": 90, "sourceServiceRevisionCleanup": "BLOCKING" } }'

Apa yang Anda amati

  • DescribeServiceDeploymentsmengembalikan status penerapan dan kriteria keberhasilan awal yang dikonfigurasi. Saat penerapan sedang berlangsung, jumlah tugas aktif. Setelah penerapan selesai, jumlah tugas adalah snapshot dari saat penerapan selesai. Ini berlaku untuk keduanya BLOCKING danDEFERRED.

  • Untuk melihat jumlah tugas langsung untuk layanan, gunakanDescribeServices.

  • Penerapan yang selesai lebih awal disertakan saat Anda memfilter ListServiceDeployments berdasarkan status. SUCCESSFUL

  • Peristiwa dan AWS CloudTrail catatan perubahan status penerapan menunjukkan standar IN_PROGRESS ke SUCCESSFUL siklus hidup. Kriteria keberhasilan awal tidak menambahkan status penerapan baru.

Pertimbangan-pertimbangan

Tinjau pertimbangan berikut sebelum Anda menggunakan kriteria keberhasilan awal.

Pemantauan rollback berlaku selama penerapan

Pemutus sirkuit penerapan dan rollback CloudWatch alarm adalah mekanisme deteksi kegagalan untuk penerapan. Mereka dapat memutar kembali penerapan saat sedang berlangsung. Setelah Amazon ECS menyelesaikan penerapan, mekanisme ini tidak lagi mengembalikan layanan, termasuk saat Amazon ECS meluncurkan tugas yang tersisa melalui penskalaan layanan reguler. Anda tidak dapat menghentikan penerapan setelah selesai. Tetapkan persen sehat ke persentase di mana Anda yakin bahwa revisi layanan target sehat.

DEFERREDpembersihan

DenganDEFERRED, Amazon ECS membersihkan tugas pada revisi layanan sumber setelah menyelesaikan penerapan. Jika tugas pada revisi layanan sumber dilindungi, dengan perlindungan penskalaan tugas atau mekanisme lain, selama lebih dari dua minggu setelah penerapan, Amazon ECS tidak dapat membersihkannya. Gunakan DescribeServices untuk memantau tugas pada revisi layanan sumber.