Back

Rabu, 30 Oktober 2024 | 17:01 | Author by Hasbi Kholifatul Ashshidiq

Panduan Praktis CI/CD: Dari Integrasi Hingga Deployment

Overview

CI/CD, kependekan dari continuous integration dan continuous deployment bertujuan untuk mempermudah (streamlined) dan mempercepat lifecycle pengembangan perangkat lunak


Mengapa CI/CD?

  • Kecepatan: Pipeline CI/CD membantu pengembang membuat perubahan kode secepat dan sesering mungkin.
  • Produktivitas yang meningkat: Melakukan deploy lebih sering berarti Anda dapat mengirimkan fitur baru dan perbaikan bug kepada pengguna lebih cepat, yang akan meningkatkan kepuasan pelanggan
  • Risiko yang berkurang: Pipeline CI/CD akan membantu Anda menangkap bug lebih awal dalam proses pengembangan sebelum kode mencapai produksi. Anda ingin melakukan deploy secara sering, tetapi Anda juga tidak ingin sering mengirimkan bug kepada pengguna Anda — CI/CD akan mengurangi risiko melakukan hal tersebut.
  • Kualitas yang lebih tinggi: Memperbaiki masalah lebih awal dalam siklus pengembangan berarti Anda akan dapat mengirimkan fitur atau perbaikan berkualitas tinggi kepada pengguna.


Apa itu CI/CD?

CI/CD terdiri dari 2 bagian yaitu CI (continuous integration) dan CD (continuous delivery/deployment)

  • CI:  mengacu pada tahap building dan unit testing dalam proses rilis perangkat lunak. Setiap revisi/perubahan yang di-commit akan men-trigger build dan unit testing secara otomatis
  • CD:  mengacu pada tahap rilis dalam proses pengembangan perangkat lunak. Tahap rilis ini dilakukan dengan artifact build yang siap di deploy dan telah melewati proses pengujian terstandarisasi


Konsep Penting



  • Trigger
    Sesuatu yang memicu pipeline untuk berjalan
  • Pipeline
    Sebuah workflow dari process CI atau CD yang terdiri dari satu stage atau lebih
  • Stage
    Stage adalah batasan logikal dari sebuah pipeline. Biasanya digunakan untuk pemisahan kepentingan misalnya (Build, staging, dan production). Terdiri dari satu job atau lebih.
  • Job
    Sebuah job mewakili batasan eksekusi dari serangkaian stepPemisahan job biasanya dilakukan jika ada keperluan untuk menjalankan serangkaian steps pada beberapa environment yang berbeda. Setiap job berjalan pada satu agent
  • Step
    Adalah blok terkecil dari pipeline, misal dalam satu job ada step yang menjalankan build dan ada step yang menjalankan testing. Step bisa berisi task maupun script
  • Agent
    Sebuah infrastruktur komputer dengan agent software yang menjalankan job

Jadi, trigger akan memicu pipeline untuk berjalan yang mana terdiri dari beberapa stage dan di dalam stage tersebut ada beberapa job yang dijalankan oleh agent dan job-job tersebut terdiri dari step-step yang berisi instruksi atau script.


CI In Practice

Pada contoh kali ini, kita menggunakan azure devops untuk membuat pipeline pada CI. Pertama, klik new pipeline pada halaman di menu pipelines.



Kemudian sambungkan repository anda dengan pipeline, pada contoh ini kita akan menggunakan file YAML untuk mengkonfigurasi pipelinenya. Jika anda tidak ingin menggunakan pipeline, anda bisa klik Use the classic editor.


Setelah menyambungkan repo, anda akan sampai di step Configure:


Pilih starter pipeline untuk menggunakan template kosong file yaml


Kemudian kita konfigurasikan file pipeline ini seperti trigger, agent, step-step buildnya sesuai dengan kebutuhan.

Gambar dibawah adalah contoh file yaml untuk build dan push image menggunakan docker dengan trigger tags yang berawalan v*:


Jika sudah selesai maka simpan konfigurasi dengan menekan tombol save and run, maka pipeline yang tadi kita atur akan berjalan



CD In Practice

Untuk membuat pipeline CD di Azure Devops, buka menu Releases dan tekan tombol New kemudian pilih new release pipeline



Maka akan tampil form untuk membuat new release pipeline, jika ada pilihan untuk memilih template pilih start with an empty job untuk membuat release pipeline dari awal



Pertama, tambahkan artifact dan set sumber pipeline dengan menekan tombol add pada section Artifacts. Lalu, sesuaikan konfigurasi Artifact sesuai dengan kebutuhan.



Lalu, aktifkan Continuous deployment trigger untuk menjalankan pipeline release setiap ada build yang berhasil dari pipeline CI.



Untuk menambah step-step release, tekan tombol add pada section Stages kemudian pilih New Stage. Lalu pindah ke tab Tasks untuk mengatur step-step yang ada pada release. Berikut adalah contoh step yang ada pada pipeline release: