Automatic Deployment

Khoirul Khuluqi Abdulloh
Scrum Booster
Published in
3 min readApr 30, 2019

Dalam pengembangan perangkat lunak, kita perlu men-deploy hasil dari pengembangan kita supaya dapat digunakan oleh khalayak umum. Bayangkan ketika mengembangkan suatu perangkat lunak, kita perlu mendeploy secara manual setiap ada update. Tentu hal tersebut sangatlah menghabis-habiskan waktu. Oleh karena itu otomisasi adalah hal yang tidak dapat terpisahkan dalam pengembangan perangkat lunak. Salah satu tools yang dapat digunakan adalah Docker. Docker adalah sebuah tool untuk menjalankan aplikasi di environment yang terisolasi. Ketika menggunakan Docker, kita mendapatkan beberapa advantage layaknya menggunakan virtual machine.

Pada perkuliahan PPL ini kami menggunakan Docker untuk deployment source code backend yang berupa web service. Kami membuat sebuah docker image yang berisi konfigurasi dan source code dari backend. Selanjutnya, image tersebut disimpan dalam sebuah docker registry yang disediakan oleh pihak PPL Fasilkom UI.

Terdapat perbedaan antara Docker dengan virtual machine. Yaitu setiap app dijalankan dengan kernel yang sama, sedangkan pada virtual macine setiap app mempunyai kernelnya masing-masing. Dengan hal ini, Docker terdapat beberapa kelebihan seperti menghemat IT management resources, lebih cepat memutar aplikasi, pembaruan keamanan yang disederhanakan, kode yang perlu ditransfer lebih sedikit, dan sebagainya.

Hasil gambar untuk docker

Terdapat beberapa istilah pada Docker :

  1. Containers : “Running instance of image”. Semua kode dan environment dibungkus dalam container. Setiap container terisolasi dari container lainnya.
  2. image : “Template for creating the environment”. Image digunakan untuk menyimpan dan mengirim aplikasi.
  3. Dockerfile : list of step untuk membuat suatu docker image.

Untuk keperluan pengaturan dan konfigurasi dari image dan container yang dimiliki oleh Scrum Booster, kami menggunakan sebuah docker image & container management system berbasis GUI yang bernama Portainer. Pihak PPL Fasilkom UI menyediakan Docker Registry yang dapat kami gunakan.

Docker Container pada Scrum Booster dibagi menjadi 2, yaitu staging dan development.

Untuk dapat mengotomisasi pen-deploy-an produk, kita memerlukan file .gitlab-ci.yml. Jika kita menambahkan file .gitlab-ci.yml pada root directory di repository kita dan melakukan konfigurasi pada projek GitLab untuk menggunakan Runner, maka tiap commit atau push akan men-trigger CI pipeline. File .gitlab-ci.yml akan memberi tahu GitLab Runner apa saja yang perlu dilakukan. Berikut isi dari file .gitlab-ci.yml pada aplikasi Scrum Booster.

--

--