Hari ini kita akan melihat sejarah istilah tersebut, membahas kesulitan penerapan CI, dan memberikan beberapa alat populer yang akan membantu Anda mengatasinya.
/flickr/ / / Foto dimodifikasi
istilah
Integrasi Berkelanjutan adalah pendekatan pengembangan aplikasi yang sering melibatkan pembuatan proyek dan pengujian kode.
Tujuannya adalah agar proses integrasi dapat diprediksi dan mendeteksi potensi bug dan kesalahan pada tahap awal, sehingga terdapat lebih banyak waktu untuk memperbaikinya.
Istilah Integrasi Berkelanjutan pertama kali muncul pada tahun 1991. Itu diperkenalkan oleh pencipta bahasa UML (Grady Booch). Insinyur tersebut memperkenalkan konsep CI sebagai bagian dari praktik pengembangannya sendiri - . Ini menyiratkan penyempurnaan arsitektur secara bertahap ketika merancang sistem berorientasi objek. Gradi tidak menjelaskan persyaratan apa pun untuk integrasi berkelanjutan. Namun kemudian dalam bukunya ““Dia mengatakan bahwa tujuan dari metodologi ini adalah untuk mempercepat rilis “rilis internal.”
Cerita
Pada tahun 1996, CI diadopsi oleh pencipta metodologi (XP) - (Kent Beck) dan (Ron Jeffries). Integrasi berkelanjutan menjadi salah satu dari dua belas prinsip utama pendekatan mereka. Para pendiri XP mengklarifikasi persyaratan metodologi CI dan mencatat perlunya membangun proyek beberapa kali sehari.
Pada awal tahun 2000-an, salah satu pendiri Agile Alliance mulai mempromosikan metodologi integrasi berkelanjutan (Martin Fowler). Eksperimennya dengan CI menghasilkan perangkat lunak pertama di bidang ini - CruiseControl. Utilitas ini diciptakan oleh rekan Martin, Matthew Foemmel.
Siklus pembuatan pada alat ini diimplementasikan sebagai daemon yang secara berkala memeriksa sistem kontrol versi untuk melihat perubahan dalam basis kode. Solusinya dapat diunduh hari ini - itu di bawah lisensi seperti BSD.
Dengan munculnya perangkat lunak untuk CI, semakin banyak perusahaan yang mulai mengadopsi praktik ini. Menurut penelitian Forrester [halaman 5 ], pada tahun 2009, 86% dari lima puluh perusahaan teknologi yang disurvei menggunakan atau menerapkan metode CI.
Saat ini, praktik Integrasi Berkelanjutan digunakan oleh organisasi dari berbagai industri. Pada tahun 2018, penyedia cloud besar melakukan survei terhadap spesialis TI dari perusahaan di sektor jasa, pendidikan, dan keuangan. Dari enam ribu responden, 58% mengatakan bahwa mereka menggunakan alat dan prinsip CI dalam pekerjaannya.
Bagaimana itu bekerja
Integrasi berkelanjutan didasarkan pada dua alat: sistem kontrol versi dan server CI. Yang terakhir dapat berupa perangkat fisik atau mesin virtual di lingkungan cloud. Pengembang mengunggah kode baru satu kali atau lebih dalam sehari. Server CI secara otomatis menyalinnya dengan semua dependensi dan membangunnya. Setelah itu, ia menjalankan pengujian integrasi dan unit. Jika pengujian berhasil, sistem CI akan menyebarkan kode tersebut.
Diagram proses umum dapat direpresentasikan sebagai berikut:

Metodologi CI membuat sejumlah persyaratan bagi pengembang:
- Perbaiki masalah dengan segera. Prinsip ini datang ke CI dari pemrograman ekstrim. Memperbaiki bug adalah prioritas tertinggi pengembang.
- Mengotomatiskan proses. Pengembang dan pengelola harus terus-menerus mencari hambatan dalam proses integrasi dan menghilangkannya. Misalnya, sering kali terjadi hambatan dalam integrasi pengujian.
- Lakukan pertemuan sesering mungkin. Sekali sehari untuk menyinkronkan pekerjaan tim.
Kesulitan implementasi
Masalah pertama adalah tingginya biaya operasional. Bahkan jika sebuah perusahaan menggunakan alat CI terbuka (yang akan kita bahas nanti), perusahaan tersebut masih harus mengeluarkan uang untuk dukungan infrastruktur. Namun, teknologi cloud mungkin bisa menjadi solusinya.
Mereka menyederhanakan perakitan konfigurasi komputer dengan skala berbeda. Ditambah perusahaan hanya untuk sumber daya yang digunakan, yang membantu menghemat infrastruktur.
Menurut survei [halaman 14 ], integrasi berkelanjutan meningkatkan beban karyawan perusahaan (setidaknya pada awalnya). Mereka harus mempelajari alat-alat baru, dan rekan kerja tidak selalu membantu dalam pelatihan. Oleh karena itu, Anda harus berurusan dengan kerangka kerja dan layanan baru saat bepergian.
Kesulitan ketiga adalah masalah otomatisasi. Organisasi dengan sejumlah besar kode lama yang tidak tercakup dalam pengujian otomatis menghadapi masalah ini. Hal ini mengarah pada fakta bahwa kode tersebut hanya ditulis ulang sebelum implementasi penuh CI.

/flickr/ /
Siapa yang menggunakan
Raksasa TI termasuk yang pertama menyadari manfaat metodologi ini. Google integrasi berkelanjutan sejak pertengahan tahun 2000an. CI diimplementasikan untuk mengatasi masalah keterlambatan pada mesin pencari. Integrasi berkelanjutan membantu mendeteksi dan menyelesaikan masalah dengan cepat. Sekarang CI digunakan oleh semua departemen raksasa IT itu.
Integrasi berkelanjutan juga membantu perusahaan kecil, dan alat CI juga digunakan oleh organisasi keuangan dan layanan kesehatan. Misalnya, di Morningstar, layanan integrasi berkelanjutan membantu menambal kerentanan 70% lebih cepat. Dan platform medis Philips Healthcare mampu menggandakan kecepatan pembaruan pengujian.
Alat
Berikut beberapa alat populer untuk CI:
- adalah salah satu sistem CI yang paling populer. Ini mendukung lebih dari seribu plugin untuk integrasi dengan berbagai VCS, platform cloud, dan layanan lainnya. Kami juga menggunakan Jenkins di 1cloud: tool . Dia secara teratur memeriksa cabang Git yang dimaksudkan untuk pengujian.
- — kerangka kerja python untuk menulis proses integrasi berkelanjutan Anda sendiri. Penyiapan awal alat ini cukup rumit, tetapi hal ini diimbangi dengan opsi penyesuaian yang luas. Di antara kelebihan kerangka ini, pengguna menyoroti intensitas sumber dayanya yang rendah.
- adalah server dari Pivotal yang menggunakan container Docker. Concourse CI terintegrasi dengan alat dan sistem kontrol versi apa pun. Pengembang mencatat bahwa sistem ini cocok untuk bekerja di perusahaan dengan ukuran berapa pun.
- adalah alat yang dibangun ke dalam sistem kontrol versi GitLab. Layanan ini berjalan di cloud dan menggunakan file YAML untuk konfigurasi. Seperti Concourse, Gitlab CI Kontainer Docker yang membantu mengisolasi proses yang berbeda satu sama lain.
- adalah server cloud CI yang bekerja dengan GitHub, GitLab, dan BitBucket. Platform ini tidak memerlukan pengaturan awal yang lama - proses CI standar yang sudah diinstal sebelumnya tersedia di Codeship. Untuk proyek kecil (hingga 100 build per bulan) dan proyek sumber terbuka, Codeship tersedia gratis.
Bahan dari blog perusahaan kami:
Sumber: www.habr.com
