Riferimentu: cumu travaglia u prucessu di Integrazione Continua

Oghje avemu da fighjulà a storia di u terminu, discute e difficultà di implementà CI, è furnisce parechji strumenti populari chì vi aiutanu à travaglià cun ellu.

Riferimentu: cumu travaglia u prucessu di Integrazione Continua
/flickr/ Altug Karakoc / CC BY / Foto mudificata

U terminu

L'Integrazione Continua hè un approcciu à u sviluppu di l'applicazioni chì implica custruzzioni frequenti di prughjettu è teste di codice.

L'obiettivu hè di rende u prucessu di integrazione prevedibile è detectà i bug potenziali è l'errori in una prima tappa, in modu chì ci hè più tempu per riparà.

U terminu Integrazione Continua hè apparsu prima in u 1991. Hè statu introduttu da u creatore di a lingua UML Grady Butch (Grady Booch). L'ingegnere hà introduttu u cuncettu di CI cum'è parte di a so propria pratica di sviluppu - Metudu Booch. Implicava un raffinamentu incrementale di l'architettura in u disignu di sistemi orientati à l'ughjettu. Gradi ùn hà micca descrittu nisun requisitu per l'integrazione cuntinua. Ma dopu in u so libru "Analisi è Design Orientata à l'Ogetti cù Applicazioni"Ellu disse chì u scopu di a metodulugia hè di accelerà a liberazione di "liberazioni internu".

История

In u 1996, CI hè statu aduttatu da i creatori di a metodulugia prugrammazione estrema (XP) - Kent Beck (Kent Beck) è Ron Jeffries (Ron Jeffries). L'integrazione cuntinua hè diventata unu di i dodici principii chjave di u so approcciu. I fundatori di XP clarificanu i requisiti per a metodulugia CI è anu nutatu a necessità di custruisce u prughjettu parechje volte à ghjornu.

In u principiu di l'anni 2000, unu di i fundatori di l'Agile Alliance hà cuminciatu à prumove a metodulugia di integrazione cuntinua. Martin Fowler (Martin Fowler). I so esperimenti cù CI hà purtatu à u primu strumentu software in questa zona - CruiseControl. L'utilità hè stata creata da u cullegu di Martin, Matthew Foemmel.

U ciculu di custruzzione in l'uttellu hè implementatu cum'è un daemon chì verifica periodicamente u sistema di cuntrollu di versione per cambiamenti in a basa di codice. A suluzione pò esse telecaricatu oghje - it distribuitu da sottu una licenza BSD-like.

Cù l'avventu di u software per CI, più è più cumpagnie cuminciaru à aduttà a pratica. Sicondu a ricerca di Forrester [pagina 5 rapportu], in u 2009, 86% di e cinquanta cumpagnie tecnologiche indagate anu utilizatu o implementatu metudi CI.

Oghje, a pratica di l'Integrazione Continua hè aduprata da l'urganisazioni da una larga varietà di industrii. In 2018, un grande fornitore di nuvola hà realizatu un sondaghju trà i specialisti IT da cumpagnie in i settori di servizii, educazione è finanza. Di i sei mila rispondenti, 58% hà dettu chì utilizanu strumenti è principii CI in u so travagliu.

Cumu serà ch'ella ùn stu travagliu

L'integrazione cuntinua hè basatu annantu à dui strumenti: un sistema di cuntrollu di versione è un servitore CI. L'ultime pò esse un dispositivu fisicu o una macchina virtuale in un ambiente nuvola. I sviluppatori caricanu u novu codice una o più volte à ghjornu. U servitore CI copia automaticamente cù tutte e dipendenze è u custruisce. Dopu, corre l'integrazione è e teste di unità. Se i testi passanu bè, u sistema CI implementa u codice.

U schema generale di u prucessu pò esse rapprisintatu cum'è seguente:

Riferimentu: cumu travaglia u prucessu di Integrazione Continua

A metodulugia CI rende una quantità di esigenze per i sviluppatori:

  • Corrige i prublemi immediatamente. Stu principiu hè vinutu à CI da a prugrammazione estrema. A correzione di bug hè a più alta priorità di i sviluppatori.
  • Automatizà i prucessi. I sviluppatori è i gestori anu da circà constantemente i colli di bottiglia in u prucessu di integrazione è eliminà. Per esempiu, ci hè spessu una buttiglia in l'integrazione risulta prova.
  • Cunduce l'assemblee quant'è più spessu pussibule. Una volta à ghjornu per sincronizà u travagliu di a squadra.

Difficultà di implementazione

U primu prublema hè l'alti costi operativi. Ancu s'è una cumpagnia usa l'arnesi CI aperti (chì parlemu più tardi), averà sempre da spende soldi in supportu di l'infrastruttura. Tuttavia, e tecnulugia di nuvola pò esse a suluzione.

Simplificanu l'assemblea di cunfigurazioni di computer di diverse scala. Plus di a cumpagnia pagà solu per i risorse utilizati, chì aiuta à salvà l'infrastruttura.

Sicondu i sondaggi [pagina 14 articuli], l'integrazione cuntinua aumenta a carica nantu à l'impiegati di a cumpagnia (almenu prima). Hanu da amparà novi strumenti, è i culleghi ùn anu micca sempre aiutu cù a furmazione. Per quessa, avete da trattà cù novi frameworks è servizii in viaghju.

A terza difficultà hè prublemi cù l'automatizazione. L'urganisazioni cù una grande quantità di codice legatu chì ùn hè micca cupartu da teste automatizati face stu prublema. Questu porta à u fattu chì u codice hè simplicemente riscritto prima di l'implementazione completa di CI.

Riferimentu: cumu travaglia u prucessu di Integrazione Continua
/flickr/ ilr / CC BY-SA

Chi usa

I giganti IT eranu trà i primi à apprezzà i benefici di a metodulugia. Google usi integrazione cuntinua da a mità di l'anni 2000. CI hè stata implementata per risolve u prublema di ritardi in u mutore di ricerca. L'integrazione cuntinua hà aiutatu à detectà è risolve rapidamente i prublemi. Avà CI hè utilizatu da tutti i dipartimenti di u giant IT.

L'integrazione cuntinuu aiuta ancu e piccule imprese, è l'arnesi CI sò ancu utilizati da l'urganisazioni finanziarie è sanitarie. Per esempiu, à Morningstar, i servizii di integrazione cuntinuu aiutanu à patch vulnerability 70% più veloce. È a piattaforma medica Philips Healthcare hà sappiutu duppià a velocità di l'aghjurnamenti di teste.

Ferramenti

Eccu alcuni strumenti populari per CI:

  • Jenkins hè unu di i sistemi CI più populari. Supporta più di mille plugins per integrazione cù vari VCS, piattaforme cloud è altri servizii. Avemu ancu aduprà Jenkins à 1cloud: tool inclusu in u nostru sistema DevOps. Verifica regularmente a filiera Git destinata à a prova.
  • Buildbot - un framework python per scrive i vostri prucessi d'integrazione cuntinui. A cunfigurazione iniziale di l'uttellu hè abbastanza cumplicata, ma questu hè compensatu da l'opzioni di persunalizazione larga. Trà i vantaghji di u quadru, l'utilizatori mette in risaltu a so bassa intensità di risorse.
  • Cuncorsu CI hè un servitore da Pivotal chì usa cuntenituri Docker. Concourse CI integra cù qualsiasi arnesi è sistemi di cuntrollu di versione. I sviluppatori notanu chì u sistema hè adattatu per u travagliu in cumpagnie di ogni dimensione.
  • Gitlab CI hè un strumentu integratu in u sistema di cuntrollu di versione GitLab. U serviziu funziona in u nuvulu è usa i schedari YAML per a cunfigurazione. Cum'è Concourse, Gitlab CI s'applica Contenituri Docker chì aiutanu à isolà diversi prucessi l'un l'altru.
  • Codeship hè un servitore CI cloud chì travaglia cù GitHub, GitLab è BitBucket. A piattaforma ùn richiede micca una longa configurazione iniziale - i prucessi standard di CI preinstallati sò dispunibili in Codeship. Per i picculi (finu à 100 build per mese) è prughjetti open source, Codeship hè dispunibule gratuitamente.

Materiali da u nostru blog corporativu:

Source: www.habr.com

Add a comment