Deployment Error Dengan User Acceptance Test


Kata Deployment merupakan kata yang akrab dengan software engineering. Pada proses deployment ini software engineer sering kali menemukan kendala seperti deployment error. Tentu kegagalan dalam proses deployment sangat dihindari oleh para software engineer.

Deployment merupakan sesuatu tahapan penting dalam kegiatan bisnis proses. Hal ini butuh antisipasi yang lebih agar deployment tidak mengalami kendala. Deployment error akan menjadi sebuah masalah karena berpotensi membuat aplikasi tidak dapat berjalan, apabila aplikasi tidak berjalan seperti semestinya, bisnis pun tidak dapat berjalan dengan lancar.

Faktor penyebab sering terjadinya error yakni,
  1. Environment yang digunakan pada server satu dengan yang lain berbeda. Dalam hal ini contohnya environment pada server staging dan server production berbeda dan sering kali menyebabkan error.
  2. Kesalahan yang berasal dari human error.
    Contoh kasus seperti back-end engineer pada tahap staging menambah field untuk fitur baru tetapi ia lupa untuk menambahkan satu field baru di databasenya.

Teknik atau metode deployment sebetulnya bermacam-macam, dari bermacam jenis tersebut, Skyshi memilih menggunakan teknik Blue/Green Deployment yang mana teknik ini dapat menjalankan dua lingkungan produksi yang identik yang dikenal dengan sebutan Blue dan Green.

Teknik ini dapat menghilangkan downtime ketika melakukan deployment aplikasi. 
Selain itu, penerapan blue/green ini dapat mengurangi risiko seperti, apabila terjadi sesuatu yang tidak terduga pada versi baru di Green, aplikasi dapat segera kembali ke versi terakhir dengan beralih kembali ke Blue. 

Perubahannya sangat cepat, sekali switch service langsung berubah 100%. 
Dikarenakan perubahan yang cepat, testing harus sangat diprioritaskan sebelum di switch, aplikasi juga harus dipastikan aman dari request yang tiba-tiba muncul dan banyak.

Dalam workflow yang ideal proses deployment terdiri dari tiga environment:
  1. Development (local environment)
  2. Staging (pre-production)
  3. Production (live site)

Pada UAT fase pengujian dan dokumentasi dilakukan. Software engineer akan menguji perangkat lunak dan setiap bug potensial atau masalah lainnya. Kemudian software engineer melakukan perbaikan di mana mereka membuat penyesuaian pada kode, menyelesaikan bug atau membuat perubahan yang disarankan.

Ndaru mengatakan “sekarang kita juga pake Kubernetes dan Docker, kita berusaha nyamain environment di server staging maupun di production. Kalau udah sama biasanya hampir 90% kegiatan deployment berjalan lancar dan tidak mengalami kegagalan.”

Selain menambah aplikasi-aplikasi untuk meminimalisir error pada deployment, Project Manager Skyshi Digital Indonesia, Prima menyampaikan ada beberapa hal yang dapat dilakukan software engineer itu sendiri untuk meminimalisir deployment error.

Software engineer harus sering berfikir untuk defensif code. Secara mandiri software engineer harus dapat menerapkan case apa saja yang akan terjadi. Ia harus melihat user behavior lainnya selain dari user-flow yang sudah ada.

Kemudian jauh sebelum jadwal deployment, software engineer harus menyelesaikan semua permasalahan atau defendensi antara klien dan development.

Sebelum melakukan deployment, software engineer juga harus melihat data dimana waktu terbaik untuk melakukan deployment agar terhindar dari server down. Waktu yang tepat untuk melaksanakan deployment yakni ketika aktivitas user rendah.

Mengucapkan terima kasih kepada setiap tim atau software engineer yang bertugas dan bersedia untuk deployment baik lancar maupun terdapat kendala. Prima menuturkan bahwa ini merupakan hal diluar teknis namun akan berdampak besar bagi diri software engineer tersebut. Pentingnya mengapresiasi software engineer merupakan salah satu cara agar mereka tetap bertahan pada profesi yang dijalankan.

Hal berikut merupakan salah satu cara meminimalisir deployment error. Strategi ini bisa digunakan untuk mempermudah software engineer dalam menjalankan pekerjaan, apabila minim error tentu akan lebih meringankan pekerjaan software engineer dan mereka dapat memaksimalkan pekerjaan lainnya. Dalam pengerjaan sistem memang tidak bisa selalu sempurna, namun dengan menggunakan strategi atau teknik-teknik yang dinilai baik dapat meminimalisir bencana atau hal yang tidak diinginkan, termasuk ketika melakukan deployment.

Source : SkyshiDgital
Powered by Blogger.