Chirevo: maitirwo eKuenderera Kubatanidza maitiro anoshanda

Nhasi tichatarisa nhoroondo yetemu, kukurukura kuomerwa kwekushandisa CI, uye nekupa akati wandei maturusi anozivikanwa achakubatsira iwe kushanda nawo.

Chirevo: maitirwo eKuenderera Kubatanidza maitiro anoshanda
/flickr/ Altug Karakoc / CC BY / Mufananidzo wakagadziridzwa

Izwi

Kuenderera mberi Kubatanidzwa inzira yekuvandudza application iyo inosanganisira kazhinji purojekiti inovaka uye kodhi yekuongorora.

Chinangwa ndechekuita kuti nzira yekubatanidza ifungidzike uye kuona zvingangoitika zvipembenene uye zvikanganiso panguva yekutanga, kuitira kuti pave nenguva yakawanda yekuzvigadzirisa.

Izwi rekuti Continuous Integration rakatanga kuoneka muna 1991. Yakaunzwa nemusiki wemutauro weUML Grady Butch (Grady Booch). Injiniya yakaunza pfungwa yeCI sechikamu chemaitiro ake ekusimudzira - Booch nzira. Yaireva kuwedzera kukwenenzvera kwezvivakwa kana uchigadzira masisitimu anotarisana nechinhu. Gradi haana kutsanangura chero zvidikanwi zvekuenderera mberi kwekubatanidzwa. Asi gare gare mubhuku rake "Object-Oriented Analysis uye Dhizaini nemaApplication"Akataura kuti chinangwa chenzira iyi kukurumidza kuburitswa kwe" kuburitswa kwemukati.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Muna 1996, CI yakagamuchirwa nevagadziri vemaitiro yakanyanya programming (XP) - Kent Beck (Kent Beck) uye Ron Jeffries (Ron Jeffries). Kuenderera mberi kubatanidzwa kwakava imwe yemitemo gumi nembiri yakakosha yemaitiro avo. Vavambi veXP vakajekesa zvinodiwa zveCI nzira uye vakaona kukosha kwekuvaka chirongwa kakawanda pazuva.

Mukutanga kwe2000s, mumwe wevatangi veAgile Alliance akatanga kusimudzira nzira inoenderera yekubatanidza. Martin Fowler (Martin Fowler). Kuedza kwake neCI kwakatungamira kune yekutanga software chishandiso munzvimbo ino - CruiseControl. Iyo yekushandisa yakagadzirwa nemumwe waMartin, Matthew Foemmel.

Kutenderera kwekuvaka muchishandiso kunoitwa sedaemon iyo nguva nenguva inotarisa iyo shanduro yekudzora system yekuchinja mune kodhi base. Mhinduro inogona kutorwa nhasi - iyo inoparadzirwa ne pasi peBSD-serezinesi.

Nekuuya kwesoftware yeCI, makambani mazhinji akatanga kutora tsika iyi. Zvinoenderana neForrester research [peji 5 report], muna 2009, 86% yemakambani makumi mashanu ehunyanzvi akaongororwa akashandiswa kana kuita nzira dzeCI.

Nhasi, tsika yekuenderera mberi kwekubatanidza inoshandiswa nemasangano kubva kune akasiyana maindasitiri. Muna 2018, mupi mukuru wegore akaita ongororo pakati penyanzvi dzeIT kubva kumakambani ari mumasevhisi, dzidzo nezvemari. Pazviuru zvitanhatu vakapindura, 58% vakati vanoshandisa maturusi nemisimboti yeCI mubasa ravo.

Sei basa iri

Kuenderera mberi kubatanidzwa kunobva pazvishandiso zviviri: shanduro yekudzora system uye CI server. Iyo yekupedzisira inogona kunge iri yemuviri mudziyo kana chaiyo muchina munzvimbo yegore. Vagadziri vanoisa kodhi nyowani kamwechete kana kupfuura pazuva. Iyo CI sevha inokopa otomatiki nezvose zvinotsamira uye inoivaka. Mushure meizvozvo, inomhanyisa kusanganisa uye bvunzo dzeyuniti. Kana bvunzo dzakabudirira, iyo CI system inotumira iyo kodhi.

Iyo general process diagraph inogona kumiririrwa sezvizvi:

Chirevo: maitirwo eKuenderera Kubatanidza maitiro anoshanda

Iyo CI nzira inoita zvinoverengeka zvinodikanwa kune vanogadzira:

  • Gadzirisa matambudziko nekukasira. Iyi nheyo yakauya kuCI kubva kune yakanyanyisa hurongwa. Kugadzirisa tsikidzi ndicho chinonyanya kukosha kuvagadziri.
  • Automate maitiro. Vagadziri uye mamaneja vanofanirwa kugara vachitsvaga zvipingamupinyi mukusanganisa maitiro uye kuzvibvisa. Semuenzaniso, kazhinji pane bhodhoro mukubatana zvinobuda kuedza.
  • Itai magungano kakawanda sezvinobvira. Kamwe pazuva kuwiriranisa basa rechikwata.

Matambudziko ekuita

Dambudziko rekutanga imari yekushandisa yakawanda. Kunyangwe kana kambani ikashandisa yakavhurika CI zvishandiso (izvo zvatichataura nezvazvo gare gare), ichave ichiri kushandisa mari parutsigiro rwezvivakwa. Nekudaro, matekinoroji emakore anogona kunge ari mhinduro.

Ivo vanorerutsa kusangana kweakasiyana-mwero makomputa masisitimu. Kuwedzera kwekambani kubhadhara chete kune zviwanikwa zvinoshandiswa, izvo zvinobatsira kuchengetedza pane zvivakwa.

Maererano neongororo [peji 14 zvinyorwa], kuenderera mberi kubatanidzwa kunowedzera mutoro kune vashandi vekambani (kunyanya pakutanga). Ivo vanofanirwa kudzidza maturusi matsva, uye vavanoshanda navo havawanzo kubatsira nekudzidziswa. Naizvozvo, iwe unofanirwa kubata nematanho matsva uye masevhisi panhunzi.

Dambudziko rechitatu matambudziko ane otomatiki. Masangano ane huwandu hukuru hwekodhi yenhaka iyo isina kufukidzwa nemiedzo otomatiki inotarisana nedambudziko iri. Izvi zvinotungamira kune chokwadi chekuti kodhi inongonyorwa patsva isati yaitwa yakazara yeCI.

Chirevo: maitirwo eKuenderera Kubatanidza maitiro anoshanda
/flickr/ theilr / CC BY-SA

Ndiani anoshandisa

IT hofori dzaive pakati pekutanga kuonga mabhenefiti eiyo nzira. Google anoshandisa kuenderera mberi kubatanidzwa kubva pakati pe2000s. CI yakashandiswa kugadzirisa dambudziko rekunonoka mujini yekutsvaga. Kuramba kubatanidzwa kwakabatsira kukurumidza kuona nekugadzirisa matambudziko. Ikozvino CI inoshandiswa nemadhipatimendi ese eiyo IT hofori.

Kuenderera mberi kubatanidzwa kunobatsirawo makambani madiki, uye maturusi eCI anoshandiswawo nemasangano emari uye ehutano. Semuyenzaniso, paMorningstar, kuenderera mberi kwekubatanidza masevhisi kwakabatsira chigamba kusasimba 70% nekukurumidza. Uye iyo Philips Healthcare yekurapa chikuva yakakwanisa kupeta kaviri kumhanya kweyedzo yekuvandudza.

Tools

Heano mamwe maturusi anozivikanwa eCI:

  • Jenkins ndeimwe yeanonyanya kufarirwa CI masisitimu. Inotsigira anopfuura chiuru plugins yekubatanidzwa neVCS dzakasiyana, makore mapuratifomu uye mamwe masevhisi. Isu tinoshandisawo Jenkins pa1cloud: chishandiso inosanganisirwa mune yedu DevOps system. Anogara achitarisa bazi reGit rakagadzirirwa kuongororwa.
  • Buildbot - python framework yekunyora yako yega inoenderera mberi yekubatanidza maitiro. Iyo yekutanga kuseta kwechishandiso chakaomesesa, asi izvi zvinobhadharwa neyakakura maitiro esarudzo. Pakati pezvakanakira chimiro, vashandisi vanosimbisa iyo yakaderera sosi kusimba.
  • Musangano CI iseva kubva kuPivotal inoshandisa Docker midziyo. Concourse CI inobatanidza nechero maturusi uye shanduro yekudzora masisitimu. Vagadziri vanocherechedza kuti hurongwa hwakakodzera kushanda mumakambani emhando ipi zvayo.
  • Gitlab CI chishandiso chakavakirwa muGitLab vhezheni control system. Iyo sevhisi inomhanya mugore uye inoshandisa YAML mafaera kugadzirisa. Kufanana neConcourse, Gitlab CI inoshanda Docker midziyo inobatsira kuparadzanisa maitiro akasiyana kubva kune mumwe.
  • Codeship igore CI server inoshanda neGitHub, GitLab uye BitBucket. Iyo puratifomu haidi kureba kwekutanga kuseta - yakajairwa pre-yakaiswa CI maitiro anowanikwa muCodeship. Kune madiki (anosvika zana anovaka pamwedzi) uye akavhurika sosi mapurojekiti, Codeship inowanikwa mahara.

Zvishandiso kubva kubhizinesi redu blog:

Source: www.habr.com

Voeg