⚖️ Scaling

Level: Advanced

Scaling adalah proses meningkatkan kapasitas aplikasi agar mampu menangani lebih banyak pengguna atau beban kerja. Bayangkan scaling seperti menambah kursi di restoran: saat pelanggan semakin banyak, kita bisa menambah kursi (server) atau memperbesar meja (upgrade server).

📖 Konsep Utama Scaling

🔹 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

🛠️ Praktik Kecil

Buat dua instance aplikasi Node.js di port berbeda (3000 & 3001), lalu gunakan Nginx sebagai load balancer untuk mendistribusikan request.

🎮 Mini Challenge

Buat sistem sederhana dengan scaling:

Tugas tambahan: Implementasikan auto-scaling menggunakan Docker Swarm atau Kubernetes Horizontal Pod Autoscaler.