Release Strategy - Part 1
Kalau sudah mau diucapkan, ucapkan saja. Tidak perlu ditahan. Tidak ada yang perlu disembunyikan.
Lepaskan dan semuanya akan baik-baik saja.
– Suara penyimpan rasa.
Release
Kata Release dari dulu banyak menjadi momok bagi sebagian orang.
Kenapa tidak.
Release artinya melakukan deployment ke Production pada waktu tertentu.
Tentunya dengan risiko..
Yang banyak orang berdebar-debar dan terpikir untuk melakukannya.
Bagaimana kalau gagal ?
Bagaimana kalau ada hambatan waktu melakukan nya pada waktu itu ?
Bagaimana kalau ternyata setelah Release, aplikasinya tidak berjalan sesuai dengan yang diharapkan ?
Dan banyak pertanyaan bagaimana-bagaimana lainnya yang muncul di pikiran kita ketika melakukan itu.
Kenapa begitu ?
Kita lihat apa yang membuat perbedaan diantara kita melakukan deployment ke :
- DEV
- SIT
- UAT
- Pre Prod
Dengan :
- Production
Perbedaannya adalah di :
RISIKO
Melakukan deployment ke Production berarti dihadapkan kepada Risiko di level yang berbeda.
Biasanya Risiko nya adalah :
- Risiko deployment yang membuat sistem yang ada di production sekarang tidak berjalan.
- Risiko finansial karena sistem yang tidak berjalan atau mengalami error.
- Risiko reputasi dari customer terhadap sistem di production yang tidak berjalan atau mengalami error.
- Risiko bahwa sistemnya tidak bisa dikembalikan ke state sebelumnya. Jadinya sistemnya ngegantung dan tidak bisa diapa-apakan.
- dll.
Oleh karenanya maka biasanya tim IT akan mencoba untuk meminimalkan Risiko diatas dengan cara :
- Melakukan deployment diluar jam kerja.
- Membuat backup dari sistem sebelum dilakukan proses deployment.
- Membuat rollback plan kalau terjadi sesuatu dalam proses deployment.
- Membagi fitur untuk deployment menjadi deployment kecil-kecil tapi sering.
- dll.
Cara-cara diatas adalah cara tradisional yang biasanya dilakukan untuk mencegah Risiko deployment.
Tetapi dengan perkembangan dunia IT yang semakin cepat dan diharapkan semakin lincah, maka cara diatas dianggap menjadi “tetap berisiko” untuk keadaan saat ini.
Misalnya :
- Waktu yang digunakan untuk deployment, sebenarnya bisa digunakan untuk keuntungan finansial dan hal yang yang lebih berguna.
- Bekerja di luar jam kerja untuk sebuah deployment, bisa mengganggu jadwal personal dari anggota tim.
- Dengan seringnya melakukan maintenance bisa menurunkan reputasi perusahaan.
- Cara manual membutuhkan banyak waktu dan juga persiapan yang tidak sedikit.
- dll.
Lalu..
Oleh karena itu, tentunya perlu adanya cara yang lebih baik dalam melakukan proses release.
Misalnya :
- Melakukan automation dalam release. Misalnya dengan Continuous Integration (CI) dan Continuous Delivery (CD).
- Melakukan auto rollback kalau terjadi sesuatu.
- Mengakomodasi beberapa case strategi Deployment/Release.
Strategi Deployment / Release
Strategi Deployment / Release merupakan cara untuk mengakomodasi kebutuhan Release sesuai dengan kebutuhannya :
Misalnya :
- Canary Deployment
- Blue Green Deployment
- Feature Toogle Deployment
- A/B Testing Deployment
- Rolling Deployment
- dll
Tipe-tipe diatas kita bahas di artikel selanjutnya.
Cekidot.