Latar Belakang: Bagaimana Proses Integrasi Terus Menerus Bekerja

Hari ini kita beralih ke sejarah istilah, membahas kesulitan menerapkan CI dan menyediakan beberapa alat populer untuk membantu Anda bekerja dengannya.


/ Flickr / Altug Karakoc / CC BY / Foto berubah

Term


Integrasi Berkelanjutan - Suatu pendekatan untuk pengembangan aplikasi, yang sering melibatkan perakitan proyek dan pengujian kode.

Tujuannya adalah membuat proses integrasi dapat diprediksi dan mendeteksi potensi bug dan kesalahan pada tahap awal sehingga ada lebih banyak waktu untuk memperbaikinya.

Istilah Integrasi Berkelanjutan pertama kali muncul pada tahun 1991. Itu diperkenalkan oleh pencipta bahasa UML, Grady Booch. Insinyur itu memperkenalkan konsep CI sebagai bagian dari praktik pengembangannya sendiri - metode Butch . Ini menyiratkan perbaikan arsitektur tambahan ketika merancang sistem berorientasi objek. Grady tidak menjelaskan persyaratan apa pun untuk integrasi berkelanjutan. Namun kemudian dalam bukunya " Analisis dan Desain Berorientasi Objek dengan Aplikasi " ia mengatakan bahwa tugas metodologi adalah untuk mempercepat pelepasan "rilis internal".

Ceritanya


Pada tahun 1996, CI diadopsi oleh pencipta Extreme Programming Methodology (XP) - Kent Beck dan Ron Jeffries . Integrasi yang berkelanjutan telah menjadi salah satu dari dua belas prinsip utama pendekatan mereka. Para pendiri XP menjelaskan persyaratan untuk metodologi CI dan mencatat kebutuhan untuk membangun proyek beberapa kali sehari.

Pada awal 2000-an, Martin Fowler, salah satu pendiri Agile Alliance, mulai mempromosikan metodologi integrasi berkelanjutan. Eksperimennya dengan CI mengarah ke alat perangkat lunak pertama di industri, CruiseControl. Utilitas itu dibuat oleh rekan Martin, Matthew Foemmel.
Siklus build pada alat diimplementasikan sebagai daemon, secara berkala memeriksa sistem kontrol versi untuk perubahan dalam basis kode. Solusinya dapat diunduh hari ini - didistribusikan di bawah lisensi seperti BSD.
Dengan munculnya perangkat lunak untuk CI, semakin banyak perusahaan mulai mengadopsi praktik ini. Menurut sebuah studi Forrester [5 laporan ], pada tahun 2009, 86% dari lima puluh perusahaan teknologi yang disurvei menggunakan atau menerapkan metode CI.

Saat ini, Integrasi Berkelanjutan dipraktikkan oleh organisasi dari berbagai industri. Pada tahun 2018, penyedia cloud besar melakukan survei di antara spesialis layanan TI, pendidikan dan perusahaan keuangan. Dari enam ribu responden, 58% mengatakan mereka menggunakan alat dan prinsip CI dalam pekerjaan mereka.

Bagaimana cara kerjanya


Dasar integrasi berkelanjutan adalah dua alat - sistem kontrol versi dan server CI. Yang terakhir dapat berupa perangkat fisik atau mesin virtual di lingkungan cloud. Pengembang mengunggah kode baru sekali atau beberapa kali sehari. Server CI secara otomatis menyalinnya dengan semua dependensi dan melakukan perakitan. Setelah - meluncurkan uji integrasi dan unit. Jika tes berhasil, sistem CI menyebarkan kode.

Skema umum proses dapat direpresentasikan sebagai berikut:



Metodologi CI memiliki sejumlah persyaratan untuk pengembang:

  • Perbaiki masalah dengan segera. Prinsip ini datang ke CI dari pemrograman ekstrim. Perbaikan bug adalah prioritas utama bagi pengembang.
  • Proses otomatis. Pengembang dan manajer harus terus mencari kemacetan dalam proses integrasi dan menghilangkannya. Misalnya, pengujian sering kali menjadi "penghambat" integrasi.
  • Bangun sesering mungkin. Sekali sehari untuk menyinkronkan kerja tim.

Kesulitan implementasi


Masalah pertama adalah biaya operasi yang tinggi. Bahkan jika perusahaan menggunakan alat CI terbuka (yang akan kita bicarakan nanti), masih harus mengeluarkan uang untuk mendukung infrastruktur. Namun, teknologi cloud mungkin menjadi solusinya.

Mereka menyederhanakan perakitan konfigurasi komputer berskala banyak. Plus, perusahaan hanya membayar sumber daya yang digunakan, yang membantu menghemat infrastruktur.

Menurut survei [hlm . 14 artikel ], integrasi berkelanjutan meningkatkan beban pada karyawan perusahaan (setidaknya pada awalnya). Mereka harus belajar alat baru, dan kolega tidak selalu membantu dengan pelatihan. Karena itu, Anda harus berurusan dengan kerangka kerja dan layanan baru saat bepergian.

Kesulitan ketiga adalah masalah dengan otomatisasi. Itu dihadapi oleh organisasi dengan sejumlah besar kode warisan yang tidak tercakup oleh tes otomatis. Ini mengarah pada fakta bahwa kode hanya ditulis ulang sebelum implementasi penuh CI.


/ Flickr / theilr / CC BY-SA

Siapa yang menggunakan


Salah satu keuntungan pertama dari metodologi dihargai oleh raksasa TI. Google telah menggunakan integrasi berkelanjutan sejak pertengahan 2000-an. CI diimplementasikan untuk menyelesaikan masalah dengan keterlambatan di mesin pencari. Integrasi berkelanjutan telah membantu mengidentifikasi dan memecahkan masalah dengan cepat. Sekarang CI digunakan oleh semua departemen raksasa TI.

Integrasi berkelanjutan juga membantu perusahaan kecil, dan alat CI juga digunakan oleh organisasi keuangan dan medis. Di Morningstar, misalnya, layanan integrasi berkelanjutan membantu menambal kerentanan 70% lebih cepat. Dan platform medis Philips Healthcare mampu menggandakan kecepatan pembaruan pengujian.

Alat-alatnya


Berikut adalah beberapa alat populer untuk CI:

  • Jenkins adalah salah satu sistem CI paling populer. Ini mendukung lebih dari seribu plugin untuk integrasi dengan berbagai VCS, platform cloud, dan layanan lainnya. Kami menggunakan Jenkins di 1cloud juga: alat ini termasuk dalam sistem DevOps kami . Dia secara teratur memeriksa cabang Git untuk pengujian.
  • Buildbot adalah kerangka kerja python untuk menulis proses integrasi berkelanjutan Anda sendiri. Penyiapan awal alat ini cukup rumit, tetapi ini diimbangi oleh berbagai kemungkinan penyesuaian. Di antara kelebihan kerangka kerja, pengguna membedakan intensitas sumber dayanya yang rendah.
  • Concourse CI adalah server dari Pivotal yang menggunakan wadah 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.
  • Gitlab CI 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 menggunakan wadah Docker yang membantu mengisolasi proses yang berbeda satu sama lain.
  • Codeship adalah server CI berbasis cloud yang bekerja dengan GitHub, GitLab, dan BitBucket. Platform tidak memerlukan pengaturan awal yang lama - proses CI standar yang telah ditentukan tersedia dalam Codeship. Untuk proyek berskala kecil (hingga 100 build per bulan) dan open source, Codeship tersedia secara gratis.

Materi dari blog perusahaan kami:

Source: https://habr.com/ru/post/id447090/


All Articles