Integrasi berkelanjutan adalah proses pengembangan perangkat lunak di mana pengembang mengintegrasikan kode baru yang telah mereka tulis lebih sering di sepanjang siklus pengembangan, menambahkannya ke basis kode setidaknya sekali sehari.
Pengujian otomatis dilakukan terhadap setiap iterasi build untuk mengidentifikasi masalah integrasi lebih awal, saat masalah tersebut lebih mudah diperbaiki. Pendekatan ini juga membantu menghindari masalah pada penggabungan akhir untuk rilis. Secara keseluruhan, integrasi berkelanjutan membantu merampingkan proses build, menghasilkan perangkat lunak berkualitas lebih tinggi, dan jadwal pengiriman yang lebih dapat diprediksi.
Panduan Perusahaan untuk AI dan Otomatisasi TI menawarkan pandangan mendalam tentang otomatisasi TI yang didukung AI, termasuk alasan dan cara menggunakannya, masalah yang menghalangi upaya Anda, dan cara memulainya.
Daftar untuk mendapatkan Laporan TEI untuk IBM Robotic Process Automation
Menurut definisinya, DevOps menguraikan proses pengembangan perangkat lunak dan perubahan dalam budaya organisasi. Proses ini mempercepat penyampaian perangkat lunak berkualitas lebih tinggi dengan mengotomatisasi dan mengintegrasikan upaya tim pengembangan dan operasi TI. Secara tradisional, kedua kelompok ini berlatih secara terpisah dari satu sama lain, atau dalam silo.
Dalam praktiknya, proses dan budaya DevOps terbaik melampaui pengembangan dan operasi. Kelompok ini mencakup rekayasa platform dan infrastruktur, keamanan, kepatuhan, tata kelola, manajemen risiko, lini bisnis, pengguna akhir, dan pelanggan. Grup ini menggabungkan input dari semua pemangku kepentingan aplikasi ke dalam siklus pengembangan perangkat lunak.
Dalam kerangka kerja DevOps, integrasi berkelanjutan berada di awal proses pengembangan perangkat lunak. Pada tahap ini Anda memeriksa kode Anda setidaknya sekali sehari untuk menjaga agar salinan lokal Anda tidak menyimpang terlalu jauh dari cabang utama pembuatan kode. Pendekatan ini membantu Anda menghindari konflik penggabungan yang dapat "merusak" build dan membutuhkan waktu berjam-jam atau berhari-hari bagi tim untuk menyelesaikannya.
Integrasi berkelanjutan berfungsi sebagai prasyarat untuk tahap pengujian, penerapan, dan rilis dari pengiriman berkelanjutan. Seluruh tim pengembangan akan mengetahui dalam beberapa menit setelah check-in apakah Anda telah membuat kode yang buruk, karena layanan integrasi berkelanjutan secara otomatis membangun dan menguji perubahan kode Anda untuk setiap kesalahan.
Pengiriman berkelanjutan dan penerapan berkelanjutan mengikuti integrasi berkelanjutan dalam siklus DevOps.
Pengiriman berkelanjutan (CD) melanjutkan dari titik integrasi berkelanjutan berakhir, mengotomatiskan pengiriman aplikasi ke lingkungan infrastruktur yang dipilih. CD berfokus memberikan perubahan yang divalidasi pada basis kode (pembaruan, perbaikan bug, bahkan fitur baru) kepada pengguna secepat dan seaman mungkin. Hal ini memastikan otomatisasi penerapan perubahan kode ke lingkungan yang berbeda, seperti pengembangan, pengujian, dan produksi.
Dalam penerapan berkelanjutan, perubahan kode pada aplikasi dirilis secara otomatis ke lingkungan produksi. Otomatisasi ini didorong oleh serangkaian tes yang telah ditentukan. Setelah pembaruan baru lulus tes tersebut, sistem menerapkan pembaruan langsung ke pengguna perangkat lunak.
Manfaat yang sering dikutip dari integrasi berkelanjutan meliputi:
Tangkas adalah praktik pengembangan perangkat lunak yang meningkatkan cara tim pengembangan perangkat lunak mengatur diri mereka sendiri, beradaptasi dengan perubahan persyaratan, dan merilis perangkat lunak. Integrasi berkelanjutan (tautan berada di luar ibm.com) dan pengembangan tangkas memiliki banyak fitur yang sama, seperti otomatisasi pengujian. Oleh karena itu, akan berguna untuk berbicara tentang integrasi berkelanjutan dan tangkas pada saat yang sama.
Agile mengatur pengembangan ke dalam kelompok kerja atau sprint yang lebih kecil. Ketika diterapkan di DevOps, praktik gabungan ini membantu memastikan kualitas perangkat lunak dan fleksibilitas proyek.
Integrasi berkelanjutan mengharuskan Anda untuk mengintegrasikan pekerjaan yang sering, seringkali berkali-kali per hari. Anda memverifikasi integrasi dengan build otomatis yang mendeteksi kesalahan integrasi sedini mungkin. Build harus menyertakan uji coba sebagai bagian dari verifikasi. Memperluas pengujian cepat ke pengujian waktu proses dalam lingkungan pengujian otomatis secara alami mengarah ke pengiriman berkelanjutan.
Agile (tautan berada di luar ibm.com) juga berulang dan beradaptasi pada perubahan sehingga dapat meningkatkan dan mengembangkan solusi dari waktu ke waktu. Dalam konteks integrasi berkelanjutan, pengembangan perangkat lunak tangkas adalah tentang memberikan iterasi perangkat lunak berdasarkan cara Anda memprioritaskan nilai fitur yang terus menerus diintegrasikan.
Alat integrasi berkelanjutan sumber terbuka yang populer meliputi:
Melakukan integrasi berkelanjutan dengan alat sumber terbuka menawarkan banyak manfaat, termasuk:
Alat integrasi berkelanjutan sumber terbuka yang perlu dipertimbangkan untuk alur kerja pengembangan perangkat lunak Anda termasuk Jenkins, Go, Buildbot, dan Travis CI, yang bisa Anda baca di bagian selanjutnya.
Server integrasi berkelanjutan adalah alat bantu perangkat lunak yang memusatkan semua operasi integrasi berkelanjutan Anda dan menyediakan platform yang andal dan stabil untuk membangun proyek Anda. Anda dapat mengkonfigurasi dan menyesuaikan server CI untuk membangun berbagai proyek untuk platform yang berbeda. Server integrasi berkelanjutan dengan mudah memodelkan dan memvisualisasikan alur kerja yang kompleks (memungkinkan pengiriman berkelanjutan) dan menyediakan antarmuka yang intuitif untuk membangun jalur pengiriman berkelanjutan. Server integrasi berkelanjutan menawarkan kemampuan untuk:
Pertimbangkan contoh penggunaan hipotetis ini, yang mengilustrasikan bagaimana dua pengembang perangkat lunak dapat menggunakan integrasi berkelanjutan untuk meningkatkan proses DevOps mereka.
Kedua pengembang harus berkomunikasi satu sama lain tentang fitur mana yang berfungsi dan bagaimana caranya. Tim kecil ini memerlukan pembaruan rutin dan harus mampu mengintegrasikan dan menguji kode mereka secara keseluruhan. Menjadwalkan check-in dan pengujian kode memakan banyak waktu pengembangan. Diperlukan sistem otomatis untuk integrasi berkelanjutan.
Negosiasi mengenai kapan kombinasi dan tes ini akan terjadi akan menghabiskan banyak waktu pengembang. Mereka harus menyetuji:
Platform integrasi berkelanjutan memiliki jawaban default untuk pertanyaan-pertanyaan ini dan sebagian besar memungkinkan konfigurasi dan pengaturan.
Biasanya, platform CI seperti Jenkins memulai pengujian integrasi saat check-in. Ketika kode baru masuk, sistem CI akan menjalankan serangkaian pengujian, yang dapat mencakup pengujian unit dan pengujian regresi, dan kemudian menentukan apakah kode tersebut berhasil diintegrasikan.
Atau, jika Anda menggunakan bahasa yang dikompilasi, pengujian default adalah jika kode berhasil dikompilasi. Jika tidak, maka kode baru merusak build. Untuk bahasa seperti Python atau JavaScript, Anda harus membuat uji integrasi Anda sendiri.
Bagaimanapun, sebagian besar sistem CI mencatat upaya integrasi, tingkat keberhasilan, dan metrik lainnya.
Pentingnya pengujian
Pengujian berkelanjutan dimulai saat Anda menghasilkan build integrasi berkelanjutan dan paket (juga dikenal sebagai entitas yang dapat diinstal atau entitas yang dikemas). Pengujian berhenti ketika entitas yang dikemas itu masuk ke tahap produksi. Setiap langkah secara keseluruhan melibatkan rangkaian pengujian.
Minimal, ketika Anda hanya memiliki satu tahap pengujian, 30% integrasi berkelanjutan melibatkan pengujian. Pada kenyataannya, aktivitas integrasi berkelanjutan terdiri dari pengujian 50% hingga 70%. Dulu Anda harus menyelesaikan pengujian secara manual. Sekarang Anda dapat menggunakan pengujian otomatis, kunci keberhasilan integrasi berkelanjutan.
Sebagai bagian dari mengotomatiskan pengujian untuk integrasi berkelanjutan, pengembangan yang didorong oleh pengujian secara berulang-ulang membangun kode dan menguji satu contoh penggunaan pada satu waktu. Pendekatan ini memastikan cakupan pengujian, meningkatkan kualitas kode, dan menetapkan dasar untuk pengiriman berkelanjutan. Pengujian otomatis memberi tahu Anda apakah kode baru gagal dalam satu atau lebih pengujian yang dikembangkan di semua area fungsional aplikasi.
Praktik terbaik mengharuskan pengembang untuk menjalankan semua atau sebagian pengujian di lingkungan lokal mereka. Praktik ini memastikan bahwa pengembang hanya melakukan komit kode sumber ke kontrol versi setelah perubahan kode baru lulus pengujian. Pengalaman menunjukkan bahwa pengujian regresi yang efektif dapat membantu menghindari kejutan yang tidak diinginkan nanti.
Pipa integrasi berkelanjutan
Pipeline integrasi berkelanjutan mengotomatiskan tahapan pipeline proyek, seperti pembuatan, pengujian, dan penerapan, dengan cara yang dapat diulang dan intervensi manusia minimal. Pipeline integrasi berkelanjutan otomatis sangat penting untuk merampingkan pengembangan, pengujian, dan penerapan aplikasi Anda dengan mengaktifkan kontrol, pos pemeriksaan, dan kecepatan.
Praktik terbaik integrasi berkelanjutan
Proses integrasi berkelanjutan adalah komponen penting dari DevOps, yang membantu Anda menyatukan tim pengembangan dan operasi ke dalam repositori bersama untuk pengkodean, pengujian, penerapan, dan perangkat lunak pendukung. Beberapa praktik terbaik CI yang dapat membantu Anda sukses adalah:
Konfigurasikan dan jalankan pembuatan perangkat lunak dengan lebih mudah menggunakan alat IBM UrbanCode Build, solusi manajemen pembuatan skala perusahaan yang menggunakan sistem berbasis templat.
DevOps mempercepat pengiriman perangkat lunak berkualitas tinggi dengan menggabungkan dan mengotomatiskan pekerjaan pengembangan perangkat lunak dan tim operasi TI.
Pengiriman berkelanjutan mengotomatiskan pengiriman aplikasi ke lingkungan pengujian dan produksi.
Panduan praktis untuk pipeline integrasi berkelanjutan/pengiriman berkelanjutan (CI/CD).