Referinsje: hoe't it trochgeande yntegraasjeproses wurket

Hjoed sille wy de skiednis fan 'e term besjen, de swierrichheden beprate by it ymplementearjen fan CI, en ferskate populêre ark leverje dy't jo helpe om dermei te wurkjen.

Referinsje: hoe't it trochgeande yntegraasjeproses wurket
/flickr/ Altug Karakoc / CC BY / Foto feroare

Term

Trochrinnende yntegraasje is in oanpak foar applikaasjeûntwikkeling dy't faak projektbou en koadetesten omfettet.

It doel is om it yntegraasjeproses foarsisber te meitsjen en potinsjele bugs en flaters yn in betiid stadium te detektearjen, sadat der mear tiid is om se te reparearjen.

De term Continuous Integration ferskynde foar it earst yn 1991. It waard yntrodusearre troch de skepper fan 'e UML-taal Grady Butch (Grady Boech). De yngenieur yntrodusearre it konsept fan CI as ûnderdiel fan syn eigen ûntwikkelingspraktyk - Booch metoade. It ymplisearre inkrementele ferfining fan 'e arsjitektuer by it ûntwerpen fan objekt-rjochte systemen. Gradi beskreau gjin easken foar trochgeande yntegraasje. Mar letter yn syn boek "Objekt-rjochte analyse en ûntwerp mei applikaasjes"Hy sei dat it doel fan 'e metodyk is om de frijlitting fan" ynterne releases te fersnellen.

История

Yn 1996 waard CI oannommen troch de makkers fan 'e metodyk ekstreme programmearring (XP) - Kent Beck (Kent Beck) en Ron Jeffries (Ron Jeffries). Trochrinnende yntegraasje waard ien fan 'e tolve haadprinsipes fan har oanpak. De oprjochters fan XP ferdúdliken de easken foar de CI-metodology en merkten op de needsaak om it projekt ferskate kearen deis te bouwen.

Yn 'e iere 2000's begon ien fan'e oprjochters fan 'e Agile Alliance de metoade foar trochgeande yntegraasje te befoarderjen Martin Fowler (Martin Fowler). Syn eksperiminten mei CI liede ta it earste software-ark op dit gebiet - CruiseControl. It nut is makke troch Martin syn kollega, Matthew Foemmel.

De bousyklus yn it ark wurdt ymplementearre as in daemon dy't periodyk it ferzjekontrôlesysteem kontrolearret foar feroaringen yn 'e koadebasis. De oplossing kin wurde ynladen hjoed - it ferspraat troch ûnder in BSD-like lisinsje.

Mei de komst fan software foar CI begonen mear en mear bedriuwen de praktyk oan te nimmen. Neffens Forrester-ûndersyk [side 5 melde], yn 2009, 86% fan de fyftich ûndersochte technologybedriuwen brûkten of ymplementearre CI-metoaden.

Tsjintwurdich wurdt de praktyk fan trochgeande yntegraasje brûkt troch organisaasjes út in grut ferskaat oan yndustry. Yn 2018 hat in grutte wolkprovider in enkête útfierd ûnder IT-spesjalisten fan bedriuwen yn 'e tsjinsten, ûnderwiis en finânsjes. Fan 'e seis tûzen respondinten sei 58% dat se CI-ark en prinsipes brûke yn har wurk.

Hoe docht dit wurk

Trochrinnende yntegraasje is basearre op twa ark: in ferzjekontrôlesysteem en in CI-tsjinner. Dat lêste kin in fysyk apparaat wêze as in firtuele masine yn in wolkomjouwing. Untwikkelders uploade nije koade ien of mear kearen deis. De CI-tsjinner kopiearret it automatysk mei alle ôfhinklikens en bout it. Nei ôfrin rint it yntegraasje- en ienheidstests. As de tests mei sukses passe, set it CI-systeem de koade yn.

It algemiene prosesdiagram kin as folget wurde fertsjintwurdige:

Referinsje: hoe't it trochgeande yntegraasjeproses wurket

De CI-metodology stelt in oantal easken foar ûntwikkelders:

  • Korrigearje problemen fuortendaliks. Dit prinsipe kaam ta CI út ekstreme programmearring. It reparearjen fan bugs is de heechste prioriteit fan de ûntwikkelders.
  • Automatisearje prosessen. Untwikkelders en managers moatte konstant sykje nei knelpunten yn it yntegraasjeproses en eliminearje. Sa sit der faak in knelpunt yn yntegraasje docht bliken testen.
  • Fiere gearkomsten sa faak mooglik. Ien kear deis om it wurk fan it team te syngronisearjen.

Ymplemintaasje swierrichheden

It earste probleem is hege eksploitaasjekosten. Sels as in bedriuw iepen CI-ark brûkt (wêr't wy letter oer sille prate), sil it noch altyd jild moatte besteegje oan ynfrastruktuerstipe. Wolkentechnologyen kinne lykwols de oplossing wêze.

Se ferienfâldigje de gearstalling fan ferskillende skaal kompjûter konfiguraasjes. Plus fan it bedriuw betelje allinich foar de brûkte boarnen, wat helpt te besparjen op ynfrastruktuer.

Neffens enkêtes [side 14 artikels], trochgeande yntegraasje fergruttet de lêst op meiwurkers fan it bedriuw (op syn minst earst). Se moatte nije ark leare, en kollega's helpe net altyd mei training. Dêrom moatte jo ûnderweis mei nije kaders en tsjinsten omgean.

De tredde swierrichheid is problemen mei automatisearring. Organisaasjes mei in grutte hoemannichte legacy-koade dy't net wurdt bedekt troch automatisearre tests stean foar dit probleem. Dit liedt ta it feit dat de koade gewoan oerskreaun wurdt foar de folsleine ymplemintaasje fan CI.

Referinsje: hoe't it trochgeande yntegraasjeproses wurket
/flickr/ theilr / CC BY-SA

Wa brûkt

IT-giganten wiene ûnder de earsten dy't de foardielen fan 'e metodyk wurdearje. Google brûkt trochgeande yntegraasje sûnt it midden fan 'e 2000s. CI waard ymplementearre om it probleem fan fertragingen yn 'e sykmasine op te lossen. Trochrinnende yntegraasje holp om problemen fluch te detektearjen en op te lossen. No wurdt CI brûkt troch alle ôfdielingen fan 'e IT-gigant.

Trochrinnende yntegraasje helpt ek lytse bedriuwen, en CI-ark wurde ek brûkt troch finansjele en sûnensorganisaasjes. Bygelyks, by Morningstar holpen trochgeande yntegraasjetsjinsten kwetsberens 70% rapper te patchjen. En it medyske platfoarm Philips Healthcare koe de snelheid fan testupdates ferdûbelje.

Tools

Hjir binne wat populêre ark foar CI:

  • Jenkins is ien fan de meast populêre CI systemen. It stipet mear as tûzen plugins foar yntegraasje mei ferskate VCS, wolkplatfoarms en oare tsjinsten. Wy brûke ek Jenkins by 1cloud: ark opnommen yn ús DevOps-systeem. Hy kontrolearret geregeld de Git-tûke dy't bedoeld is foar testen.
  • Buildbot - in python-kader foar it skriuwen fan jo eigen trochgeande yntegraasjeprosessen. De earste opset fan it ark is frij yngewikkeld, mar dit wurdt kompensearre troch de brede oanpassingsopsjes. Under de foardielen fan it ramt markearje brûkers har lege boarne-yntensiteit.
  • Konkoers CI is in tsjinner fan Pivotal dy't Docker-konteners brûkt. Concourse CI yntegreart mei alle ark en ferzjekontrôlesystemen. De ûntwikkelders merken op dat it systeem geskikt is foar wurk yn bedriuwen fan elke grutte.
  • Gitlab CI is in ark ynboud yn it GitLab ferzjekontrôlesysteem. De tsjinst rint yn 'e wolk en brûkt YAML-bestannen foar konfiguraasje. Lykas Concourse, Gitlab CI jildt Docker-konteners dy't helpe om ferskate prosessen fan elkoar te isolearjen.
  • Koadskip is in wolk CI-tsjinner dy't wurket mei GitHub, GitLab en BitBucket. It platfoarm hat gjin lange inisjele opset nedich - standert foarôf ynstalleare CI-prosessen binne beskikber yn Codeship. Foar lytse (oant 100 builds per moanne) en iepen boarne projekten is Codeship fergees beskikber.

Materiaal fan ús bedriuwsblog:

Boarne: www.habr.com

Add a comment