Rujukan: kumaha prosés Integrasi Kontinyu jalan

Dinten ieu kami bakal ningali sajarah istilah, ngabahas kasusah ngalaksanakeun CI, sareng nyayogikeun sababaraha alat populér anu bakal ngabantosan anjeun damel sareng éta.

Rujukan: kumaha prosés Integrasi Kontinyu jalan
/flickr/ Altug Karakoc / CC ku / Poto dirobah

istilah

Integrasi Kontinyu mangrupikeun pendekatan kana pamekaran aplikasi anu ngalibatkeun sering ngawangun proyék sareng uji kode.

Tujuanana nyaéta pikeun ngajantenkeun prosés integrasi tiasa diprediksi sareng ngadeteksi poténsi bug sareng kasalahan dina tahap awal, supados langkung seueur waktos pikeun ngalereskeunana.

Istilah Continuous Integration mimiti muncul dina 1991. Ieu diwanohkeun ku panyipta basa UML Grady Butch (Grady Booch). Insinyur ngenalkeun konsép CI salaku bagian tina prakték pangwangunan sorangan - Métode Booch. Ieu nunjukkeun perbaikan incremental arsitektur nalika ngarancang sistem berorientasi obyék. Gradi henteu ngajelaskeun sarat pikeun integrasi kontinyu. Tapi engké dina bukuna "Analisis Obyék-Berorientasi jeung Desain kalawan Aplikasi"Ceuk anjeunna yén tujuan metodologi nyaéta pikeun nyepetkeun sékrési" sékrési internal.

dongeng

Dina 1996, CI diadopsi ku panyipta metodologi programming ekstrim (XP) - Kent Beck (Kent Beck) jeung Ron Jeffries (Ron Jeffries). Integrasi kontinyu jadi salah sahiji dua belas prinsip konci pendekatan maranéhanana. Pendiri XP netelakeun sarat pikeun metodologi CI sareng nyatet kabutuhan ngawangun proyék sababaraha kali sadinten.

Dina awal 2000s, salah sahiji pendiri Agile Alliance mimiti ngamajukeun metodologi integrasi kontinyu. Martin Fowler (Martin Fowler). Percobaan-Na jeung CI ngarah ka alat software munggaran di wewengkon ieu - CruiseControl. Utiliti ieu diciptakeun ku batur sapagawean Martin, Matthew Foemmel.

Daur ngawangun dina alat dilaksanakeun salaku daemon anu périodik pariksa sistem kontrol versi pikeun parobahan dina dasar kode. Solusina tiasa diunduh ayeuna - éta disebarkeun ku handapeun lisénsi BSD-kawas.

Kalayan munculna parangkat lunak pikeun CI, beuki seueur perusahaan mimiti ngadopsi prakték éta. Numutkeun panalungtikan Forrester [kaca 5 laporan], dina 2009, 86% tina lima puluh pausahaan téhnologi surveyed dipaké atawa dilaksanakeun métode CI.

Kiwari, prakték Integrasi Kontinyu dianggo ku organisasi tina rupa-rupa industri. Dina 2018, panyadia awan ageung ngalaksanakeun survey diantara spesialis IT ti perusahaan dina sektor jasa, pendidikan sareng keuangan. Tina genep rébu réspondén, 58% nyarios yén aranjeunna ngagunakeun alat sareng prinsip CI dina padamelan na.

Kumaha teu karya ieu

Integrasi kontinyu dumasar kana dua alat: sistem kontrol versi sareng server CI. Anu terakhir tiasa janten alat fisik atanapi mesin virtual dina lingkungan awan. Pamekar unggah kode anyar hiji atawa leuwih kali sapoé. Pangladén CI otomatis nyalin éta kalayan sagala katergantungan sareng ngawangun éta. Saatos éta, éta ngajalankeun integrasi sareng tés unit. Upami tés lulus suksés, sistem CI nyebarkeun kodeu.

Diagram prosés umum bisa digambarkeun saperti kieu:

Rujukan: kumaha prosés Integrasi Kontinyu jalan

Metodologi CI ngadamel sababaraha sarat pikeun pamekar:

  • Ngalereskeun masalah langsung. Prinsip ieu sumping ka CI ti programming ekstrim. Ngalereskeun bug mangrupikeun prioritas pangembangna.
  • Ngaotomatiskeun prosés. Pamekar sareng manajer kedah teras-terasan milarian bottlenecks dina prosés integrasi sareng ngaleungitkeunana. Salaku conto, sering aya bottleneck dina integrasi tétéla nguji.
  • Ngalaksanakeun majelis sering-gancang. Sakali sapoé pikeun nyingkronkeun karya tim urang.

Kasulitan palaksanaan

Masalah kahiji nyaéta biaya operasi anu luhur. Sanaos perusahaan nganggo alat CI kabuka (anu bakal urang bahas engké), éta tetep kedah ngaluarkeun artos pikeun dukungan infrastruktur. Nanging, téknologi awan tiasa janten solusi.

Aranjeunna simplify rakitan konfigurasi komputer skala béda. Ditambah perusahaan mayar ngan pikeun sumberdaya dipaké, nu mantuan ngahemat on infrastruktur.

Numutkeun survey [kaca 14 tulisan], integrasi kontinyu ngaronjatkeun beban on karyawan parusahaan (sahenteuna dina mimitina). Aranjeunna kedah diajar alat anyar, sareng kolega henteu salawasna ngabantosan latihan. Ku alatan éta, anjeun kudu nungkulan kerangka anyar jeung jasa on laleur.

Kasusah katilu nyaéta masalah sareng automation. Organisasi anu ngagaduhan seueur kode warisan anu henteu katutupan ku tés otomatis nyanghareupan masalah ieu. Ieu ngakibatkeun kanyataan yén kode ieu saukur ditulis deui saméméh palaksanaan pinuh ku CI.

Rujukan: kumaha prosés Integrasi Kontinyu jalan
/flickr/ aranjeunna / CC ku-SA

Anu ngagunakeun

Raksasa IT mangrupikeun anu munggaran ngahargaan mangpaat tina metodologi. Google ngagunakeun integrasi kontinyu saprak pertengahan 2000s. CI dilaksanakeun pikeun ngajawab masalah telat dina mesin pencari. Integrasi kontinyu mantuan pikeun gancang ngadeteksi jeung ngabéréskeun masalah. Ayeuna CI dianggo ku sadaya departemén raksasa IT.

Integrasi kontinyu ogé ngabantosan perusahaan leutik, sareng alat CI ogé dianggo ku organisasi kauangan sareng kasehatan. Contona, di Morningstar, jasa integrasi kontinyu mantuan patch vulnerabilities 70% leuwih gancang. Sareng platform médis Philips Healthcare tiasa ngagandakeun laju apdet tés.

instrumen

Ieu sababaraha alat populér pikeun CI:

  • Jenkins mangrupa salah sahiji sistem CI pang populerna. Éta ngadukung langkung ti sarébu plugins pikeun integrasi sareng sababaraha VCS, platform awan sareng jasa anu sanés. Urang ogé ngagunakeun Jenkins di 1cloud: alat kaasup kana sistem DevOps kami. Anjeunna rutin pariksa cabang Git dimaksudkeun pikeun nguji.
  • Buildbot - kerangka python pikeun nulis prosés integrasi kontinyu anjeun sorangan. Setélan awal alatna rada rumit, tapi ieu dibales ku pilihan kustomisasi anu lega. Diantara kaunggulan tina kerangka, pamaké nyorot inténsitas sumberdaya low na.
  • Konperénsi CI mangrupikeun server ti Pivotal anu nganggo wadah Docker. Concourse CI ngahiji sareng alat naon waé sareng sistem kontrol versi. Pamekar nyatakeun yén sistem éta cocog pikeun digawé di perusahaan naon waé ukuranana.
  • Gitlab CI mangrupakeun alat diwangun kana sistem kontrol versi GitLab. Ladenan dijalankeun dina awan sareng nganggo file YAML pikeun konfigurasi. Kawas Concourse, Gitlab CI lumaku Wadah Docker anu ngabantosan ngasingkeun prosés anu béda-béda.
  • Kodeu nyaéta server CI awan anu tiasa dianggo sareng GitHub, GitLab sareng BitBucket. Platformna henteu meryogikeun setelan awal anu panjang - prosés CI anu tos dipasang standar sayogi dina Codeship. Pikeun leutik (nepi ka 100 ngawangun per bulan) sareng proyék open source, Codeship sayogi gratis.

Bahan tina blog perusahaan kami:

sumber: www.habr.com

Tambahkeun komentar