Pipeline integrasi berkelanjutan/pengiriman berkelanjutan (CI/CD) adalah alur kerja DevOps yang menyederhanakan proses pengiriman perangkat lunak.
Karakteristik penting dari pipeline CI/CD adalah penggunaan otomatisasi guna membantu memastikan kualitas kode. Seiring perubahan perangkat lunak bergerak melalui pipeline, pengujian otomatis mengidentifikasi dependensi dan masalah lainnya lebih awal, mendorong perubahan kode ke lingkungan yang berbeda, dan mengirimkan aplikasi ke lingkungan produksi.
Dalam konteks ini, peran otomatisasi adalah melakukan kontrol kualitas, serta menilai segala hal mulai dari kinerja hingga penggunaan antarmuka pemrograman aplikasi (API) dan keamanan. Proses ini membantu memastikan bahwa perubahan yang dibuat seluruh anggota tim terintegrasi secara komprehensif dan berjalan sebagaimana dimaksud.
Kemampuan untuk mengotomatiskan berbagai fase pipeline CI/CD membantu tim pengembangan meningkatkan kualitas, bekerja lebih cepat, dan meningkatkan metrik DevOps lainnya.
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Jika pipeline CI/CD mengacu pada alur kerja DevOps yang tangkas, CI/CD merupakan singkatan dari praktik gabungan integrasi berkelanjutan dan pengiriman berkelanjutan.
CI/CD menciptakan cara yang lebih cepat dan tepat untuk menggabungkan pekerjaan berbagai orang menjadi satu produk yang kohesif. Pada lingkungan DevOps, CI/CD menyederhanakan proses pengodean, pengujian, dan penerapan aplikasi. Pendekatan ini memberikan tim repositori tunggal untuk menyimpan hasil kerja dan otomatisasi untuk menggabungkan serta menguji kode guna membantu memastikan kode tersebut bekerja secara konsisten.
Pipeline CI/CD memungkinkan tim DevOps menulis kode, mengintegrasikannya, menjalankan pengujian, mengirimkan rilis, dan menerapkan perubahan pada perangkat lunak secara kolaboratif dan real-time. Meskipun otomatisasi rilis perangkat lunak — dari pengujian awal hingga penerapan akhir — merupakan manfaat signifikan dari pipeline CI/CD, manfaat lainnya meliputi:
Mengurangi waktu penerapan: Pengujian otomatis membuat proses pengembangan lebih efisien serta mengurangi durasi proses pengiriman perangkat lunak. Selain itu, penerapan berkelanjutan dan penyediaan otomatis memungkinkan perubahan yang dibuat pengembang pada aplikasi cloud untuk ditayangkan dalam beberapa menit setelah ditulis.
Penurunan biaya: Pengembangan, pengujian, dan produksi yang cepat (difasilitasi oleh otomatisasi) berarti lebih sedikit waktu yang dihabiskan bagi pengembangan. Proses ini menghasilkan pengurangan biaya dibandingkan pengembangan perangkat lunak tradisional.
Feedback loop berkelanjutan: Pipeline CI/CD mewakili siklus yang berkelanjutan: build, test, deploy. Feedback loop memungkinkan pengembang bertindak dan meningkatkan kode dengan cepat setiap kali kode tersebut diuji.
Deteksi kesalahan awal: Dalam integrasi berkelanjutan, pengujian otomatis dijalankan pada setiap versi kode untuk mendeteksi masalah integrasi. Masalah tersebut lebih mudah diperbaiki jika terdeteksi lebih awal dalam pipeline.
Mengurangi waktu henti dan meningkatkan keandalan: Jika terjadi kegagalan penerapan, bug, atau masalah kinerja, fitur seperti rollback otomatis mengembalikan sistem perangkat lunak atau aplikasi ke kondisi stabil sebelumnya. Fitur ini meminimalkan waktu henti dan meningkatkan keandalan layanan.
Peningkatan kolaborasi tim dan integrasi sistem: Setiap anggota tim dapat mengubah kode, menanggapi masukan, dan dengan cepat merespons masalah apa pun.
Pipeline CI/CD terdiri atas 3 metodologi yang terhubung:
Proses CI/CD dimulai dengan integrasi berkelanjutan (CI), yaitu ketika pengembang menyerahkan kodenya ke repositori pusat yang dikelola sistem kontrol versi (VCS). CI memungkinkan pengembang bekerja secara mandiri dan membuat branch pengodean sendiri untuk menerapkan perubahan yang kecil.
Saat pengembang bekerja, mereka dapat mengambil snapshot dari kode sumber, biasanya menggunakan alat versi seperti Git. Pengembang kemudian bebas mengerjakan fitur baru; jika masalah muncul, Git dapat dengan cepat mengembalikan basis kode ke kondisi sebelumnya.
Pekerjaan individual kemudian didorong ke dalam sistem otomatis yang menggunakan skrip untuk melakukan build dan menguji perubahan kode. Setelah tahap build otomatis, server CI mengompilasi perubahan kode sumber ke branch utama atau trunk dari repositori kode sumber bersama.
Alih-alih menulis kode secara independen dan mengirimkannya ke branch kode utama sebulan sekali — yang dapat menyebabkan beban pekerjaan perbaikan bug dan kontrol versi yang buruk — proses pengembangan CI/CD memungkinkan tim mengirimkan perubahan kode lebih sering. Pengujian berkelanjutan tersebut menawarkan perbaikan bug yang lebih cepat, membantu memastikan fungsionalitas, dan pada akhirnya menghasilkan kolaborasi serta kualitas perangkat lunak yang lebih baik.
Langkah selanjutnya dalam pipeline adalah pengiriman berkelanjutan (CD), yang memindahkan perubahan kode tervalidasi yang dibuat dalam integrasi berkelanjutan ke lingkungan tertentu atau repositori kode, seperti GitHub. Pada tahap ini, tim operasi dapat menerapkan perubahan tersebut ke lingkungan produksi live.
Perangkat lunak dan API diuji, dan kesalahan diselesaikan melalui proses yang otomatis. Pada langkah terakhir dari proses CD, tim DevOps menerima pemberitahuan mengenai build terbaru, dan mengirimkannya secara manual ke tahap penerapan.
Tujuan tahap continuous delivery dalam pipeline adalah menerapkan kode baru dengan upaya minimal, namun tetap memungkinkan adanya pengawasan manusia.
CD dalam proses CI/CD juga merupakan singkatan dari penerapan berkelanjutan. Penerapan berkelanjutan secara otomatis merilis perubahan kode kepada pengguna akhir setelah kode tersebut melewati serangkaian pengujian yang telah ditentukan sebelumnya, seperti integration test yang menguji kode pada lingkungan staging untuk membantu memastikan integritas kode.
Pengiriman berkelanjutan dan penerapan berkelanjutan berkaitan dengan otomatisasi pada tahap yang lebih lanjut dalam pipeline daripada CI, dan sering digunakan secara bergantian.
Perbedaan antara pengiriman berkelanjutan dan penerapan berkelanjutan terletak pada tingkat otomatisasi yang digunakan dalam rilis perangkat lunak atau aplikasi. Dalam pengiriman berkelanjutan, kode secara otomatis dipindahkan ke lingkungan production-like untuk pengujian lebih lanjut dan jaminan kualitas, seperti penilaian risiko dan identifikasi kerentanan kode sumber. Intervensi manusia diperlukan untuk memindahkannya ke produksi setelah pengujian berhasil.
Dalam penerapan berkelanjutan, otomatisasi berjalan lebih jauh. Setelah kode lulus pengujian, penerapan ke produksi terjadi secara otomatis — persetujuan manusia tidak diperlukan.
Cara organisasi menerapkan pipeline CI/CD — serta keputusan untuk menggunakan pengiriman atau penerapan berkelanjutan — bergantung pada kebutuhan bisnisnya. Penerapan berkelanjutan paling sesuai bagi tim DevOps dengan siklus pengembangan yang cepat, seperti tim yang membangun situs e-commerce dan platform perangkat lunak sebagai layanan (SaaS).
Penerapan berkelanjutan mendukung proses rilis perangkat lunak dengan memungkinkan tim merilis perangkat lunak baru atau yang diperbarui secara sering dan secepat mungkin. Karena perubahan diterapkan kepada publik secara otomatis, jenis pipeline penerapan berkelanjutan ini biasanya hanya digunakan oleh tim DevOps yang memiliki proses yang terbukti.
Bagi tim yang mungkin tidak perlu merilis pembaruan sesering itu dalam alur kerjanya — seperti tim yang membangun aplikasi perawatan kesehatan — pengiriman berkelanjutan biasanya merupakan pilihan yang lebih disukai. Langkah tersebut lebih lambat, tetapi menawarkan lapisan pengawasan tambahan untuk membantu memastikan fungsionalitas bagi pengguna akhir.
Untuk penjelasan lebih rinci mengenai perbedaan antara pengiriman berkelanjutan dan penerapan berkelanjutan, silakan tonton video ini.
Pipeline machine learning adalah serangkaian langkah pemrosesan dan pemodelan data yang saling berhubungan dan dirancang untuk mengotomatiskan, menstandarkan, dan menyederhanakan proses membangun, melatih, mengevaluasi, dan menerapkan model machine learning.
Pipeline machine learning merupakan komponen penting dalam pengembangan dan produksi sistem machine learning (ML). Selain itu, perannya semakin penting karena pertumbuhan big data dan kecerdasan buatan (AI).
Menurut Kings Research, ukuran pasar machine learning global bernilai USD 26,06 miliar pada tahun 2023 dan diproyeksikan tumbuh dari USD 35,44 miliar pada tahun 2024 menjadi USD 328,89 miliar pada tahun 2031, dengan CAGR 37,47% selama periode perkiraan 2024–2031.¹
Pipeline machine learning terintegrasi dengan praktik DevOps untuk memungkinkan CI/CD model machine learning. Integrasi tersebut disebut operasi machine learning (MLOps), yang membantu tim ilmu data secara efektif mengelola kompleksitas orkestrasi ML.
Dari kode sumber hingga produksi, tahapan berikut terdiri atas siklus proses pengembangan dan alur kerja pipeline CI/CD:
Build
Test
Deliver
Deploy
Tahap ini merupakan bagian dari proses integrasi berkelanjutan dan melibatkan pembuatan serta kompilasi kode. Tim melakukan build kode sumber secara kolaboratif dan mengintegrasikan kode baru sambil dengan cepat mengidentifikasi masalah atau konflik apa pun.
Pada tahap ini, tim menguji kode. Pengujian otomatis terjadi dalam pengiriman dan penerapan berkelanjutan. Tahap ini dapat mencakup integration test, unit test, dan regression test.
Pada tahap ini, basis kode yang disetujui dikirim ke lingkungan produksi. Tahap ini diotomatiskan dalam penerapan berkelanjutan, dan hanya diotomatiskan dalam pengiriman berkelanjutan setelah memperoleh persetujuan pengembang.
Terakhir, perubahan diterapkan, dan produk akhir berpindah ke produksi. Dalam pengiriman berkelanjutan, produk atau kode dikirim ke repositori dan dipindahkan ke produksi atau penerapan dengan persetujuan manusia. Dalam penerapan berkelanjutan, langkah tersebut diotomatiskan.
Saat memilih alat CI/CD, fokusnya harus pada pengoptimalan dan otomatisasi proses pengembangan perangkat lunak. Pipeline CI/CD yang efektif menggunakan alat sumber terbuka bagi integrasi, pengujian, dan penerapan. Konfigurasi yang benar atas proses CI/CD Anda juga memengaruhi keberhasilan pipeline pengembangan perangkat lunak.
Alat CI/CD sumber terbuka yang paling umum adalah Jenkins. Jenkins adalah server CI otomatis yang ditulis dalam Java dan digunakan untuk mengotomatiskan langkah serta pelaporan CI/CD. Alat sumber terbuka lainnya bagi integrasi mencakup Travis CI dan CircleCI.
Selain alat sumber terbuka, seluruh penyedia layanan cloud utama — Google Cloud, IBM® Cloud, Microsoft Azure, dan Amazon Web Services (AWS) — menawarkan rantai alat CI/CD berbasis cloud, pipeline, dan integrasi.
Platform hosting repositori kode, seperti GitHub atau AWS CodeCommit, membantu pengembang membuat, memelihara, dan melacak paket perangkat lunak. Pada saat yang sama, platform seperti GitLab menyediakan kemampuan CI/CD terintegrasi dalam platform komprehensif yang mencakup alat lain.
Saat beroperasi pada lingkungan cloud, tim DevOps cloud-native menggunakan kontainer seperti Docker bagi pengemasan dan pengiriman aplikasi, serta menggunakan alat orkestrasi kontainer seperti Kubernetes. Meskipun Kubernetes tidak dirancang khusus bagi pipeline CI/CD, Kubernetes digunakan pada banyak alur kerja CI/CD.
Keamanan CI/CD berfokus pada praktik, proses, dan teknologi yang menerapkan serta mengelola langkah keamanan dan kepatuhan di seluruh pipeline CI/CD.
Di masa lalu, keamanan “ditambahkan di akhir” siklus pengembangan perangkat lunak. Kemajuan platform cloud, microservices, dan kontainer menjadikan pendekatan pengembangan tradisional tidak lagi memadai.
Keamanan mungkin tidak mampu mengikuti rilis yang cepat karena pengembang mengadopsi praktik agile dan DevOps, sehingga mendorong lahirnya DevSecOps, yang merupakan singkatan dari pengembangan, keamanan, dan operasi. DevSecOps mengotomatiskan integrasi alat keamanan ke dalam pipeline integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD).
Praktik DevSecOps mencakup shift-left dan shift-right testing. shift-left testing melibatkan pengintegrasian pengujian keamanan dan praktik pengembangan penting lainnya pada tahap awal siklus pengembangan perangkat lunak (SDLC). Shift-right testing melibatkan pengujian pada tahap yang lebih lanjut dalam pengembangan, biasanya pada lingkungan produksi. Kedua metode tersebut saling melengkapi melalui penyebaran tanggung jawab pengujian di seluruh SDLC.
Memanfaatkan kekuatan AI dan otomatisasi untuk memecahkan masalah secara proaktif di seluruh tumpukan aplikasi.
Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.
Percepat ketangkasan dan pertumbuhan bisnis — terus modernisasi aplikasi Anda di platform apa pun menggunakan layanan konsultasi cloud kami.