Saat layanan EAS diskalakan menjadi puluhan atau ratusan replika, pembaruan rolling penuh membawa risiko penerapan yang signifikan karena tidak menyediakan kontrol per batch atau 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 (partisi)
Auto-Batching (Pembaruan Batch)
Kontrol
Sepenuhnya manual; Anda yang memajukan setiap batch
Sistem memajukan batch secara otomatis setelah dikonfigurasi
Beban operasional
Lebih tinggi
Lebih rendah
Fleksibilitas
Tertinggi
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: Bagian Update Plan pada tab Auto Scaling di halaman detail layanan menampilkan status real-time, progres, hitungan mundur batch, dan informasi penting lainnya.
Mulai cepat
Contoh berikut menjelaskan langkah-langkah 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.
Klik tab Auto Scaling, lalu di bagian Update Plan, klik Create Update Plan.
Pada panel yang muncul dari sisi kanan, pilih Manual Batching dan atur Update Instance Count menjadi
2/10.Klik OK.
Setelah rencana pembaruan dibuat, bagian Update Plan menampilkan status sebagai Pending.(Currently pending: The configuration is saved and will be executed as scheduled after you submit the change in 'Update Service'.)
Langkah 2: Picu pembaruan
Klik Update pada halaman detail layanan dan kirimkan konfigurasi layanan baru.
Sistem memulai pembaruan sesuai rencana: pertama memperbarui 2 replika, lalu berhenti dan menunggu. Bagian Update plan 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, modifikasi rencana dan atur jumlah replika target menjadi 10. Sistem akan memperbarui 8 replika sisanya hingga pembaruan selesai.
Jika ditemukan masalah, modifikasi 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 phase, dan tingkat kedua adalah stage (yang hanya ada saat phase-nya Active).
Not configured: Tidak ada rencana pembaruan. Memperbarui layanan akan memicu penggantian penuh.
Pending: Rencana telah dibuat dan menunggu pembaruan layanan untuk diaktifkan.
Active: Pembaruan telah dipicu dan sistem sedang mengganti replika secara bertahap. Terdapat tiga stage dalam Active:
Current batch executing: Batch sedang berjalan; jumlah 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: 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:
Operasi | Not configured | Pending | Active | Completed | ||
Current batch executing | Current batch paused | Current batch completed | ||||
Create plan | ✓ | |||||
Modify plan | ✓ | ✓ | ✓ | ✓ | ✓ | |
Delete plan | ✓ | ✓ | ✓ | ✓ | ✓ | |
Pause | ✓ | |||||
Resume | ✓ | |||||
Update service | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Catatan penggunaan
Memodifikasi rencana Active: Parameter baru langsung berlaku. Jika rencana sedang dijeda, modifikasi tersebut secara otomatis melanjutkannya.
Memodifikasi Rencana yang Telah Selesai: Konfigurasi disimpan, tetapi tidak memicu pembaruan otomatis. Lakukan pembaruan layanan lagi untuk menerapkan rencana baru.
Menghapus rencana Active: Replika yang tersisa tetap 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. Ini berlaku untuk kedua mode, baik 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:
Alihkan 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 apa pun).
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. Ini berlaku untuk kedua mode, baik manual batching maupun automatic batching.
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. Ini setara dengan manual batching dan mengharuskan Anda memajukan setiap batch secara manual.