Panduan Linux

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:

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!

#Nginx #Tutorial