Tutorial Blue-Green Deployment dengan NGINX
Hai, teman-teman! Kali ini kita bakal bahas tentang Blue-Green Deployment menggunakan NGINX. Buat yang belum tau, Blue-Green Deployment itu adalah teknik deploy aplikasi yang meminimalisir downtime dan risiko kegagalan. Caranya? Dengan punya dua lingkungan yang identik, yaitu Blue (produksi) dan Green (staging). Nah, NGINX bakal jadi traffic switcher kita. Yuk, simak langkah-langkahnya!
1. Persiapan Lingkungan
Pertama, pastikan kamu punya dua lingkungan yang siap dipakai:
- Blue: Lingkungan produksi yang sedang berjalan.
- Green: Lingkungan staging yang siap di-deploy versi baru.
Kedua lingkungan ini harus identik, cuma beda versi aplikasinya aja. Misalnya, Blue jalanin versi 1.0, Green jalanin versi 2.0.
2. Konfigurasi NGINX
NGINX bakal jadi reverse proxy yang ngarahin traffic ke Blue atau Green. Kita bisa pake konfigurasi upstream di NGINX.
Buka file konfigurasi NGINX (biasanya di /etc/nginx/nginx.conf
atau /etc/nginx/sites-available/default
), terus tambahin upstream buat Blue dan Green:
upstream blue {
server blue.example.com:8080;
}
upstream green {
server green.example.com:8080;
}
Terus, atur server
block untuk ngarahin traffic ke upstream yang aktif. Misalnya, kita mulai dengan Blue sebagai aktif:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://blue;
}
}
3. Deploy ke Green
Sekarang, deploy versi baru ke lingkungan Green. Pastikan Green udah siap dan berjalan dengan baik. Kalo udah, kita bisa mulai testing di Green tanpa gangguin Blue.
4. Switch Traffic ke Green
Kalo Green udah siap dan lolos testing, saatnya switch traffic dari Blue ke Green. Caranya, ubah konfigurasi NGINX:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://green;
}
}
Terus, reload NGINX biar konfigurasi baru keapply:
sudo nginx -s reload
Sekarang, semua traffic bakal diarahin ke Green. Kalo ada masalah, kita bisa balik lagi ke Blue dengan ganti proxy_pass
ke http://blue
dan reload NGINX lagi.
5. Update Blue
Setelah Green berjalan lancar, saatnya update Blue biar sama kaya Green. Deploy versi baru ke Blue, terus lakukan testing lagi. Kalo udah oke, kita bisa balikin traffic ke Blue atau biarin di Green, tergantung kebutuhan.
6. Otomatisasi dengan Script
Biar lebih cepet, kita bisa bikin script buat switch traffic. Misalnya, bikin script switch-to-green.sh
:
#!/bin/bash
sed -i 's/proxy_pass http:\/\/blue;/proxy_pass http:\/\/green;/g' /etc/nginx/sites-available/default
sudo nginx -s reload
Dan script switch-to-blue.sh
:
#!/bin/bash
sed -i 's/proxy_pass http:\/\/green;/proxy_pass http:\/\/blue;/g' /etc/nginx/sites-available/default
sudo nginx -s reload
Jadi, kalo mau switch, tinggal jalanin scriptnya aja.
7. Monitoring dan Rollback
Jangan lupa monitor aplikasi setelah deploy. Kalo ada masalah, rollback ke versi sebelumnya dengan switch traffic balik ke Blue. Ini yang bikin Blue-Green Deployment aman, karena kita selalu punya fallback.
Nah, gampang kan? Dengan Blue-Green Deployment pake NGINX, kita bisa deploy aplikasi dengan lebih aman dan minim downtime. Selamat mencoba!