📖 Konsep Utama Scaling
- Vertical Scaling (Scale Up): menambah kapasitas server (CPU, RAM, storage).
➡️ Mudah dilakukan, tapi ada batas fisik & biaya tinggi.
- Horizontal Scaling (Scale Out): menambah jumlah server untuk berbagi beban.
➡️ Lebih fleksibel, cocok untuk aplikasi besar.
- Load Balancer: mendistribusikan request ke beberapa server agar beban merata.
- Containerization: menggunakan Docker/Kubernetes untuk mempermudah scaling aplikasi.
- Auto-Scaling: sistem otomatis menambah/mengurangi server sesuai trafik (misalnya AWS Auto Scaling, Kubernetes HPA).
🔹 Contoh Load Balancer dengan Nginx
http {
upstream app_servers {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
}
server {
listen 80;
location / {
proxy_pass http://app_servers;
}
}
}
🔹 Contoh Auto-Scaling di Kubernetes (HPA)
kubectl autoscale deployment myapp --cpu-percent=50 --min=2 --max=10