Saat layanan EAS diskalakan hingga puluhan atau ratusan replika, pembaruan rolling penuh membawa risiko penerapan yang signifikan karena tidak menyediakan kontrol per batch maupun mekanisme jeda. Fitur rencana pembaruan mengatasi hal ini dengan mendukung dua mode pembaruan — manual batching (Partition) dan automatic batching (Batch Update) — sehingga Anda dapat mengontrol kecepatan penerapan skala besar dan melakukan rollback dengan cepat jika terjadi masalah.
Konsep utama
-
Beberapa mode pembaruan: Dua mode didukung — manual batching (Partition) dan automatic batching (Batch Update).
Karakteristik
Manual batching (Partition)
Automatic batching (Batch Update)
Control
Sepenuhnya manual; Anda yang memajukan setiap batch
Sistem memajukan batch secara otomatis setelah dikonfigurasi
Beban operasional
Lebih tinggi
Lebih rendah
Fleksibilitas
Paling tinggi
Sedang
Paling cocok untuk
Rilis canary layanan online kritis
Pembaruan rutin layanan berskala besar
Kontrol penuh selama pembaruan: Jeda, lakukan rollback, atau ubah strategi batching kapan saja selama pembaruan. Hapus rencana untuk kembali ke strategi penggantian penuh bawaan.
Visibilitas status real-time: Tag status Update plan di header detail layanan menunjukkan fase saat ini. Arahkan kursor ke tag tersebut untuk melihat tooltip berisi progres langsung, hitungan mundur batch, dan informasi penting lainnya.
Langkah cepat
Contoh berikut menjelaskan cara membuat rencana pembaruan dan menyelesaikan pembaruan layanan menggunakan manual batching pada layanan dengan 10 replika.
Prasyarat: Aktifkan fitur rencana pembaruan
Fitur rencana pembaruan hanya dapat diaktifkan saat membuat layanan baru. Fitur ini tidak dapat diaktifkan dengan memperbarui layanan yang sudah ada.
Saat membuat layanan, tambahkan "eas.aliyun.com/enable-rollout": "true" ke bidang features dalam konfigurasi JSON. Tanpa pengaturan ini, fitur rencana pembaruan tidak tersedia. Contoh:
{
"metadata": {
"instance": 10
},
"features": {
"eas.aliyun.com/enable-rollout": "true"
}
}
Langkah 1: Buat rencana pembaruan
Klik layanan target untuk membuka halaman detail layanan EAS.
Temukan tag Update plan di bilah header. Secara default, tag ini berwarna abu-abu, menandakan belum ada rencana yang dikonfigurasi.
Arahkan kursor ke tag tersebut dan klik Create update plan pada tooltip yang muncul.
Pada panel yang muncul dari sisi kanan, pilih Manual batching dan atur jumlah replika batch pertama menjadi
2.Klik OK.
Rencana pembaruan telah dibuat. Tag berubah menjadi biru dan statusnya berubah menjadi Pending.
Langkah 2: Picu pembaruan
Klik Update pada halaman detail layanan dan kirimkan konfigurasi layanan baru.
Sistem memulai pembaruan sesuai rencana: memperbarui 2 replika terlebih dahulu, lalu berhenti dan menunggu. Tooltip menampilkan progres saat ini (2/10).
Langkah 3: Verifikasi dan lanjutkan ke batch berikutnya
Periksa metrik bisnis Anda (latensi, laju error, dan sebagainya). Jika tidak ditemukan masalah, ubah rencana dan atur jumlah replika target menjadi 10. Sistem akan memperbarui 8 replika sisanya hingga pembaruan selesai.
Jika ditemukan masalah, ubah rencana pembaruan dan atur jumlah replika target menjadi 0. Semua replika yang telah diperbarui akan melakukan rollback ke versi sebelumnya.
Referensi status
Rencana pembaruan menggunakan model status dua tingkat: tingkat atas adalah fase, dan tingkat kedua adalah tahap (yang hanya ada ketika fase berstatus Active).
Not configured (abu-abu): Tidak ada rencana pembaruan. Memperbarui layanan akan memicu penggantian penuh.
Pending (biru): Rencana telah dibuat dan menunggu pembaruan layanan untuk diaktifkan.
-
Active (biru): Pembaruan telah dipicu dan sistem sedang mengganti replika secara bertahap. Terdapat tiga tahap dalam Active:
Current batch executing: Batch sedang berjalan; jumlah replika yang diperbarui mendekati target.
Current batch paused: Pengguna menjeda eksekusi; progres dibekukan.
Current batch completed: Target batch telah tercapai. Sistem menunggu Anda memajukan secara manual (manual batching) atau menunggu hitungan mundur berakhir (automatic batching).
-
Completed (biru): Putaran pembaruan saat ini telah selesai.
Memperbarui layanan lagi akan memicu ulang rencana dan mengubah status menjadi Active.
Memodifikasi rencana akan mengubah status menjadi Pending dan menunggu pembaruan layanan berikutnya.
Tabel berikut menunjukkan operasi yang tersedia pada setiap status:
|
Operation |
Not configured |
Pending |
Active |
Completed |
||
|
Current batch executing |
Current batch paused |
Current batch completed |
||||
|
Buat rencana |
✓ |
|||||
|
Ubah rencana |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
Hapus rencana |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
Pause |
✓ |
|||||
|
Resume |
✓ |
|||||
|
Perbarui layanan |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
Catatan penggunaan
Memodifikasi rencana Active: Parameter baru berlaku segera. Jika rencana sedang dijeda, modifikasi tersebut secara otomatis melanjutkan eksekusi.
Memodifikasi rencana Completed: Konfigurasi disimpan tetapi tidak memicu pembaruan secara otomatis. Perbarui layanan lagi untuk menerapkan rencana baru.
Menghapus rencana Active: Replika yang tersisa terus diperbarui menggunakan strategi penggantian penuh. Tidak terjadi rollback.
Scaling saat rencana pembaruan ada: Parameter rencana tetap tidak berubah dan diterapkan berdasarkan jumlah replika aktual saat eksekusi.
Mengatur jumlah batch pertama menjadi 0 dalam manual batching: Ini adalah nilai yang valid. Pembaruan layanan langsung dipicu tetapi dijeda di titik awal, menunggu Anda memajukan secara manual.
Mengatur ukuran batch ≥ jumlah total replika dalam automatic batching: Semua replika diperbarui dalam satu batch, yang setara dengan penggantian penuh.
Konfigurasi JSON
Konfigurasikan rencana pembaruan dengan mengatur parameter pada bidang metadata.rolling_strategy dalam konfigurasi JSON layanan.
Struktur konfigurasi lengkap
{
"metadata": {
"rolling_strategy": {
"max_surge": "25%",
"max_unavailable": "20%",
"partition": 5,
"paused": false,
"batch_update": {
"interval": "5m",
"batch_size": 2
}
}
}
}
Referensi bidang
|
Bidang |
Tipe |
Deskripsi |
Bawaan |
|
|
Angka atau persentase |
Jumlah maksimum replika tambahan yang diizinkan selama pembaruan |
0 |
|
|
Angka atau persentase |
Jumlah maksimum replika yang boleh tidak tersedia selama pembaruan |
20% |
|
|
Angka atau persentase |
Manual batching: jumlah replika yang diperbarui dalam batch saat ini |
— |
|
|
Boolean |
Apakah pembaruan dijeda. Berlaku untuk kedua mode. |
false |
|
|
String durasi (misalnya, |
Automatic batching: waktu tunggu antara penyelesaian satu batch dan dimulainya batch berikutnya |
— |
|
|
Angka atau persentase |
Automatic batching: jumlah replika yang diperbarui per batch |
Sama dengan |
Contoh konfigurasi
Manual batching: rilis canary
{
"metadata": {
"instance": 10,
"rolling_strategy": {
"partition": 2,
"max_unavailable": 1
}
}
}
Total 10 replika. 2 replika pertama diperbarui; 8 replika sisanya tetap pada versi lama hingga Anda memajukan rencana.
Automatic batching: layanan skala besar
{
"metadata": {
"instance": 100,
"rolling_strategy": {
"batch_update": {
"interval": "10m",
"batch_size": 5
}
}
}
}
Total 100 replika. Sistem secara otomatis memperbarui 5 replika setiap 10 menit.
Jeda darurat
{
"metadata": {
"rolling_strategy": {
"paused": true
}
}
}
Rollback cepat
{
"metadata": {
"rolling_strategy": {
"partition": 0
}
}
}
Atur partition menjadi 0 untuk melakukan rollback semua replika yang telah diperbarui ke versi sebelumnya. Cara ini berlaku untuk kedua mode: manual batching maupun automatic batching.
FAQ
T: Bagaimana cara melakukan rollback dengan cepat?
Jika Anda menemukan masalah selama pembaruan (misalnya, saat memperbarui dari V2 ke V3), gunakan pendekatan berikut untuk rollback tercepat:
Ubah rencana pembaruan ke manual batching dan atur jumlah replika target menjadi 0. Semua replika yang telah diperbarui akan melakukan rollback ke versi sebelumnya (V2).
Perbarui konfigurasi layanan (ke V4 atau versi stabil lainnya).
Modifikasi rencana pembaruan sesuai kebutuhan untuk melanjutkan rollout.
Jika pembaruan telah selesai dan semua replika menjalankan versi baru (V3), rollback melalui rencana pembaruan tidak lagi memungkinkan. Buka daftar versi layanan dan pilih versi tertentu untuk dikembalikan.
T: Apakah parameter manual batching dan automatic batching dapat diatur secara bersamaan?
Tidak. Parameter partition (manual batching) memiliki prioritas lebih tinggi. Saat partition diatur, sistem mengabaikan semua parameter automatic batching.
T: Bagaimana cara menjeda pembaruan yang sedang berjalan?
Atur paused: true. Cara ini berlaku untuk kedua mode: manual batching maupun automatic batching. Atau, klik Pause pada tooltip Update plan di Konsol.
T: Apa yang terjadi jika saya tidak mengatur ukuran batch untuk automatic batching?
Sistem menggunakan nilai max_unavailable sebagai ukuran batch.
T: Apa yang terjadi jika saya tidak mengatur interval batch untuk automatic batching?
Ukuran batch tetap berlaku, tetapi sistem tidak akan memajukan ke batch berikutnya secara otomatis. Hal ini setara dengan manual batching dan mengharuskan Anda memajukan setiap batch secara manual.