CI CD

CI/CD adalah singkatan dari Continous Integration dan Continous Delivery/Continuous Deployment, yang merupakan bagian praktik dari DevOps. DevOps sendiri bisa diartikan sebagai sebuah praktik yang bisa membuat proses otomatis antara pengembangan aplikasi dan tim pengembangnya. Melalui DevOps ini, tim developer bisa membuat proses penciptaan perangkat lunak yang cepat dan handal.

Proses yang disebutkan di atas bisa disebut dengan CI/CD Pipeline, yang merupakan hal lumrah dalam pengembangan software. CI/CD Pipeline harus dipahami oleh setiap software developer untuk pembuatan software yang handal, stabil, bebas dari bug dan lebih cepat menjangkau customer. Untuk lebih jelasnya tentang seluk beluk CI/CD bisa menyimak ulasan lengkapnya di bawah ini.

Apa itu CI/CD

Secara spesifik, CI/CD mengenalkan automasi yang berjalan serta monitoring berkelanjutan terhadap pengembangan sebuah software, mulai dari integrasi dan fase percobaan hingga delivery dan deployment. Jika digabungkan, praktik yang saling terhubung ini sering disebut dengan CI/CD Pipeline. Praktik ini dikerjakan bersama-sama oleh tim pengembang sekaligus tim operasi.

Dalam pengembangan aplikasi/software, CI/CD bisa menjadi jembatan antara tim development dan tim operasional dalam menciptakan aplikasi, pengecekan hingga perilisannya. CI/CD juga sangat memudahkan developer dalam merilis maupun memperbarui aplikasi dengan cepat dan aman karena environment-nya yang terorganisir.

Singkatan dari CI/CD ini memiliki beberapa makna yang berbeda, CI selalu berdiri sebagai Continous Integration, sedangkan CD bermakna ganda, bisa sebagai Continous Delivery dan atau Continous Deployment. Ketiga hal ini saling berkaitan erat dalam pengembangan sebuah aplikasi, mulai awal hingga dikirimkan ke customer. Pengertian selengkapnya dari CI/CD ini bisa dibaca di bawah ini.

CI adalah

CI atau Continous Integration adalah praktik pengambangan software, dimana pengembang merubah kode serta melakukan merge pada sebuah repistory/penyimpanan secara regular dan terus menerus. Nantinya jika ada push maupun commit yang baru, maka automated build dan test akan dijalankan sehingga hasilnya bisa langsung diketahui.

Jadi jika ada kesalahan dalam proses CI ini, maka pihak development bisa langsung melakukan tindakan. Caranya adalah dengan memperbarui kode sehingga kualitasnya bisa ditingkatkan sekaligus menghemat waktu ketika melakukan validasi update. CI sendiri merupakan solusi untuk menyederhanakan tahapan pengembangan software sehingga isu bisa diminimalisir.

CD Adalah

CD dalam CI/CD bisa diartikan sebagai Continous Delivery dan atau Continous Deployment, yang mana memiliki makna yang berbeda-beda. Continous Delivery adalah proses setelah Continous Integration, dimana developer sudah menjalankan build dan test namun memilih untuk tidak melimpahkannya ke environment production, umumnya disebabkan masalah bisnis.

Sedangkan Continous Deployment adalah fase akhir dari CI/CD Pipeline, yaitu fase setalah Continous Integration dan Continous Delivery selesai dijalankan. Biasanya setiap perusahaan memiliki development test, dimana tim pengembang dan tim operasi bisa mengetes perubahan software sebelum ditawarkan kepada customer.

CI/CD Pipeline

Implementasi CI/CD Pipeline merupakan hal yang lazim dalam pengembangan software dan aplikasi. Implementasi ini menghubungkan antara developer dan tim operasi yang mana di dalamnya ada Continous Integration, Continous Delivery dan Continous Deployment. Tiga fase ini adalah proses yang terus menerus dan otomatis demi terciptanya sebuah software yang handal dan bebas bug.

Dengan mengandalkan CI/CD Pipeline ini, proses pembuatan software akan berjalan cepat, terstruktur dan aman. Perusahaan juga akan mendapatkan feedback atau tanggapan dari customer dengan cepat untuk kemudian memperbaikinya. Jadi, jika diurutkan, CI/CD Pipeline dimulai dengan build, test, merge, rilis otomatis ke repository/penyimpanan dan terkahir deploy otomatis ke produksi.

CI/CD Proses

CI/CD adalah proses yang berkelanjutan dan terus menerus dalam software development, mulai dari awal hingga software tersebut mencapau customer dan mendapatkan feedback. Secara garis besar, tahapan atau proses dari CI/CD adalah sebagaimana berikut :

  • Pertama pengembang menulis sejumlah kode untuk kemudian dieksekusi menggunakan Version Control system semisal svn, dsb dan git
  • Selanjutnya software/aplikasi akan memasuki fase build, dimana developer akan menggabungkan kode awal dan kode baru kemudian meng-compile-nya dengan compiler
  • Selanjutnya developer akan melakukan uji kelayakan software
  • Setelah tahap build dan testing selesai, selanjutnya developer akan memulai tahap deploy, yaitu menjalankan software di test server/stagging server
  • Jika tidak ada masalah pada tahap deploy, maka developer bisa melanjutkan tahap auto-test
  • Jika keseluruhan software sudah berfungsi sebagaimana mestinya, maka terakhir software bisa dijalankan ke produksi
  • Nah, jika ada masalah ke depannya, developer akan memperbarui versi melalui Version Control
  • Hal ini akan berlangsung terus menerus hinggga software bebas dari masalah

Manfaat CI/CD

Manfaat CI CD
Manfaat CI CD

CI/CD memiliki banyak manfaat dalam dunia software development, beberapa di antaranya adalah sebagai berikut :

Mendapatkan Feeback Lebih Cepat

Dalam CI/CD Pipeline ini, setiap kode akan selalu di-test secara bersamaan agar proses software development bisa dilakukan dengan seimbang. Dengan CI Tools, feedback atau tanggapan atas masalah/eror yang terjadi juga bisa diterima lebih cepat. Akhirnya pihak terkait pun bisa langsung menindaklanjuti feedback atau tanggapan tersebut, apapun bentuknya.

Visibilitas Lebih Baik

CI/CD Pipeline memiliki sifat yang transparan, sehingga memudahkan developer mengontrol perubahan sekaligus menghindari kerusakan pada software/aplikasi. Developer juga dimudahkan dalam menganalisa pengembangkan aplikasi dari awal hingga akhir, sehingga semua masalah bisa diatasi dengan segera.

Deteksi Bug Lebih Awal

Seperti yang telah dibahas di atas, CI/CD adalah proses yang otomatis, jadi jika ada bug akan langsung terdeteksi. Developer tidak akan kesulitan dalam mengembangkan aplikasi karena semua bug yang muncul akan bisa diketahui untuk kemudian diperbaiki.

CI/CD Tools

Jenkins

Salah satu tool CI/CD yang paling sering digunakan adalah Jenkins, yang mana merupakan open-source automasi server dimana central bulid dan Continous Integration berlangsung. Tool ini menggunakan bahasa pemograman Java dan bisa digunakan untuk Windows, macOS dan OS lainnya.

Tool ini memiliki ratusan plugins yang sangat bisa diandalkan untuk build, deploy dan automasi dalam pengembangan software. Beberapa fitur utama yang dimiliki oleh Jenkins adalah sebagai berikut :

  • Bisa dipasang dengan diperbarui dengan mudah di OS yang beragam
  • User interface yang simple dan ramah pengguna
  • Konfigurasi environment yang mudah
  • Ratusan plugins
  • Mendukung notifikasi di build status
  • Mendukung Shells dan Windows command
  • Gratis plus memiliki komunitas pengguna yang aktif

Circle CI

Berikutnya ada Circle CI, CI/CD tool yang bisa diandalkan untuk software development dan software publishing yan cepat. Tool ini memudahkan developer untuk menerapkan CI/CD Pipeline secara otomatis, mulai dari code building, testing hingga deployment ke produksi. Tool ini juga bisa diintegrasikan GitHub, GitHub Enterprise dan Bitbucket.

Berikut bisa disimak fitur kunci dari Circle CI :

  • Bisa menjalankan build dengan container atau virtual machine
  • Proses debugging yang mudah
  • Menjalankan tes dengan cepat
  • Personalisasi email dan notifikasi IM
  • merge otomtis
  • Bisa custome command untuk package uploading
  • Bisa di-setup dengan cepat
  • Unlimited builds

AWS Codebuild

Selanjutnya ada AWS Codebuild, CI/CD tool yang memungkinkan developer bisa mem-build dan test code dengan skala yang berkelanjutan. Beberapa fitur utama yang dimiliki oleh tool ini adalah sebagai berikut :

  • Skala terus menerus
  • Extensible
  • Bisa integrasi dan delivery
  • Aman
  • Mulai dengan cepat
  • Automasi
  • Layanan dikelola sepenuhnya agar lebih fokus ke produk inti

Azure Devops

Azure Devops juga bisa dipertimbangkan sebagai CI/CD tool terbaik, yang mana dapat diandalkan untuk merencanakan, testing hingga deploy/distribusi software kelas amatir hingga bisnis. Tool yang diciptakan untuk Microsoft ini sangat kompatibel dengan proyek berbasis .NET dan bisa digunakan di Windows, macOS hingga Ubuntu.

Berikut beberapa fitur utama yang ditawarkan oleh Azure Devops :

  • Gratis
  • Fitur lengkap
  • Support proyek berbasis .NET semisal .NET Framework dan .NET Core
  • Proses build, testing dan delivery yang cepat dan mudah

Gitlab CI/CD

Gitlab adalah CI/CD tool yang bisa dimanfaatkan untuk mengatur berbagai aspek pengembangan software mulai dari awal hingga akhir. Produk ini dari tool ini adalah Git repository manager yang berbasis web dengan fitur semisal Wiki, analytic, issue tracking dan lain sebagainya.

Tool ini memudahkan developer untuk merencanakan kode, mengetesnya dan mendistribusikannya sesering mungkin hingga tercipta software yang handal, stabil dan bebas dari bug. Developer juga bisa mengerjakan proyek di mesin virtual, docker container atau server lainnya. Berikut fitur-fitur yang ditawarkan oleh Gitlab :

  • Melihat, menciptakan dan mengatur kode serta data proyek melalui tool yang lengkap
  • Menyediakan pemindaian container, SAST, DAST untuk mendistribusikan aplikasi yang aman plus kompilasi berlisensi
  • Membantu mengautomasi dan mempersingkat perilisan aplikasi
  • Mendesain, mengembangkan dan mengatur kode dari satu version control sistem

Atlassian Bamboo

Selanjutnya ada Atlassian Bamboo, server Continous Integration yang bisa mengautomasi manajemen perilisan software sekaligus menciptakan Continous Delivery pipeline. Tool ini menyediakan fitur standar semisal build kode, testing, assigning version, tagging hingga deployment/distribusi.

Keunggulan dan fitur dari Atlassian Bamboo adalah sebagai berikut :

  • Sudah mendukung hingga 100 remote build agents
  • Bisa menerapkan batch test secara pararel dan mendapatkan feedback dengan cepat
  • Menciptakan gambar dan menyimpannya di registry
  • Bisa mendeteksi jalur baru di Git, Mercurial, SVN Repos dan menerapkan jalur utama CI secara otomatis

Travis CI

Terakhir ada Travis CI, layanan CI yang bisa digunakan untuk merencanakan dan mengetes proyek pengembangan software development. Tool ini sudah mendukung banyak konfigurasi build dan bahasa pemograman semisal PHP, Node, Java dan seterusnya. Berikut beberapa fitur dan keunggulan dari Travis CI :

  • Setup cepat
  • Bisa melihat build secara langsung
  • Bisa mendistribusikan hasil ke beberapa layanan cloud
  • Layanan database sudah terpasang dan siap digunakan
  • Support macOS, Linux dan Windows
  • Support banyak bahasa pemograman

Dengan menggunakn CI/CD Pipeline, pengembangan sebuah software bisa dilakukan secara otomatis, stabil dan lebih menjangkau customer dengan cepat. Alur ini bisa menjadi penghubung anatara tim development operasi sehingga proyek bisa dipantau bersama-sama untuk kemudian didapatkan feedback-nya. Jika masih ada masalah, maka tim development akan memperbaiki dan memperbarui kode terus menerus sehingga software siap didistribusikan ke tim produksi.

1 thought on “CI CD”

Leave a Comment