SAE secara otomatis melakukan scale-out instans aplikasi dalam hitungan detik saat puncak trafik tiba dan melakukan scale-in setelah puncak berakhir untuk memastikan aplikasi Anda berjalan lancar. Fitur ini andal, bebas O&M, dan hemat biaya. Sebagai contoh, dalam menghadapi promosi e-commerce, Anda dapat men-deploy aplikasi, mengonfigurasi aturan auto scaling, memantau dan menyesuaikan kebijakan secara real time, serta melakukan optimasi O&M lanjutan. Seluruh proses ini memastikan platform Anda merespons kebutuhan pengguna secara efisien dan stabil.
Alur kerja auto scaling
Alur kerja end-to-end untuk skenario auto scaling SAE ditunjukkan pada gambar berikut.

Persiapkan aplikasi Anda
Konfigurasikan pemeriksaan kesehatan (health check): Untuk memastikan ketersediaan aplikasi secara keseluruhan selama auto scaling. Pemeriksaan kesehatan hanya mengarahkan trafik ke instans setelah instans tersebut telah dimulai dan siap melayani permintaan. Untuk informasi lebih lanjut, lihat Set a health check.
Konfigurasikan manajemen siklus hidup aplikasi: Pastikan shutdown yang mulus (graceful shutdown) selama event scale-in dengan mengonfigurasi PreStop Settings. Untuk informasi lebih lanjut, lihat Set up application lifecycle management.
Terapkan mekanisme exponential backoff untuk panggilan layanan di aplikasi Java Anda guna mencegah kegagalan akibat penundaan penskalaan, startup lambat, atau tidak adanya graceful shutdown.
Optimalkan kecepatan startup aplikasi Anda.
Optimasi paket: Percepat waktu startup aplikasi dengan meminimalkan faktor eksternal seperti class loading dan caching.
Optimasi image: Kurangi ukuran image untuk memperpendek waktu pull saat membuat instans baru. Anda dapat menggunakan tool open-source untuk menganalisis dan menyederhanakan layer image.
Optimasi startup aplikasi Java: Aktifkan akselerasi aplikasi saat membuat aplikasi di SAE dengan memilih lingkungan Dragonwell 11.
Konfigurasi kebijakan auto scaling
Pilih metrik penskalaan
SAE mendukung berbagai metrik dari Basic Monitoring dan Application Monitoring. Anda dapat mengonfigurasi metrik ini secara fleksibel berdasarkan apakah aplikasi Anda bersifat CPU-intensive, memory-intensive, atau I/O-intensive.
Tinjau data historis metrik terkait dari Basic Monitoring dan Application Monitoring (seperti nilai puncak, P95, atau P99 selama 6 jam, 12 jam, 1 hari, atau 7 hari terakhir) untuk memperkirakan nilai target. Gunakan tool pengujian beban seperti Performance Testing Service (PTS) untuk mengevaluasi kapasitas puncak aplikasi Anda dengan menentukan batas permintaan konkuren, kebutuhan sumber daya (CPU dan memori), serta perilaku respons di bawah beban tinggi.
Saat mengonfigurasi kebijakan auto scaling, pertimbangkan faktor-faktor berikut:
Seimbangkan ketersediaan dan biaya saat menetapkan nilai target metrik. Contohnya:
Strategi yang dioptimalkan untuk ketersediaan: Tetapkan nilai metrik ke 40%.
Strategi seimbang: Tetapkan nilai metrik ke 50%.
Strategi yang dioptimalkan untuk biaya: Tetapkan nilai metrik ke 70%.
Tinjau dependensi seperti layanan hulu dan hilir, middleware, serta database. Konfigurasikan kebijakan auto scaling yang sesuai atau mekanisme throttling dan degradasi untuk memastikan ketersediaan end-to-end selama event scale-out.
Setelah mengonfigurasi kebijakan auto scaling, Anda dapat memantau dan menyesuaikannya agar kapasitas lebih selaras dengan beban aplikasi aktual. Untuk informasi lebih lanjut tentang pemantauan, lihat View Basic Monitoring data.
Konfigurasi metrik memori
Untuk aplikasi Java, optimasi waktu proses (runtime) meningkatkan korelasi antara metrik memori dan beban bisnis dengan melepaskan memori fisik. Dengan menggunakan runtime Dragonwell dan menambahkan parameter JVM untuk mengaktifkan fitur ElasticHeap, Anda dapat mendukung skalabilitas dinamis heap memory Java. Hal ini mengurangi konsumsi memori fisik aplikasi Anda saat runtime. Untuk informasi lebih lanjut tentang ElasticHeap, lihat G1ElasticHeap.
Kami merekomendasikan mode Dragonwell+ElasticHeap Periodic uncommit (otomatis). Untuk langkah-langkah detail, lihat Deploy a Java application dan Set a startup command.
Lingkungan Java: Di bagian Configure JAR Package, pilih konfigurasi Dragonwell dari daftar drop-down Java Environment.

Parameter JVM: Di bagian Startup Command Settings, masukkan -XX:+ElasticHeapPeriodicUncommit.

Penskalaan berbasis memori tidak cocok untuk beberapa aplikasi yang menggunakan manajemen memori dinamis, seperti aplikasi yang bergantung pada manajemen memori Java JVM atau operasi Glibc Malloc dan Free. Jika aplikasi tersebut tidak segera melepaskan memori idle ke sistem operasi, konsumsi memori instans tidak berkurang secara real time. Keterlambatan ini juga dapat mencegah pemicuan event scale-in karena rata-rata konsumsi memori di seluruh instans tetap tinggi.
Konfigurasi jumlah instans
Instans minimum
Tetapkan instans minimum menjadi 2 atau lebih, dan konfigurasikan vSwitch di beberapa zona. Pengaturan ini mencegah downtime aplikasi jika suatu instans di-evict akibat kegagalan node dasar atau jika tidak tersedia instans di suatu zona.
Instans maksimum
Pastikan jumlah instans maksimum kurang dari atau sama dengan jumlah alamat IP yang tersedia di vSwitch. Hal ini mencegah kegagalan scale-out akibat kekurangan alamat IP.
Periksa jumlah alamat IP yang tersedia untuk aplikasi saat ini di bagian Application Information pada halaman Basic Information. Jika jumlah alamat IP yang tersedia rendah, ganti atau tambahkan vSwitch.

Amati proses auto scaling
Batas instans maksimum
Di halaman Overview aplikasi, Anda dapat melihat status auto scaling-nya. Pantau aplikasi yang mencapai batas instans maksimum dan evaluasi ulang konfigurasi auto scaling-nya.

Jika satu aplikasi perlu melakukan scale-out lebih dari 50 instans, bergabunglah dengan grup DingTalk (ID grup: 32874633) untuk mengajukan permohonan allowlist.
Penyeimbangan ulang zona
Setelah event scale-in, instans mungkin tersebar tidak merata di berbagai zona. Anda dapat melihat zona masing-masing instans di daftar instans pada halaman Basic Information aplikasi. Jika distribusinya tidak seimbang, Anda dapat memicu penyeimbangan ulang zona dengan melakukan Restart pada suatu instans.

Pemulihan otomatis
Saat Anda melakukan change order, seperti men-deploy aplikasi, SAE sementara menghentikan kebijakan auto scaling untuk aplikasi tersebut guna mencegah konflik. Jika Anda ingin kebijakan tersebut dipulihkan setelah change order selesai, pilih Automatic di halaman Deploy Application.

Maintenance auto scaling
Event aplikasi
Di halaman Application Events untuk aplikasi target, Anda dapat mengamati perilaku auto scaling SAE, termasuk waktu dan jenis aksi penskalaan. Gunakan informasi ini untuk mengevaluasi efektivitas kebijakan auto scaling Anda dan melakukan penyesuaian jika diperlukan. Untuk informasi lebih lanjut, lihat View application events.

Grafik tren instans aplikasi
Di halaman Basic Information aplikasi, tab Basic Information berisi Application Instance Trend Chart. Grafik ini menampilkan metrik pemantauan selama 7 hari terakhir, termasuk utilisasi CPU, penggunaan memori, koneksi TCP aktif, permintaan layanan, dan waktu respons rata-rata.
