Mengenal istilah CI/CD

Moon Phase

Tulisan ini akan berfungsi sebagai pengawal dari seri menelisik istilah-istilah yang sering muncul di dunia teknologi informasi, kali ini dimulai dengan mengenal Continuous Integration /Continuous Deployment.

CI dan CD merupakan istilah yang sangat mudah ditemui pada proses pengembangan perangkat lunak, lalu sebenenarnya mereka ini mahkluk apa?

CI – Continuous Integration

Merupakan proses dari sekumpulan task yang dilakukan untuk menyiapkan sebuah perangkat lunak agar bisa dirilis ke tahap selanjutnya, bisa saja ke environment staging, atau production. Hal yang umum dilakukan pada tahap ini adalah proses build, dan testing (unit test, codecov).

Jika disederhanakan sekali, phase ini melingkupi:
a. install dependensi
b. lakukan test
c. compile / package aplikasinya.

Point b dan c bisa bertukar posisi bergantung pada jenis aplikasi, bahasa yang digunakan, dan lainnya.

Phase ini biasanya terjadi ketika sebuah merge request dibuat, CI akan membantu reviewer mengecek apakah aplikasi dapat dibuild dengan lancar, dan tidak ada test yang gagal.

CD – Continuous Delivery/Continuous Delivery

Phase ini dimulai saat phase CI selesai tanpa ada error, namun bukan berarti CD harus selalu berjalan setelah CI, phase CD bisa saja berjalan tanpa ada CI sama sekali.

Tahapan yang biasa terjadi pada phase ini adalah:

  • deployment ke environment test / staging
  • testing oleh tim Quality Assurance
  • deployment ke environment Production

Lalu bedanya apa?

CD – Continuous Delivery

Continuous Delivery
Credit: Edureka

Disebut demikian jika proses deployment ke environment Production dilakukan manual setelah tim QA menyatakan aplikasi layak untuk naik kelas. Sehingga masih ada tahapan manual yang perlu dilakukan agar aplikasi/fitur tersebut dapat live dan diakses oleh pengguna.

CD – Continuous Deployment

Credit: Edureka

Nyaris sama dengan saudaranya, phase disebut sebagai Continuous Deployment jika proses deployment ke environment production terjadi secara otomatis tepat setelah tim QA menyatakan aplikasi/fitur telah layak untuk diakses/digunakan oleh pengguna atau end-user.

referensi:

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.