Aiuto: cos'è la Continuous Delivery

In precedenza, noi detto sull'integrazione continua (CI). Continuiamo con la consegna continua. Questo è un insieme di metodi di sviluppo del software. Aiuta a garantire che il codice sia pronto per la distribuzione.

Aiuto: cos'è la Continuous Delivery
/Pixabay/ bluebudgie / PL

storia

Si potrebbe rivedere la frase consegna continua manifesto agile dal 2001 all'inizio dell'elenco dei principi fondamentali: “La priorità è risolvere i problemi dei clienti attraverso la fornitura continua di software aggiornato”.

Nel 2010, Jez Humble e David Farley hanno pubblicato libro tramite consegna continua. Secondo gli autori, il CD completa l’approccio Integrazione continua e consente di semplificare la preparazione del codice per la distribuzione.

Dopo la pubblicazione del libro, l’approccio cominciò a guadagnare popolarità e nel giro di un paio d’anni divenne quasi universalmente accettato. Secondo sondaggio, condotto tra oltre 600 sviluppatori e responsabili IT nel 2014, ha evidenziato che il 97% dei responsabili tecnici e l'84% dei programmatori avevano familiarità con la distribuzione continua.

Ora questo approccio rimane uno dei più popolari. Secondo uno studio del 2018 che ha coinvolto la comunità IT DevOps e Jenkins Community, esso usi metà degli oltre mille intervistati intervistati.

Come funziona la consegna continua?

La base del CD è la disponibilità del codice per la distribuzione. Per eseguire questo compito, viene utilizzata l'automazione del processo di preparazione del software per il rilascio. Dovrebbe essere standard in diversi ambienti di sviluppo, il che aiuterà a trovare rapidamente i punti deboli e a ottimizzarli. Ad esempio, velocizzare i test.

Un esempio di processo di consegna continua è simile al seguente:

Aiuto: cos'è la Continuous Delivery

Se l'approccio di Integrazione Continua è responsabile dell'automazione delle prime due fasi, la Consegna Continua è responsabile delle due successive. La stabilità del processo è garantita, tra le altre cose, dai sistemi gestione della configurazione. Monitorano i cambiamenti nell'infrastruttura, nei database e nelle dipendenze. La distribuzione stessa può essere automatizzata o eseguita manualmente.

Al processo vengono imposti i seguenti requisiti:

  • Disponibilità di informazioni sulla disponibilità per entrare nell'ambiente di produzione e disponibilità per il rilascio immediato (gli strumenti CD testano il codice e consentono di valutare l'effetto delle modifiche nel rilascio).
  • Responsabilità complessiva del prodotto finale. Il team del prodotto - manager, sviluppatori, tester - pensa al risultato e non solo alla propria area di responsabilità (il risultato è una versione funzionante disponibile per gli utenti del prodotto).

Nei CD viene solitamente utilizzato revisione del codicee per raccogliere le opinioni dei clienti: il principio lancio oscuro. La nuova funzionalità viene inizialmente rilasciata a un piccolo segmento di utenti: la loro esperienza di interazione con il prodotto aiuta a trovare carenze e bug che non sono stati notati durante i test interni.

Qual è il vantaggio?

La distribuzione continua aiuta a semplificare l'implementazione del codice, il che ha un impatto positivo sulla produttività e riduce la probabilità di esaurimento dei dipendenti. In definitiva, ciò riduce i costi complessivi di sviluppo. Ad esempio, il CD ha aiutato uno dei team HP ridurre tali costi del 40%.

Inoltre, secondo uno studio del 2016 (pagina 28 documento) - le aziende che hanno implementato il CD risolvono i problemi di sicurezza delle informazioni il 50% più velocemente rispetto a quelle che non utilizzano l'approccio. In una certa misura, questa differenza può essere spiegata dalle prestazioni degli strumenti di automazione dei processi.

Un altro vantaggio è l'accelerazione dei rilasci. Consegna continua presso lo studio di sviluppo finlandese aiutato aumentare la velocità di assemblaggio del codice del 25%.

Potenziali difficoltà

Il primo e principale problema è la necessità di ricostruire processi familiari. Per mostrare i vantaggi del nuovo approccio, vale la pena passare gradualmente al CD, iniziando non dalle applicazioni ad alta intensità di manodopera.

Il secondo potenziale problema è il gran numero di rami di codice. La conseguenza della “ramificazione” sono frequenti conflitti e ulteriori perdite di una grande quantità di tempo. Possibile soluzione: approccio senza rami.

In particolare, in alcune aziende le principali difficoltà sorgono con i test: richiedono troppo tempo. I risultati dei test spesso devono essere analizzati manualmente, ma una possibile soluzione potrebbe essere quella di parallelizzare i test nelle prime fasi di implementazione del CD.

Dovresti anche formare i dipendenti a lavorare con nuovi strumenti: un programma educativo preliminare farà risparmiare tempo e fatica agli sviluppatori.

Aiuto: cos'è la Continuous Delivery
/flickr/ h.ger1969 / CC BY-SA

Strumenti

Ecco alcuni strumenti aperti per la distribuzione continua:

  • Vai CD — server per la distribuzione continua in Java e JRuby on Rails. Consente di controllare l'intero processo di distribuzione dell'applicazione: build—test—release. Lo strumento è distribuito con la licenza Apache 2.0. Lo potete trovare sul sito ufficiale guida alla configurazione.
  • capistrano — un framework per la creazione di script che automatizzano la distribuzione di applicazioni in Ruby, Java o PHP. Capistrano è in grado di eseguire comandi su una macchina remota collegandosi ad essa tramite SSH. Funziona con altri strumenti di integrazione e distribuzione continua, come il server Integrity CI.
  • Gradle è uno strumento multipiattaforma che automatizza l'intero ciclo di sviluppo dell'applicazione. Gradle funziona con Java, Python, C/C++, Scala, ecc. È disponibile l'integrazione con Eclipse, IntelliJ e Jenkins.
  • Fuco - Piattaforma CD in lingua Go. Il drone può essere distribuito on-premise o nel cloud. Lo strumento è basato su contenitori e utilizza file YAML per gestirli.
  • Spinnaker — una piattaforma per la fornitura continua di codice in sistemi multi-cloud. Sviluppato da Netflix, gli ingegneri di Google hanno svolto un ruolo importante nello sviluppo dello strumento. Istruzioni per l'installazione lo trovi sul sito ufficiale.

Cosa leggere sul nostro blog aziendale:

Fonte: habr.com

Aggiungi un commento