Advertisement

Mengelola Layanan di Swarm: Scaling & Rolling Updates – Docker Swarm Level Dewa!

 “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! 

Post a Comment

0 Comments