Rujukan: bagaimana proses Integrasi Berterusan berfungsi

Hari ini kita akan melihat sejarah istilah itu, membincangkan kesukaran melaksanakan CI, dan menyediakan beberapa alat popular yang akan membantu anda mengatasinya.

Rujukan: bagaimana proses Integrasi Berterusan berfungsi
/Flickr/ Altug Karakoc / CC BY / Foto diubah suai

jangka

Integrasi Berterusan ialah pendekatan kepada pembangunan aplikasi yang melibatkan pembinaan projek dan ujian kod yang kerap.

Matlamatnya adalah untuk menjadikan proses penyepaduan boleh diramal dan mengesan potensi pepijat dan ralat pada peringkat awal, supaya terdapat lebih banyak masa untuk membetulkannya.

Istilah Integrasi Berterusan pertama kali muncul pada tahun 1991. Ia diperkenalkan oleh pencipta bahasa UML Grady Butch (Grady Booch). Jurutera itu memperkenalkan konsep CI sebagai sebahagian daripada amalan pembangunannya sendiri - Kaedah Booch. Ia membayangkan peningkatan peningkatan seni bina semasa mereka bentuk sistem berorientasikan objek. Gradi tidak menerangkan sebarang keperluan untuk penyepaduan berterusan. Tetapi kemudian dalam bukunya "Analisis dan Reka Bentuk Berorientasikan Objek dengan Aplikasi"Dia berkata bahawa matlamat metodologi adalah untuk mempercepatkan pengeluaran" keluaran dalaman.

Kisah

Pada tahun 1996, CI telah diterima pakai oleh pencipta metodologi pengaturcaraan yang melampau (XP) - Kent Beck (Kent Beck) dan Ron Jeffries (Ron Jeffries). Penyepaduan berterusan menjadi salah satu daripada dua belas prinsip utama pendekatan mereka. Pengasas XP menjelaskan keperluan untuk metodologi CI dan menyatakan keperluan untuk membina projek beberapa kali sehari.

Pada awal 2000-an, salah seorang pengasas Agile Alliance mula mempromosikan metodologi integrasi berterusan Martin Fowler (Martin Fowler). Eksperimennya dengan CI membawa kepada alat perisian pertama dalam bidang ini - CruiseControl. Utiliti itu dicipta oleh rakan sekerja Martin, Matthew Foemmel.

Kitaran binaan dalam alat ini dilaksanakan sebagai daemon yang secara berkala menyemak sistem kawalan versi untuk perubahan dalam pangkalan kod. Penyelesaiannya boleh dimuat turun hari ini - ia diedarkan oleh di bawah lesen seperti BSD.

Dengan kemunculan perisian untuk CI, semakin banyak syarikat mula menerima pakai amalan tersebut. Menurut penyelidikan Forrester [halaman 5 laporan], pada tahun 2009, 86% daripada lima puluh syarikat teknologi yang ditinjau menggunakan atau melaksanakan kaedah CI.

Hari ini, amalan Integrasi Berterusan digunakan oleh organisasi daripada pelbagai jenis industri. Pada tahun 2018, penyedia awan besar menjalankan tinjauan dalam kalangan pakar IT daripada syarikat dalam sektor perkhidmatan, pendidikan dan kewangan. Daripada enam ribu responden, 58% mengatakan bahawa mereka menggunakan alat dan prinsip CI dalam kerja mereka.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Penyepaduan berterusan adalah berdasarkan dua alat: sistem kawalan versi dan pelayan CI. Yang terakhir boleh menjadi sama ada peranti fizikal atau mesin maya dalam persekitaran awan. Pembangun memuat naik kod baharu satu atau lebih kali sehari. Pelayan CI secara automatik menyalinnya dengan semua kebergantungan dan membinanya. Selepas itu, ia menjalankan integrasi dan ujian unit. Jika ujian lulus dengan jayanya, sistem CI menggunakan kod tersebut.

Gambar rajah proses umum boleh diwakili seperti berikut:

Rujukan: bagaimana proses Integrasi Berterusan berfungsi

Metodologi CI membuat beberapa keperluan untuk pembangun:

  • Betulkan masalah dengan segera. Prinsip ini datang kepada CI daripada pengaturcaraan yang melampau. Membetulkan pepijat adalah keutamaan tertinggi pembangun.
  • Automasi proses. Pembangun dan pengurus mesti sentiasa mencari kesesakan dalam proses penyepaduan dan menghapuskannya. Sebagai contoh, selalunya terdapat kesesakan dalam penyepaduan rupa-rupa nya ujian.
  • Mengadakan perhimpunan sekerap mungkin. Sekali sehari untuk menyegerakkan kerja pasukan.

Kesukaran pelaksanaan

Masalah pertama ialah kos operasi yang tinggi. Walaupun syarikat menggunakan alat CI terbuka (yang akan kita bincangkan kemudian), ia masih perlu membelanjakan wang untuk sokongan infrastruktur. Walau bagaimanapun, teknologi awan mungkin penyelesaiannya.

Mereka memudahkan pemasangan konfigurasi komputer berskala berbeza. Tambahan pula syarikat itu bayar hanya untuk sumber yang digunakan, yang membantu menjimatkan infrastruktur.

Menurut tinjauan [halaman 14 Perkara], penyepaduan berterusan meningkatkan beban pekerja syarikat (sekurang-kurangnya pada mulanya). Mereka perlu mempelajari alatan baharu, dan rakan sekerja tidak selalu membantu dengan latihan. Oleh itu, anda perlu berurusan dengan rangka kerja dan perkhidmatan baharu dengan segera.

Kesukaran ketiga ialah masalah dengan automasi. Organisasi dengan sejumlah besar kod warisan yang tidak diliputi oleh ujian automatik menghadapi masalah ini. Ini membawa kepada fakta bahawa kod itu hanya ditulis semula sebelum pelaksanaan penuh CI.

Rujukan: bagaimana proses Integrasi Berterusan berfungsi
/Flickr/ mereka / CC BY-SA

Siapa yang menggunakan

Gergasi IT adalah antara yang pertama menghargai manfaat metodologi tersebut. Google kegunaan integrasi berterusan sejak pertengahan tahun 2000-an. CI dilaksanakan untuk menyelesaikan masalah kelewatan dalam enjin carian. Penyepaduan berterusan membantu mengesan dan menyelesaikan masalah dengan cepat. Kini CI digunakan oleh semua jabatan gergasi IT.

Penyepaduan berterusan juga membantu syarikat kecil, dan alatan CI juga digunakan oleh organisasi kewangan dan penjagaan kesihatan. Contohnya, di Morningstar, perkhidmatan penyepaduan berterusan membantu menambal kelemahan 70% lebih pantas. Dan platform perubatan Philips Healthcare dapat menggandakan kelajuan kemas kini ujian.

Tools

Berikut ialah beberapa alatan popular untuk CI:

  • Jenkins adalah salah satu sistem CI yang paling popular. Ia menyokong lebih daripada seribu pemalam untuk penyepaduan dengan pelbagai VCS, platform awan dan perkhidmatan lain. Kami juga menggunakan Jenkins di 1cloud: alat disertakan dalam sistem DevOps kami. Dia kerap menyemak cawangan Git yang dimaksudkan untuk ujian.
  • Buildbot β€” rangka kerja python untuk menulis proses penyepaduan berterusan anda sendiri. Persediaan awal alat ini agak rumit, tetapi ini dikompensasikan oleh pilihan penyesuaian yang luas. Antara kelebihan rangka kerja, pengguna menyerlahkan keamatan sumbernya yang rendah.
  • Concourse CI ialah pelayan daripada Pivotal yang menggunakan bekas Docker. Concourse CI berintegrasi dengan mana-mana alat dan sistem kawalan versi. Pemaju ambil perhatian bahawa sistem ini sesuai untuk bekerja di syarikat dalam sebarang saiz.
  • Gitlab CI ialah alat yang dibina ke dalam sistem kawalan versi GitLab. Perkhidmatan ini berjalan dalam awan dan menggunakan fail YAML untuk konfigurasi. Seperti Concourse, Gitlab CI berlaku Bekas Docker yang membantu mengasingkan proses yang berbeza antara satu sama lain.
  • Keketaraan ialah pelayan CI awan yang berfungsi dengan GitHub, GitLab dan BitBucket. Platform ini tidak memerlukan persediaan awal yang panjang - proses CI prapasang standard tersedia dalam Codeship. Untuk projek kecil (sehingga 100 binaan sebulan) dan sumber terbuka, Codeship tersedia secara percuma.

Bahan dari blog korporat kami:

Sumber: www.habr.com

Tambah komen