Mekanisme Scaling pada Apache Aurora
Apache Aurora adalah sistem manajemen layanan yang berjalan di atas Apache Mesos untuk menjadwalkan layanan jangka panjang dan tugas cron. Scaling dalam ekosistem Aurora tidak dilakukan secara otomatis oleh Aurora itu sendiri, melainkan melalui integrasi dengan Mesos dan konfigurasi parameter instances dalam file konfigurasi .aurora. Scaling dilakukan dengan mengubah jumlah replika (instance) dari sebuah job untuk menangani beban kerja yang meningkat atau menurun.
Konfigurasi Scaling via File .aurora
Untuk melakukan scaling, Anda harus memodifikasi jumlah instance dalam file konfigurasi dan melakukan update pada job yang sedang berjalan. Aurora akan secara otomatis melakukan rolling update untuk mencapai jumlah instance yang diinginkan tanpa menghentikan layanan secara total.
# Contoh konfigurasi untuk scaling
job = Service(
name = 'my-service',
instances = 10, # Ubah angka ini untuk scaling
task = task,
role = 'www-data',
environment = 'prod',
)
Setelah mengubah file konfigurasi, jalankan perintah berikut melalui Aurora Client:
aurora job update cluster/role/env/jobname config.auroraTabel Parameter Scaling dan Resource
| Parameter | Fungsi | Dampak Scaling |
|---|---|---|
| instances | Jumlah replika task | Meningkatkan kapasitas throughput |
| cpus | Alokasi core CPU per task | Meningkatkan performa komputasi |
| ram | Alokasi memori per task | Meningkatkan kapasitas data in-memory |
| disk | Alokasi penyimpanan | Meningkatkan kapasitas I/O |
Strategi Scaling Efektif
Dalam lingkungan produksi, scaling Apache Aurora harus memperhatikan beberapa aspek teknis agar tidak terjadi ketidakstabilan pada klaster:
- Rolling Updates: Aurora menggunakan mekanisme update bertahap. Pastikan parameter
max_per_shard_failuresdanmax_total_failuresdiatur dengan benar agar proses scaling tidak terhenti jika satu instance gagal start. - Resource Quotas: Pastikan klaster Mesos memiliki kapasitas resource yang cukup sebelum melakukan scaling ke atas (scale-up). Jika resource tidak mencukupi, task akan tetap dalam status
PENDING. - Health Checks: Selalu sertakan konfigurasi
health_check_configagar Aurora dapat memastikan instance baru sudah siap melayani trafik sebelum mematikan instance lama.
Troubleshooting Scaling
Jika proses scaling tidak berjalan sesuai harapan, periksa log scheduler Aurora. Masalah umum biasanya terjadi karena ketidakcocokan resource (misalnya, request RAM melebihi kapasitas node yang tersedia di Mesos) atau kegagalan pada script startup aplikasi yang menyebabkan task terus-menerus restart (crash loop).