Cara Melakukan Rollback Saat Deploy

Cara Melakukan Rollback Saat Deploy: Jangan Panik, Ini Langkahnya!

Pernah nggak sih, kamu baru aja deploy fitur baru, eh malah muncul error di mana-mana? Atau tiba-tiba user pada ngeluh aplikasi lemot? Tenang, itu udah jadi makanan sehari-hari para developer. Nah, di sinilah pentingnya punya rencana rollback—kembali ke versi sebelumnya yang stabil. Kayak punya tombol undo di kehidupan nyata.

Tapi sayangnya, banyak yang masih panik pas harus rollback. Padahal caranya nggak serumit yang dibayangin. Yuk, kita bahas beberapa cara simpel dan santai buat rollback saat deploy.

1. Rollback Manual: Copy-Paste File Lama

Ini cara paling klasik, cocok buat yang masih pakai deployment sederhana (misal via FTP atau SCP). Kamu tinggal punya backup folder project sebelum deploy. Kalau terjadi masalah, langsung replace file yang baru dengan yang lama.

Langkah-langkah:
– Pastikan kamu nyimpen folder versi sebelumnya (biasanya di `releases/` atau folder backup).
– Hapus atau rename folder yang bermasalah.
– Ganti dengan folder lama.
– Restart service (misal `pm2 restart` atau `systemctl restart nginx`).

Kelebihan: Simpel, nggak butuh alat khusus.
Kekurangan: Rentan human error, apalagi kalau file yang diupdate banyak.

2. Pakai Git: Reset & Deploy Ulang

Buat yang udah pakai Git, ini jurus andalan. Intinya, kita balik ke commit sebelumnya yang aman, terus deploy ulang.

Langkah-langkah:
1. Cek log commit: `git log –oneline`
2. Pilih commit hash yang stabil, misal `abc1234`.
3. Reset cabang utama ke commit itu: `git reset –hard abc1234`
4. Push ulang: `git push –force origin main` (hati-hati dengan force push, pastikan timmu setuju).
5. Deploy seperti biasa.

Tips: Kalau nggak mau force push, cukup deploy dari branch terpisah. Atau pakai `git revert` untuk membuat commit baru yang membalikkan perubahan.

Kelebihan: Riwayat tetap rapi, bisa selektif.
Kekurangan: Butuh disiplin commit yang baik.

3. Zero-Downtime Rollback ala Docker & Kubernetes

Kalau pakai container orchestration seperti Kubernetes, rollback bisa semudah menjalankan satu perintah. Ini karena Kubernetes punya mekanisme rolling update dan rollback bawaan.

Langkah-langkah di Kubernetes:
– Cek riwayat rollout: `kubectl rollout history deployment/nama-deployment`
– Pilih revisi sebelumnya: `kubectl rollout undo deployment/nama-deployment –to-revision=2`

Untuk Docker Swarm:
– `docker service update –rollback nama-service`

Kelebihan: Otomatis, nggak perlu intervensi manual, aplikasi tetap jalan (zero-downtime kalau konfigurasi benar).
Kekurangan: Infrastruktur agak kompleks for newbie.

4. Pakai CI/CD Pipeline (GitHub Actions, GitLab CI, dll)

Biar makin canggih, kamu bisa bikin pipeline yang otomatis rollback kalau ada error. Misalnya, setelah deploy, jalankan smoke test. Kalau gagal, pipeline langsung memicu rollback.

Contoh flow di GitLab CI:
“`yaml
deploy:
script:
– deploy-script.sh
after_script:
– if [ “$CI_JOB_STATUS” == “failed” ]; then rollback-script.sh; fi
“`

Kelebihan: Hemat waktu, mengurangi human error.
Kekurangan: Perlu setup extra.

5. Rollback Database: Jangan Dilupakan!

Seringkali rollback aplikasi doang nggak cukup karena database juga ikut berubah. Misalnya, kamu hapus kolom di tabel, lalu aplikasi lama butuh kolom itu. Waduh.

Langkah-langkah untuk database:

Buatlah migration yang reversible. Contoh pakai Flyway atau Liquibase:
– Setiap migration harus punya script `undo` atau `down`.
– Simpan backup database sebelum deploy.
– Pakai fitur point-in-time recovery (PITR) kalau butuh.

Kalau terpaksa, ambil dump manual sebelum deploy: `pg_dump -U user db > backup_$(date +%Y%m%d).sql`. Kalau error, restore: `psql -U user db < backup.sql`.

Tips Tambahan Biar Nggak Sakit Hati Saat Rollback

1. Selalu backup sebelum deploy. Iya, ini klise, tapi banyak yang skip.
2. Gunakan fitur feature toggle. Jadi kamu bisa matiin fitur baru tanpa harus rollback total.
3. Pastikan tim tahu prosedurnya. Jangan sampai pas krisis malah tanya-tanya di grup.
4. Catat apa yang berubah. Saat rollback, kamu harus tahu file mana yang diganti.
5. Jangan malu rollback. Kadang lebih baik mundur selangkah daripada maju terus tapi jatuh ke jurang.

Kesimpulan

Rollback bukanlah kegagalan, melainkan bagian dari proses belajar. Setiap kali kamu rollback, artinya kamu semakin paham batas aplikasimu. Jadi, jangan panik. Pilih metode yang sesuai dengan stack-mu, siapkan backup, dan latih tim untuk menjalankannya dengan tenang.

Ingat, developer hebat bukan yang nggak pernah error, tapi yang punya rencana buat pulih dari error. Selamat mencoba, dan semoga deploy-mu selalu mulus! 😊

Leave a Comment

PETIR800 LOGIN PETIR800 Mahjong Wins 3 Dan Pengalaman Online Yang Sering Dibahas Mahjong Ways Kembali Muncul Di Percakapan Pengguna Platform Mahjong Wins 3 Menjadi Topik Ringan Yang Lagi Ramai Mahjong Ways Menjadi Bagian Dari Tren Komunitas Modern Mahjong Wins 3 Kembali Jadi Bahan Diskusi Media Online Mahjong Ways Dan Fenomena Pemain Platform Digital Mahjong Wins 3 Menjadi Topik Yang Sering Muncul Online Pemain Online Kembali Menyoroti Pola Mahjong Ways Mahjong Wins 3 Dan Obrolan Ringan Komunitas Digital Mahjong Ways Kembali Menarik Rasa Penasaran Pengguna Online Mahjong Wins 3 Menjadi Sorotan Pengguna Media Sosial Mahjong Ways Dan Topik Platform Online Yang Semakin Aktif Mahjong Ways Dan Gaya Baru Komunitas Pemain Online Mahjong Wins 3 Kembali Menjadi Topik Ringan Media Digital Pengguna Platform Online Menyoroti Keunikan Mahjong Ways Mahjong Wins 3 Dan Tren Komunitas Yang Terus Bertambah Mahjong Ways Kembali Jadi Percakapan Harian Pemain Mahjong Wins 3 Menjadi Bagian Dari Fenomena Online Modern Mahjong Ways Dibicarakan Karena Ciri Khas Visualnya Mahjong Wins 3 Kembali Muncul Di Forum Komunitas Digital