Riferimento: che cos'è il Continuous Delivery

In precedenza abbiamo raccontato di Continuous Integration (CI). Continuando con il Continuous Delivery. Questo è un insieme di metodi per lo sviluppo del software. Aiuta a garantire che il codice sia pronto per il deployment.

Riferimento: che cos'è il Continuous Delivery
/ Pixabay / bluebudgie / PL

Storia

La locuzione continuous delivery è stata vista anche nel manifesto agile del 2001, all'inizio dell'elenco dei principi fondamentali: «La priorità è risolvere i problemi del cliente attraverso la fornitura continua di software attuale».

Nel 2010, Jez Humble e David Farley hanno pubblicato un libro sul Continuous Delivery. Secondo gli autori, il CD integra l'approccio Integrazione Continua e permette di semplificare la preparazione del codice per il deployment.

Dopo la pubblicazione del libro, l'approccio ha cominciato a guadagnare popolarità e in pochi anni è diventato praticamente un standard. Secondo un sondaggio, condotto tra oltre 600 sviluppatori e IT manager nel 2014, il 97% dei responsabili tecnici e l'84% dei programmatori conoscevano il Continuous Delivery.

Oggi questo approccio rimane uno dei più popolari. Secondo uno studio del 2018, a cui hanno partecipato membri della comunità IT DevOps e Jenkins Community, la sua utilizza metà di oltre mille rispondenti.

Come funziona il Continuous Delivery

La base del CD è la prontezza del codice per il deployment. Per raggiungere questo obiettivo si utilizza l'automazione del processo di preparazione del software per il rilascio. Questo deve essere standard per i vari ambienti di sviluppo, il che aiuta a identificare rapidamente i punti deboli e a ottimizzarli. Ad esempio, accelerare i test.

Un esempio del processo di Continuous Delivery appare come segue:

Riferimento: che cos'è il Continuous Delivery

Se l'automazione dei primi due passaggi è responsabilità dell'approccio Continuous Integration, i successivi due sono gestiti dal Continuous Delivery. La stabilità del processo è garantita anche dai sistemi di gestione delle configurazioni. Questi monitorano le modifiche nell'infrastruttura, nei database e nelle dipendenze. Il deployment stesso può essere automatizzato o effettuato manualmente.

Il processo deve soddisfare i seguenti requisiti:

  • Disponibilità di informazioni sulla prontezza al rilascio nell'ambiente di produzione e disponibilità per il rilascio diretto (gli strumenti CD testano il codice e consentono di valutare l'impatto delle modifiche nel rilascio).
  • Responsabilità generale per il prodotto finale. Il team di prodotto - manager, sviluppatori, tester - si concentra sul risultato, non solo sulla propria area di competenza (il risultato è una versione funzionante, disponibile per gli utenti del prodotto).

In CD si applicano generalmente code review, mentre per raccogliere opinioni dei clienti si utilizza il principio dark launching. La nuova funzionalità viene inizialmente rilasciata a un piccolo segmento di utenti; la loro esperienza con il prodotto aiuta a identificare difetti e bug che non sono stati notati durante i test interni.

Quali sono i vantaggi

Continuous Delivery aiuta a semplificare il deployment del codice, il che influisce positivamente sulla produttività e riduce la probabilità di burnout emotivo dei dipendenti. Questo, a sua volta, abbassa anche i costi complessivi dello sviluppo. Ad esempio, CD ha aiutato uno dei team di HP a ridurre questi costi del 40%.

Inoltre, secondo uno studio del 2016 (pagina 28 documento) le aziende che hanno implementato CD risolvono i problemi di sicurezza informatica il 50% più velocemente rispetto a quelle che non utilizzano questo approccio. In una certa misura, questa differenza può essere attribuita all'utilizzo di strumenti di automazione dei processi.

Un ulteriore vantaggio è l'accelerazione del rilascio delle versioni. In uno studio di sviluppo finlandese, la consegna continua ha aiutato a aumentare la velocità di compilazione del codice del 25%.

Difficoltà potenziali

La prima e principale sfida è la necessità di ristrutturare i processi consolidati. Per dimostrare i vantaggi del nuovo approccio, è consigliabile passare al CD gradualmente, iniziando dalle applicazioni meno onerose.

La seconda potenziale difficoltà è il gran numero di rami di codice. La conseguenza della 'biforcazione' sono frequenti conflitti e perdite di tempo significative. Una possibile soluzione è l'approccio no branches.

. In particolare, in alcune aziende le principali difficoltà sorgono con il testing: richiede troppo tempo. I risultati dei test devono spesso essere analizzati manualmente, ma una possibile soluzione potrebbe essere il parallelismo dei test nei primi stadi di implementazione del CD.

è importante anche formare i dipendenti a utilizzare i nuovi strumenti: una formazione preliminare risparmierà energie e tempo agli sviluppatori.

Riferimento: che cos'è il Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Strumenti

Ecco alcuni strumenti open source per Continuous Delivery:

  • GoCD — server per la fornitura continua in Java e JRuby on Rails. Consente di controllare l'intero processo di fornitura dell'applicazione: build—test—release. Lo strumento è distribuito con licenza Apache 2.0. Sul sito ufficiale è possibile trovare una guida alla configurazione.
  • Capistrano — framework per la creazione di script che automatizzano il deployment delle applicazioni scritte in Ruby, Java o PHP. Capistrano è in grado di eseguire comandi su una macchina remota, collegandosi tramite SSH. Funziona con altri strumenti di integrazione e fornitura continua, come il server CI Integrity.
  • Gradle — strumento multipiattaforma che automatizza l'intero ciclo di sviluppo delle applicazioni. Gradle lavora con Java, Python, C/C++, Scala e altri. È integrato con Eclipse, IntelliJ e Jenkins.
  • Drone — piattaforma per CD in Go. Drone può essere implementato on-premise o nel cloud. Lo strumento è basato su contenitori e utilizza file YAML per gestirli.
  • Spinnaker — piattaforma per la fornitura continua di codice in sistemi multi-cloud. Sviluppata in Netflix, gli ingegneri di Google hanno avuto un ruolo importante nello sviluppo dello strumento. Le istruzioni per l'installazione si possono trovare sul sito ufficiale.

Cosa leggere nel nostro blog aziendale:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster