CI/CD adalah praktik DevOps yang digunakan untuk mengintegrasikan kode secara berkelanjutan dan melakukan pengujian otomatis, sehingga perangkat lunak dapat dibangun dan dirilis secara otomatis. CI/CD terdiri dari tiga fase yaitu continuous integration, continuous delivery, dan continuous deployment. Beberapa tools yang dapat digunakan untuk menerapkan CI/CD antara lain Jenkins, AWS Codebuild, Azure DevOps, dan Gitlab CI/CD.
2. TABLE OF CONTENTS
Why CI/CD CI/CD Lifecycle
What is CI/CD ?
Implementing CI/CD dalam
Development Programs
02 03
01
05
Tools untuk CI/CD
06
Countinuous Delivery vs
Countinuous Deployment
04
3. INTRODUCTION
CI/CD adalah salah satu praktik DevOps yang digunakan
untuk pengembangan perangkat lunak menjadi lebih
terorganisir.
5. What is CI/CD ?
• Continuous integration (CI) adalah
pengintegrasian kode ke dalam
repositori kode kemudian
menjalankan pengujian secara
otomatis, cepat, dan sering. Kamu
dapat melakukan CI ini dengan
menggunakan perintah commit.
• Sementara continuous
delivery atau continuous deployment
(CD) adalah praktik yang dilakukan
setelah proses CI selesai dan seluruh
kode berhasil terintegrasi, sehingga
aplikasi bisa dibangun lalu dirilis
secara otomatis.
6. PHASES
CI
⮚ Push the code to a VCS
⮚ The build server checks the code as soon
as it is pushed
⮚ Devs gets the feedback ( passed / failed )
⮚ Code get packaged and stored in a
repository
CD
⮚ Ensure that the software can be released
reliably
⮚ Deployments are quick and often
⮚ Helps in automated deployment
7. CI/CD pipeline ini sangat lazim digunakan dalam pengembangan
perangkat lunak. CI/CD pipeline ini menjadi penghubung antara
tim pengembang dengan tim operasional yang di dalamnya
terdapat tiga fase yang berupa continuous integration, continuous
delivery, dan continuous deployment.
CI/CD Pipeline
13. Countinuous Delivery vs Countinuous Deployment
Countinuous Delivery
● Ability to deploy often using automation
● Involves a manual step to " approve " a
deployment
● Deployment is still automated and
repeated
Countinuous Deployment
● Full automation
● Code Changes deployed all the way to
Production
● No manual intervention of approvals
18. CI/CD adalah proses yang memerlukan beberapa tools untuk
menerapkannya. Berikut adalah tools yang dapat Anda gunakan untuk mulai
melakukan CI CD pipeline dalam proses pengembangan software Anda.
Tools untuk CI/CD
Jenkins
AWS
Codebuild
Azure
DevOps
Gitlab CI/CD
19. CREDITS: This presentation template was created by
Slidesgo, including icons by Flaticon, infographics &
images by Freepik
THANKS
YOU
Do you have any questions?
Editor's Notes
Penggunaan CI/CD pada pengembangan aplikasi memberikan banyak manfaat yang akan langsung terasa oleh tim pengembang. Selain itu, ada banyak pilihan tool atau alat yang dapat digunakan untuk mendukung berjalannya proses CI/CD ini secara otomatis dan aman.
Apa itu CI/CD? Fase ● ●
CD
Pastikan perangkat lunak dapat dirilis dengan andal ●
Penerapannya cepat dan sering
Membantu dalam penyebaran otomatis
Alat : Daftar Besar tapi apakah kita akan menggunakan Jenkins ●
CI
Dorong kode ke VCS (sebuah kumpulan perangkat lunak yang sudah terintegrasi dan digunakan untuk membantu software engineer mengelola perubahan dalam source code dari waktu ke waktu. .)
Server build memeriksa kode segera setelah didorong
Pengembang mendapat umpan balik (lulus/gagal)
Kode dikemas dan disimpan dalam repositori ●
Ketiga fase tersebut akan dilakukan secara terus menerus dan otomatis untuk mendapatkan perangkat lunak yang andal dan bebas dari bug.
Mengapa CI/CD?
Perubahan Kode Lebih Kecil
Pengujian Berkelanjutan
Deteksi Kesalahan Dini
Tingkat Rilis Lebih Cepat
Backlog yang Lebih Kecil
Kepuasan pelanggan
Perawatan dan Pembaruan Mudah
melakukan perubahan
memicu membangun
membangun
beri tahu hasil build
menjalankan tes
beri tahu hasil tes
mengirimkan bangunan ke lingkungan
sebarkan jika perlu
Pengiriman Berkelanjutan
Kemampuan untuk menyebarkan sering menggunakan otomatisas
iMelibatkan langkah manual untuk "menyetujui" penerapan
Deployment masih otomatis dan berulang
Penerapan Berkelanjutan
Otomatisasi penuhPerubahan
Kode diterapkan sampai ke Produksi
Tidak ada intervensi manual persetujuan
Gambar di atas adalah gambaran tentang arus dari pengembangan software menggunakan CI/CD Pipeline, dan bagaimana software akan bergerak dari tahap ke tahap hingga bisa diterbitkan atau digunakan customer. Berikut adalah penjelasan dari setiap proses CI/CD Pipeline.
Developer akan menulis code yang akan dieksekusi melalui Version Control system (contohnya git, svn, dsb.)
Setelah itu, software tersebut akan memasuki tahap Build. Pada tahap ini, developer akan melanjutkan codenya, code tersebut akan dikembalikan ke Version Control untuk pembaruan. Code baru dan yang mula ditulis akan digabungkan, dan akan di-compile menggunakan Compiler.
Setelah tahap Build selesai, kamu akan memasuki tahap Testing. Pada tahap ini akan dilakukan berbagai jenis tes untuk menguji kelayakan dari software.
Setelah tahap Testing selesai, akan dimulai tahap Deploy. Pada tahap Deploy, kamu akan menjalankan software ke staging server atau test server. Staging server atau test server berlaku sebagai simulasi dan kamu bisa melihat code atau software melalui simulator tersebut.
Jika tahap Deploy berhasil, kamu akan berlanjut ke tahap Auto Test. Jika keseluruhan software yang dikembangkan sudah dapat berjalan baik, maka software kamu sudah dapat dijalankan ke produksi (Deploy to Production).
Dalam setiap tahap, jika ada error dan semacamnya, kamu bisa menghubungi tim developer untuk membenarkan software tersebut, ini disebut sebagai Production Feedback. Developer akan memperbarui versi melalui Version Control, dan setiap tahap di atas akan berulang kembali. Siklus tersebut akan berulang sebanyak mungkin hingga diperoleh code yang dapat dijalankan ke server produksi, di mana kita dapat mengukur dan memvalidasi code. (Measure + Validate).
1. Jenkins
Tools yang dapat Anda gunakan salah satunya adalah Jenkins. Jenkins merupakan salah satn tools open source yang menggunakan Java sebagai bahasa pemrogramannya. Ada banyak sistem operasi yang mendukung Jenkins, mulai dari Windows, macOS, hingga berbagai sistem operasi berbasis Linux.Jenkins memiliki banyak plugins yang dapat Anda gunakan untuk membuat, mendeploy, hingga melakukan optimasi dalam berbagai tahap untuk proses pengembangan software Anda.
2. AWS Codebuild
Tools lain yang bisa Anda gunakan adalah AWS Codebuild. Tools ini dikembangkan oleh AWS dan berfungsi untuk membantu developer membangun serta menguji kode. Pengujian dapat Anda lakukan secara berkelanjutan. Selain itu, tools ini memiliki keamanan tingkat tinggi dan mendukung automasi dengan mudah.
3. Azure DevOps
Azure DevOps dapat Anda jadikan salah satu pilihan untuk menerapkan CI/CD. Tools ini akan membantu developer untuk mengatur, testing, hingga mendeploy sebuah aplikasi. Microsoft merupakan perusahaan yang mengembangkan Azure DevOps. Namun, tools ini juga dapat Anda jalankan pada berbagai sistem operasi mulai dari Windows, macOS, hingga Linux.
4. GitLab CI/CD
Tools lain yang bisa Anda manfaatkan untuk menerapkan CI/CD pipelines adalah GitLab CI/CD. Tools ini merupakan salah satu tools CI/CD yang paling populer saat ini. Alasan dari kepopuleran itu adalah karena GitLab sangat handal dan mampu Anda manfaatkan untuk mengembangan software dari awal hingga akhir.
GitLab dapat menerapkan setiap fase CI/CD pipelines dalam cara kerjanya. Selain itu, GitLab juga memiliki banyak fitur seperti virtual machine, docker container, atau server yang dapat memudahkan Anda dalam mengerjakan proyek.