Pendahuluan
CI/CD atau kependekan dari Continuous Integration dan Continuous Deployment bermula dari banyaknya kemungkinan kegagalan yang terjadi dalam deployment dengan cara tradisional/manual dimana developer melakukan push ke dalam repo lalu developer lain melakukan pull dan melakukan push ke dalam server untuk dilakukan deploy.
Ide dari CI/CD adalah bagaimana caranya ketika developer melakukan push kedalam repositori, maka source code tersebut akan langsung dilakukan deployment, sehingga tidak perlu melakukan deployment secara manual agar terhindar dari kegagalan.
Lalu bagaimana cara melakukan CI/CD? CI/CD dapat kita lakukan dengan bantuan alat atau framework seperti Jenkins, Circleci, TeamCity, Bamboo, atau juga GitLab. Pada artikel kali ini, saya akan membahas penggunaan GitLab dalam melakukan CI/CD. GitLab merupakan layanan seperti Github yang menyediakan manajemen project dengan git repositori yang juga memiliki fitur Runner yang merupakan service atau worker yang berfungsi untuk build image, push image atau bahkan melakukan deploy image dimana kita dapat mendefinisikan nya pada file.
disini akan coba dengan gitlab dengan repository yang kosong
bahwa untuk memindahkan tanggung jawab manual task orang menuju ke gitlab runner atau Gitlab CI-CD maka kita harus mendefinisikan terlebih dahulu task apa yang harus dilakukan, hal tersebut sebenarnya bisa kalian baca terkait dengan gitlab CI pada docs, Apa yang harus dilakukan mulai dari kode itu siap ter-push atau sampai kode itu di deploy
sederhananya, kita bisa dengan melihat beberapa hal dari gitlab CI:
- yang pertama kita harus mendefinisikan stagenya, stage apa yang sebenarnya akan kita lakukan contohnya stage pertama dalam melakukan build terhadap sebuah docker image
- Kemudian stage yang kedua yaitu untuk membuat atau mendeploy docker image
ketika kita melakukan build apa sih yang harus dilakukan untuk build sebuah docker image? kita lanjutkan bab selanjutnya
pembuatan CD (Continous Delivery)
namun perlu diketahui untuk kita bisa melakukan push terhadap docker register ini kita harus membuat akses token terlebih dahulu karena Runner dari gitlab itu perlu mengautentikasikan dirinya dan mengautorize dirinya bahwa kita bener diperbolehkan untuk melakukan push images pada repositori tersebut, caranya seperti apa?
- klik profile > edit profile
- lanjut klik Access Token lalu isikan data yang tertera
dan perlu diperhatikan pada bagian select scopus setting sesuai keinginan, runner itu bisa melakukan apa saja, seperti pada gambar yang saya contohkan di bawah ini
saya membuat 3 select scopus yaitu:
- read_repository yang berarti runner bisa membaca repositori.
- read_registry yang berarti bisa membaca atau mengakses pada private project
- write_registry yang berarti runner bisa melakukan push images
setelah itu akan mendapatkan token yang dimana token tersebut digunakan untuk autentikasi nantinya maka jangan lupa untuk di save/copy
- setelah itu lanjut kedalam repositori yang sudah dibuat tadi setelah itu settings > CI/CD
- setelah itu kita akan menyimpan value dari token yang sudah di copy tadi ke sebuah variabel
- Token sudah dibuatkan variabel maka dari sini proses pembuatan CD (Continous Delivery) sudah selesai, karena ini digunakan untuk melakukan push images ke sebuah registry
Studi Kasus
kita mulai dengan sebuah studi kasus sederhana, pada gambar dimana kita user/developer itu push html kedalam sebuah repo maka akan dibuatkan image docker yang akan di push kedalam sebuah registry
- pada repo yang sudah dibuat sebelumnya, kita buat file terlebih dahulu dengan klik "web IDE"
- setelah itu buat folder dan file seperti pada gambar berikut:
- mendefinisikan images yang akan di build, dengan cara create file lalu pilih dockerfile
buat deskripsi seperti berikut:
- setelah itu buat file baru dengan .gitlab-ci.yml
dan buat deskripsi sebagai berikut:
- setelah semua sudah selesai lalu lakukan commit, kembali ke repositori awal, ketika pada repositori terdapat icon seperti ini:
yang menandakan pipeline sudah running
- lalu pada bagian gambar dibawah ini digunakan untuk mengetahui proses yang sudah dikerjakan itu sampai mana, tunggu hingga proses selesai.
- jika proses sudah selesai lalu menuju CI/CD > pipeline, maka akan ada keterangan seperti ini, tandanya sudah berjalan
- ketika kita masuk kedalam container registry maka akan ada hasil dari docker build dan docker push nya
Continous Deployment
setelah sudah selesai melakukan tahapan sebelumnya kita lanjut pada deploy
- kembali pada file .yml yang sudah dibuat pada repositori, lalu tambahkan pada stages yaitu "deploy", setelah itu definisikan deploy tersebut seperti yang di lingkari, lalu commit
- setelah itu pada repositori, menuju menu CI/CD > pipeline, dan akan terlihat status running yang berarti proses sedang berjalan
- pada bagian deploy di klik, dan akan terlihat proses nya seperti pada gambar
ketika awal docker images hanya ada 1 images di server, lalu ketika melakukan pull lagi, docker images menambah 1
maka selesai tutorial dari Continous Integration dan Continous Deployment Docker dengan Gitlab CI/CD
Top comments (0)