“Kalau hidup bisa di-scale kayak Docker, kita semua udah punya 48 jam sehari.”
Kamu udah tahu cara bikin Cluster Docker Swarm, tapi…
Bagaimana kalau trafik naik tiba-tiba dan butuh lebih banyak container?
Atau…
Bagaimana kalau mau update aplikasi tapi gak mau ada downtime?
Santai, Docker Swarm punya solusinya!
Hari ini kita akan belajar tentang Scaling & Rolling Updates dalam Docker Swarm!
1. Apa Itu Scaling di Docker Swarm?
Scaling di Docker Swarm adalah kemampuan menambah atau mengurangi jumlah container yang menjalankan layanan.
Contoh Kasus:
- Trafik website naik? Tambah lebih banyak container biar tetap lancar!
- Trafik turun? Kurangi container biar hemat resource!
2. Scaling Layanan di Docker Swarm
Misalnya kita punya layanan web yang menjalankan Nginx:
docker service create --name web --replicas 3 -p 8080:80 nginx
Penjelasan:
--name web
→ Nama layanan.--replicas 3
→ Menjalankan 3 container nginx.-p 8080:80
→ Menghubungkan port 8080 host ke 80 di container.
Cek jumlah container yang berjalan:
docker service ls
Hasilnya:
ID NAME MODE REPLICAS IMAGE
abcd1234 web replicated 3/3 nginx
Sekarang layanan Nginx berjalan dengan 3 container!
Menambah Jumlah Container (Scaling Up)
Misalnya, kita mau naikkan jumlah container jadi 5:
docker service scale web=5
Cek lagi dengan:
docker service ls
Hasilnya:
ID NAME MODE REPLICAS IMAGE
abcd1234 web replicated 5/5 nginx
Sekarang ada 5 container nginx yang tersebar di berbagai node!
Mengurangi Jumlah Container (Scaling Down)
Misalnya, server sudah sepi dan kita mau hemat resource. Kurangi jumlah container jadi 2:
docker service scale web=2
Sekarang jumlah container berkurang menjadi 2! Gak ada downtime, semuanya otomatis!
3. Rolling Updates di Docker Swarm
Oke, sekarang bayangkan kamu punya versi baru dari aplikasi dan mau update tanpa downtime!
Docker Swarm bisa melakukan rolling updates!
“Rolling update itu kayak ganti ban mobil sambil jalan.”
Update Layanan Tanpa Downtime
Misalnya kita mau update Nginx dari versi terbaru ke versi 1.25:
docker service update --image nginx:1.25 web
Cek status update dengan:
docker service ps web
Hasilnya akan menunjukkan bahwa container diperbarui satu per satu, bukan semuanya sekaligus!
Docker Swarm secara otomatis:
Menjalankan container baru dengan versi baru
Menghentikan container lama satu per satu
Memastikan tidak ada downtime!
Mengontrol Rolling Update
Kita juga bisa mengatur berapa banyak container yang di-update sekaligus menggunakan flags tambahan.
Misalnya, update 1 container sekaligus dan tunggu 10 detik sebelum lanjut ke yang berikutnya:
docker service update --image nginx:1.25 --update-parallelism 1 --update-delay 10s web
Penjelasan:
--update-parallelism 1
→ Update 1 container dalam satu waktu.--update-delay 10s
→ Tunggu 10 detik sebelum update container berikutnya.
Dengan ini, update berjalan lancar tanpa gangguan!
Rollback ke Versi Sebelumnya (Kalau Ada Masalah!)
Misalnya setelah update, ternyata versi baru bikin masalah.
Gak perlu panik! Kita bisa rollback ke versi sebelumnya dengan:
docker service update --rollback web
Docker Swarm langsung mengembalikan layanan ke versi sebelumnya!
4. Melihat Riwayat Update Layanan
Biar tahu update-update yang sudah dilakukan, jalankan:
docker service inspect --pretty web
Hasilnya akan menunjukkan riwayat perubahan pada layanan.
Kesimpulan: Swarm Itu Gak Ribet!
Scaling up/down super gampang!
Rolling update tanpa downtime!
Bisa rollback kalau ada masalah!
Cocok buat aplikasi skala besar dan kecil!
Sekarang kamu sudah jadi master dalam mengelola layanan di Docker Swarm!
0 Comments