Riferimento: come funziona il processo di Integrazione Continua

Oggi esamineremo la storia del termine, discuteremo le difficoltà legate all'implementazione della CI e forniremo diversi strumenti popolari che ti aiuteranno a lavorarci.

Riferimento: come funziona il processo di Integrazione Continua
/flickr/ Altug Karakoc / CC BY / Foto modificata

termine

L'integrazione continua è un approccio allo sviluppo di applicazioni che prevede frequenti build di progetti e test del codice.

L’obiettivo è rendere prevedibile il processo di integrazione e individuare potenziali bug ed errori in una fase iniziale, in modo da avere più tempo per risolverli.

Il termine Integrazione Continua è apparso per la prima volta nel 1991. È stato introdotto dal creatore del linguaggio UML Grady Butch (Grady Booch). L'ingegnere ha introdotto il concetto di CI come parte della propria pratica di sviluppo: Metodo Booch. Implicava un perfezionamento incrementale dell'architettura durante la progettazione di sistemi orientati agli oggetti. Gradi non ha descritto alcun requisito per l'integrazione continua. Ma più avanti nel suo libro “Analisi orientata agli oggetti e progettazione con applicazioni“Ha affermato che l’obiettivo della metodologia è accelerare il rilascio di “rilasci interni”.

storia

Nel 1996, la CI è stata adottata dai creatori della metodologia programmazione estrema (XP)- Kent Beck (Kent Beck) e Ron Jeffries (Ron Jeffries). L'integrazione continua è diventata uno dei dodici principi chiave del loro approccio. I fondatori di XP hanno chiarito i requisiti della metodologia CI e hanno notato la necessità di costruire il progetto più volte al giorno.

All'inizio degli anni 2000, uno dei fondatori dell'Agile Alliance iniziò a promuovere la metodologia di integrazione continua Martin Fowler (Martin Fowler). I suoi esperimenti con la CI hanno portato al primo strumento software in questo settore: CruiseControl. L'utilità è stata creata dal collega di Martin, Matthew Foemmel.

Il ciclo di compilazione nello strumento è implementato come un demone che controlla periodicamente il sistema di controllo della versione per eventuali modifiche nel codice base. La soluzione può essere scaricata oggi stesso: it distribuito da sotto una licenza simile a BSD.

Con l'avvento del software per la CI, sempre più aziende hanno iniziato ad adottare questa pratica. Secondo una ricerca Forrester [pagina 5 rapporto], nel 2009, l'86% delle cinquanta aziende tecnologiche intervistate ha utilizzato o implementato metodi di CI.

Oggi, la pratica dell’integrazione continua viene utilizzata da organizzazioni di un’ampia varietà di settori. Nel 2018 un grande fornitore di servizi cloud ha condotto un sondaggio tra gli specialisti IT di aziende dei settori dei servizi, della formazione e della finanza. Dei seimila intervistati, il 58% ha affermato di utilizzare strumenti e principi di CI nel proprio lavoro.

Come funziona

L'integrazione continua si basa su due strumenti: un sistema di controllo della versione e un server CI. Quest'ultimo può essere sia un dispositivo fisico che una macchina virtuale in ambiente cloud. Gli sviluppatori caricano il nuovo codice una o più volte al giorno. Il server CI lo copia automaticamente con tutte le dipendenze e lo crea. Successivamente, esegue l'integrazione e i test unitari. Se i test vengono superati con successo, il sistema CI distribuisce il codice.

Lo schema generale del processo può essere rappresentato come segue:

Riferimento: come funziona il processo di Integrazione Continua

La metodologia CI impone una serie di requisiti agli sviluppatori:

  • Correggere immediatamente i problemi. Questo principio è arrivato alla CI dalla programmazione estrema. La correzione dei bug è la massima priorità degli sviluppatori.
  • Automatizzare i processi. Sviluppatori e manager devono costantemente cercare i colli di bottiglia nel processo di integrazione ed eliminarli. Ad esempio, spesso si verifica un collo di bottiglia nell’integrazione risulta test.
  • Condurre assemblee il più spesso possibile. Una volta al giorno per sincronizzare il lavoro del team.

Difficoltà di implementazione

Il primo problema sono gli alti costi operativi. Anche se un’azienda utilizza strumenti di CI aperti (di cui parleremo più avanti), dovrà comunque spendere soldi per il supporto dell’infrastruttura. Tuttavia, le tecnologie cloud potrebbero essere la soluzione.

Semplificano l'assemblaggio di configurazioni di computer su scala diversa. Plus dell'azienda essere pagato solo per le risorse utilizzate, il che aiuta a risparmiare sulle infrastrutture.

Secondo i sondaggi [pagina 14 articoli], l'integrazione continua aumenta il carico sui dipendenti dell'azienda (almeno all'inizio). Devono apprendere nuovi strumenti e non sempre i colleghi aiutano con la formazione. Pertanto, devi affrontare al volo nuovi framework e servizi.

La terza difficoltà sono i problemi con l'automazione. Le organizzazioni con una grande quantità di codice legacy non coperto da test automatizzati devono affrontare questo problema. Ciò porta al fatto che il codice viene semplicemente riscritto prima della completa implementazione di CI.

Riferimento: come funziona il processo di Integrazione Continua
/flickr/ loro / CC BY-SA

Chi usa

I giganti dell’IT sono stati tra i primi ad apprezzare i vantaggi della metodologia. Google usi integrazione continua dalla metà degli anni 2000. La CI è stata implementata per risolvere il problema dei ritardi nel motore di ricerca. L'integrazione continua ha contribuito a rilevare e risolvere rapidamente i problemi. Ora la CI viene utilizzata da tutti i dipartimenti del gigante IT.

L’integrazione continua aiuta anche le piccole imprese e gli strumenti CI vengono utilizzati anche da organizzazioni finanziarie e sanitarie. Ad esempio, presso Morningstar, i servizi di integrazione continua hanno contribuito a correggere le vulnerabilità con una velocità del 70% più rapida. E la piattaforma medica di Philips Healthcare è riuscita a raddoppiare la velocità degli aggiornamenti dei test.

Strumenti

Ecco alcuni strumenti popolari per CI:

  • Jenkins è uno dei sistemi CI più popolari. Supporta più di mille plugin per l'integrazione con vari VCS, piattaforme cloud e altri servizi. Utilizziamo anche Jenkins su 1cloud: tool incluso nel nostro sistema DevOps. Controlla regolarmente il ramo Git destinato ai test.
  • Costruiscibot - un framework Python per scrivere i propri processi di integrazione continua. La configurazione iniziale dello strumento è piuttosto complicata, ma ciò è compensato dalle ampie opzioni di personalizzazione. Tra i vantaggi del quadro, gli utenti evidenziano la sua bassa intensità di risorse.
  • Concorso CI è un server di Pivotal che utilizza contenitori Docker. Concourse CI si integra con qualsiasi strumento e sistema di controllo della versione. Gli sviluppatori notano che il sistema è adatto al lavoro in aziende di qualsiasi dimensione.
  • CI Gitlab è uno strumento integrato nel sistema di controllo della versione GitLab. Il servizio viene eseguito nel cloud e utilizza file YAML per la configurazione. Come Concourse, Gitlab CI si applica Contenitori Docker che aiutano a isolare processi diversi gli uni dagli altri.
  • Coordinamento è un server CI cloud che funziona con GitHub, GitLab e BitBucket. La piattaforma non richiede una lunga configurazione iniziale: i processi CI standard preinstallati sono disponibili in Codeship. Per progetti di piccole dimensioni (fino a 100 build al mese) e open source, Codeship è disponibile gratuitamente.

Materiali dal nostro blog aziendale:

Fonte: habr.com

Aggiungi un commento