Traffic aplikasi tidak pernah konstan. Pagi hari sepi, siang mulai ramai, malam bisa tiba-tiba spike karena promo atau viral. Kalau pod kamu cuma satu dengan spec tetap, hasilnya? Saat traffic naik, response time melambat. Saat traffic turun, resource terbuang percuma.
Horizontal Pod Autoscaler (HPA) hadir di Helipod untuk menyelesaikan masalah ini — pod kamu otomatis menambah replica saat load meningkat, dan mengurangi replica saat load turun. Semua terjadi secara real-time tanpa intervensi manual.
Apa Itu HPA?
HPA adalah fitur yang memantau resource usage pod kamu (CPU dan Memory) dan secara otomatis mengatur jumlah replica berdasarkan threshold yang kamu tentukan.
Cara kerjanya simpel:
- Kamu set Max Replicas — batas maksimal jumlah pod yang bisa dijalankan
- Kamu set CPU Threshold — misalnya 70%, artinya jika CPU rata-rata semua replica melebihi 70%, HPA akan tambah replica
- Kamu set RAM Threshold — sama seperti CPU, tapi berdasarkan penggunaan memory
- Saat load turun di bawah threshold, HPA otomatis mengurangi replica
HPA memastikan aplikasi kamu selalu punya cukup resource untuk handle traffic, sekaligus tidak over-provisioned saat sepi.
Kenapa HPA Penting?
Tanpa HPA, kamu punya dua pilihan buruk:
- Spec tetap, replica tetap — kalau traffic spike, app down. Kalau traffic sepi, resource terbuang.
- Manual scaling — kamu harus pantau metrics terus dan ubah replica manual. Ribet dan tidak real-time.
Dengan HPA, keduanya teratasi. Pod kamu adaptive — mengikuti traffic tanpa kamu perlu monitor 24/7.
| Tanpa HPA | Dengan HPA |
|---|---|
| Spec tetap, over/under-provisioned | Spec adaptive sesuai traffic |
| Manual tambah/kurangi replica | Otomatis berdasarkan threshold |
| Response time naik saat spike | Response time tetap stabil |
| Resource terbuang saat sepi | Replica berkurang, biaya hemat |
Cara Mengaktifkan HPA
Langkah 1: Buka Settings Pod
- Klik service di canvas dashboard
- Buka tab Settings
- Scroll ke bagian Scaling & Resources
Langkah 2: Aktifkan HPA Toggle
Di bagian HPA (Horizontal Pod Autoscaler), nyalakan toggle untuk mengaktifkan fitur ini.
Catatan: HPA tidak tersedia untuk pod yang memiliki volume mounted. Hapus volume terlebih dahulu untuk mengaktifkan autoscaling.
Langkah 3: Konfigurasi Threshold
Setelah toggle aktif, kamu akan melihat tiga pengaturan dalam satu baris:
| Pengaturan | Range | Keterangan |
|---|---|---|
| Max Replicas | 2 – 20 | Jumlah maksimal replica yang bisa dijalankan HPA |
| CPU Threshold | 10% – 90% | Target CPU usage untuk trigger scaling |
| RAM Threshold | 10% – 90% | Target RAM usage untuk trigger scaling |
Rekomendasi setting untuk memulai:
- Max Replicas: 3 (mulai dari kecil, naikkan jika perlu)
- CPU Threshold: 70% (balance antara performance dan cost)
- RAM Threshold: 80% (RAM lebih stabil, threshold bisa lebih tinggi)
Langkah 4: Save dan Tunggu
Klik Save. HPA akan aktif dalam beberapa detik. Kamu bisa memantau replica count di tab Metrics untuk melihat HPA bekerja.
Contoh Skenario HPA
Skenario 1: Web App dengan Traffic Harian
- Pod: 1 vCPU, 1GB RAM
- HPA: Max 3 replicas, CPU 70%, RAM 80%
- Pagi (sepi): 1 replica, CPU 20% → tidak ada scaling
- Siang (ramai): CPU naik ke 75% → HPA tambah ke 2 replica
- Malam peak: CPU 80% → HPA tambah ke 3 replica
- Malam sepi: CPU turun ke 15% → HPA kurangi ke 1 replica
Skenario 2: API Backend dengan Spike Tak Terduga
- Pod: 0.5 vCPU, 512MB RAM
- HPA: Max 5 replicas, CPU 60%
- Normal: 1 replica cukup
- Promo mendadak: Traffic 10x → CPU 85% → HPA langsung scale ke 5 replica
- Setelah promo: CPU turun → HPA kembali ke 1 replica
HPA vs Manual Scaling
| Aspek | HPA | Manual Scaling |
|---|---|---|
| Kecepatan | Real-time (detik) | Butuh waktu (menit-jam) |
| Akurasi | Berdasarkan metrics actual | Berdasarkan estimasi |
| Biaya | Efisien (scale saat perlu) | Sering over-provisioned |
| Usaha | Set and forget | Perlu monitoring terus |
| Resiko | Minimal | Over/under-scale |
Tips Menggunakan HPA
1. Mulai dengan Max Replicas kecil
Jangan langsung set max 20. Mulai dari 3-5, pantau behavior HPA selama beberapa hari, baru naikkan jika memang dibutuhkan.
2. Jangan set threshold terlalu rendah
CPU threshold 30% artinya HPA akan sering scale up dan scale down (thrashing). Ini justru menambah overhead. Gunakan 60-70% sebagai starting point.
3. Pastikan app stateless
HPA menambah replica — artinya ada beberapa instance app kamu berjalan bersamaan. Pastikan session dan state disimpan di database atau Redis, bukan di memory pod.
Baca lebih lanjut tentang membuat app stateless di Scaling CPU & Memory di Helipod.
4. Gunakan persistent volume untuk data
Kalau app kamu butuh menyimpan file, gunakan persistent volume atau object storage. Jangan simpan file di local disk container karena replica baru tidak punya file yang sama.
5. Monitor di tab Metrics
Pantau replica count, CPU, dan Memory di tab Metrics untuk melihat HPA bekerja. Jika replica naik-turun terus-menerus (thrashing), naikkan threshold sedikit.
Limitasi HPA
- HPA tidak tersedia untuk pod dengan volume mounted — ini limitasi teknis saat ini. Hapus volume untuk mengaktifkan HPA.
- HPA tidak untuk database pods — database sebaiknya di-scale vertically (tambah CPU/RAM), bukan horizontally.
- HPA butuh app stateless — jika app menyimpan state di memory, scaling horizontal akan menyebabkan data inconsistency.
Bonus Top-up 25%
Untuk merayakan launch fitur HPA, kami memberikan bonus top-up 25% untuk semua deposit selama periode promosi berlangsung. Deposit Rp 100.000 jadi Rp 125.000. Saldo tidak hangus dan bisa digunakan untuk semua resource di Helipod.
Kesimpulan
HPA membuat pod kamu smart — scale up saat butuh, scale down saat sepi. Tidak perlu panik saat traffic spike, tidak perlu bayar lebih saat sepi. Setting sekali, dan biarkan HPA bekerja.
Aktifkan HPA di pod kamu sekarang dan rasakan bedanya.
Baca juga:
Punya pertanyaan? Hubungi kami di support@helipod.id atau bergabung ke komunitas di hangar.helipod.io.