Referenza: kif jaħdem il-proċess ta' Integrazzjoni Kontinwa

Illum se nħarsu lejn l-istorja tat-terminu, niddiskutu d-diffikultajiet tal-implimentazzjoni tas-CI, u nipprovdu diversi għodod popolari li jgħinuk taħdem magħha.

Referenza: kif jaħdem il-proċess ta' Integrazzjoni Kontinwa
/Flickr/ Altug Karakoc / CC BY / Ritratt modifikat

Terminu

L-Integrazzjoni Kontinwa hija approċċ għall-iżvilupp tal-applikazzjoni li jinvolvi proġett frekwenti bini u ttestjar tal-kodiċi.

L-għan huwa li l-proċess ta 'integrazzjoni jkun prevedibbli u jinstabu bugs u żbalji potenzjali fi stadju bikri, sabiex ikun hemm aktar ħin biex jiġu rranġati.

It-terminu Integrazzjoni Kontinwa deher għall-ewwel darba fl-1991. Ġie introdott mill-kreatur tal-lingwa UML Grady Butch (Grady Booch). L-inġinier introduċa l-kunċett ta 'CI bħala parti mill-prattika ta' żvilupp tiegħu stess - Metodu Booch. Implika rfinar inkrementali tal-arkitettura meta jiġu ddisinjati sistemi orjentati lejn l-oġġetti. Gradi ma ddeskriva l-ebda rekwiżit għal integrazzjoni kontinwa. Iżda aktar tard fil-ktieb tiegħu "Analiżi Orjentata lejn l-Oġġetti u Disinn b'Applikazzjonijiet"Hu qal li l-għan tal-metodoloġija huwa li tħaffef ir-rilaxx ta '"rilaxxi interni."

Story

Fl-1996, CI ġiet adottata mill-ħallieqa tal-metodoloġija programmazzjoni estrema (XP) - Kent Beck (Kent Beck) u Ron Jeffries (Ron Jeffries). L-integrazzjoni kontinwa saret wieħed mit-tnax-il prinċipju ewlieni tal-approċċ tagħhom. Il-fundaturi ta 'XP iċċaraw ir-rekwiżiti għall-metodoloġija CI u nnutaw il-ħtieġa li jinbena l-proġett diversi drabi kuljum.

Fil-bidu tas-snin 2000, wieħed mill-fundaturi tal-Alleanza Agile beda jippromwovi l-metodoloġija ta 'integrazzjoni kontinwa Martin Fowler (Martin Fowler). L-esperimenti tiegħu ma 'CI wasslu għall-ewwel għodda tas-softwer f'dan il-qasam - CruiseControl. L-utilità ġiet maħluqa mill-kollega ta 'Martin, Matthew Foemmel.

Iċ-ċiklu tal-bini fl-għodda huwa implimentat bħala daemon li perjodikament jiċċekkja s-sistema ta 'kontroll tal-verżjoni għal bidliet fil-bażi tal-kodiċi. Is-soluzzjoni tista 'titniżżel illum - it imqassma minn taħt liċenzja bħal BSD.

Bil-miġja ta 'softwer għal CI, aktar u aktar kumpaniji bdew jadottaw il-prattika. Skont ir-riċerka ta’ Forrester [paġna 5 rapport], fl-2009, 86% tal-ħamsin kumpanija tat-teknoloġija mistħarrġa użaw jew implimentaw metodi CI.

Illum, il-prattika tal-Integrazzjoni Kontinwa tintuża minn organizzazzjonijiet minn varjetà wiesgħa ta 'industriji. Fl-2018, fornitur kbir tal-cloud wettaq stħarriġ fost speċjalisti tal-IT minn kumpaniji fis-setturi tas-servizzi, tal-edukazzjoni u tal-finanzi. Mis-sitt elef li wieġbu, 58% qalu li jużaw għodod u prinċipji tas-CI fix-xogħol tagħhom.

Kif taħdem din

L-integrazzjoni kontinwa hija bbażata fuq żewġ għodod: sistema ta 'kontroll tal-verżjoni u server CI. Dan tal-aħħar jista 'jkun jew apparat fiżiku jew magna virtwali f'ambjent ta' sħab. L-iżviluppaturi jtellgħu kodiċi ġdid darba jew aktar kuljum. Is-server CI awtomatikament jikkopjaha bid-dipendenzi kollha u jibniha. Wara, imexxi testijiet tal-integrazzjoni u tal-unità. Jekk it-testijiet jgħaddu b'suċċess, is-sistema CI tuża l-kodiċi.

Id-dijagramma tal-proċess ġenerali tista 'tiġi rappreżentata kif ġej:

Referenza: kif jaħdem il-proċess ta' Integrazzjoni Kontinwa

Il-metodoloġija CI tagħmel għadd ta' rekwiżiti għall-iżviluppaturi:

  • Ikkoreġi l-problemi immedjatament. Dan il-prinċipju wasal għal CI minn programmazzjoni estrema. L-iffissar tal-bugs huwa l-ogħla prijorità tal-iżviluppaturi.
  • Awtomatizza l-proċessi. L-iżviluppaturi u l-maniġers għandhom kontinwament ifittxu xkiel fil-proċess ta 'integrazzjoni u jeliminawhom. Pereżempju, ħafna drabi jkun hemm ostakolu fl-integrazzjoni jirriżulta ittestjar.
  • Kondotta assemblaġġi spiss kemm jista 'jkun. Darba kuljum biex tissinkronizza x-xogħol tat-tim.

Diffikultajiet ta' implimentazzjoni

L-ewwel problema hija spejjeż operattivi għoljin. Anke jekk kumpanija tuża għodod CI miftuħa (li se nitkellmu aktar tard), xorta se jkollha tonfoq flus fuq appoġġ għall-infrastruttura. Madankollu, it-teknoloġija tal-cloud tista' tkun is-soluzzjoni.

Jissimplifikaw l-assemblaġġ ta 'konfigurazzjonijiet tal-kompjuter fuq skala differenti. Plus tal-kumpanija huma mħallsa biss għar-riżorsi użati, li jgħin biex tiffranka l-infrastruttura.

Skont stħarriġ [paġna 14 oġġetti], l-integrazzjoni kontinwa żżid it-tagħbija fuq l-impjegati tal-kumpanija (għall-inqas għall-ewwel). Għandhom jitgħallmu għodod ġodda, u l-kollegi mhux dejjem jgħinu fit-taħriġ. Għalhekk, trid tittratta oqfsa u servizzi ġodda fuq il-go.

It-tielet diffikultà hija problemi bl-awtomazzjoni. Organizzazzjonijiet b'ammont kbir ta 'kodiċi wirt li mhux kopert minn testijiet awtomatizzati jiffaċċjaw din il-problema. Dan iwassal għall-fatt li l-kodiċi sempliċement jinkiteb mill-ġdid qabel l-implimentazzjoni sħiħa tas-CI.

Referenza: kif jaħdem il-proċess ta' Integrazzjoni Kontinwa
/Flickr/ theilr / CC BY-SA

Min juża

Il-ġganti tal-IT kienu fost l-ewwel li apprezzaw il-benefiċċji tal-metodoloġija. Google użi integrazzjoni kontinwa minn nofs is-snin 2000. CI ġiet implimentata biex issolvi l-problema tad-dewmien fil-magna tat-tiftix. L-integrazzjoni kontinwa għenet biex jinstabu u jiġu solvuti problemi malajr. Issa CI jintuża mid-dipartimenti kollha tal-ġgant tal-IT.

L-integrazzjoni kontinwa tgħin ukoll lill-kumpaniji żgħar, u l-għodod tas-CI jintużaw ukoll minn organizzazzjonijiet finanzjarji u tal-kura tas-saħħa. Pereżempju, f'Morningstar, is-servizzi ta' integrazzjoni kontinwa għenu l-impjastru tal-vulnerabbiltajiet 70% aktar malajr. U l-pjattaforma medika Philips Healthcare setgħet tirdoppja l-veloċità tal-aġġornamenti tal-ittestjar.

Għodod

Hawn huma xi għodod popolari għas-CI:

  • Jenkins hija waħda mis-sistemi CI l-aktar popolari. Jappoġġja aktar minn elf plugin għall-integrazzjoni ma 'diversi VCS, pjattaformi cloud u servizzi oħra. Aħna nużaw ukoll Jenkins f'1cloud: għodda inklużi fis-sistema DevOps tagħna. Huwa jiċċekkja regolarment il-fergħa Git maħsuba għall-ittestjar.
  • Buildbot — qafas python għall-kitba tal-proċessi ta’ integrazzjoni kontinwa tiegħek stess. Is-setup inizjali tal-għodda hija pjuttost ikkumplikata, iżda dan huwa kkumpensat mill-għażliet ta 'personalizzazzjoni wiesgħa. Fost il-vantaġġi tal-qafas, l-utenti jenfasizzaw l-intensità baxxa tar-riżorsi tiegħu.
  • Concourse CI huwa server minn Pivotal li juża kontenituri Docker. Concourse CI jintegra ma 'kwalunkwe għodda u sistemi ta' kontroll tal-verżjoni. L-iżviluppaturi jinnotaw li s-sistema hija adattata għax-xogħol f'kumpaniji ta 'kull daqs.
  • Gitlab CI hija għodda mibnija fis-sistema ta 'kontroll tal-verżjoni GitLab. Is-servizz jaħdem fis-sħab u juża fajls YAML għall-konfigurazzjoni. Bħal Concourse, Gitlab CI japplika Kontenituri Docker li jgħinu biex jiġu iżolati proċessi differenti minn xulxin.
  • Kodiċi huwa cloud CI server li jaħdem ma' GitHub, GitLab u BitBucket. Il-pjattaforma ma teħtieġx setup inizjali twil - proċessi CI standard installati minn qabel huma disponibbli f'Codeship. Għal proġetti żgħar (sa 100 bini fix-xahar) u open source, Codeship huwa disponibbli b'xejn.

Materjali mill-blog korporattiv tagħna:

Sors: www.habr.com

Żid kumment