Jump to section

Cos'è l'automazione del deployment

Copia URL

L'automazione del deployment consente di trasferire il software dall'ambiente di test a quello di produzione e viceversa tramite processi automatizzati. Si ottengono così deployment ripetibili e affidabili per l'intero ciclo di distribuzione del software.

L'automazione del deployment consente di rilasciare nuove applicazioni e funzionalità con più rapidità e frequenza, riducendo al minimo l'intervento umano.

L'automazione del deployment è un aspetto importante nell'adozione delle metodologie DevOps e nella gestione della pipeline CI/CD.

Quello dei flussi di integrazione e distribuzione continue (CI/CD) è un metodo per la distribuzione frequente delle applicazioni ai clienti basato sull'automazione e sul monitoraggio continui lungo l'intero ciclo di vita dell'applicazione, dall'integrazione al test fino alla distribuzione e al deployment

Con integrazione continua si intende il processo con il quale le modifiche apportate da uno sviluppatore all'applicazione vengono automaticamente testate alla ricerca di bug e caricate in un repository (come GitHub o un registro per container), dal quale vengono distribuite in un ambiente di produzione dai team operativi (o mediante l'automazione del deployment).

Una volta aggiunte le modifiche apportare dagli sviluppatori, queste vengono convalidate con la creazione automatizzata dell'app e l'esecuzione di diversi livelli di test automatici, in genere test di unità e integrazione, per verificare che l'app non abbia subito danni. 

 

Cos'è la distribuzione continua? Scopri come una pipeline CI/CD consente di contribuire allo sviluppo delle applicazioni in modo automatico.

 

L'altra definizione possibile per "CD", deployment continuo, può riferirsi al rilascio automatico delle modifiche apportate dallo sviluppatore dal repository alla produzione, dove diventano fruibili ai clienti. 

Non essendoci alcun blocco al deployment manuale nelle fasi del flusso prima della produzione, il deployment continuo deve necessariamente fare affidamento su un'automazione dei test ben progettata.

Con l'automazione si evita di sovraccaricare i team operativi con procedure manuali, che altrimenti rallenterebbero la distribuzione delle applicazioni.

Questa fase sfrutta i vantaggi dell'integrazione continua, automatizzando la fase successiva della pipeline.

La pipeline CI/CD deve essere supportata dalla collaborazione agile tra team operativi e di sviluppo, tramite un approccio DevOps o con metodi di site reliability engineering (SRE).

L'adozione delle metodologie agile per lo sviluppo software porta a cicli di rilascio più rapidi, tempi di inattività inferiori e alla possibilità di correggere gli errori non appena si verificano, senza dover attendere una nuova release.

L'automazione del deployment non può funzionare se i team di sviluppo e quelli operativi distribuiscono le applicazioni o configurano gli ambienti con modalità differente. 

L'ambiente può essere automatizzato solo se è coerente. È importante che lo stesso processo di deployment sia applicato in ogni ambiente, anche in quello di produzione. 

Se i due team non sono allineati, si corre anche il rischio che quello operativo gestisca i deployment manualmente, con conseguenti errori, incoerenze e cicli di rilascio più lunghi. 

Per questa ragione è fondamentale che i team lavorino e seguano le procedure DevOps in sinergia. Affinché il processo di automazione del deployment sia coerente e ripetibile, alla sua creazione devono partecipare entrambi i team. 

Solitamente, la pipeline di deployment è suddivisa in tre fasi (ma potrebbero essere di più), ovvero creazione, test e deployment. Questa pipeline facilita l'automazione del deployment e garantisce che il codice passi dalla fase di inserimento delle modifiche a quella di deployment in tempi rapidi.

  • Creazione: uno sviluppatore apporta le modifiche al codice in un repository software. Le modifiche vengono integrate in ambienti simili a quello di produzione.
  • Test: uno strumento di automazione del deployment, ad esempio Jenkins o Ansible, controlla il nuovo codice e avvia una serie di test. Una volta superati tutti i test, la nuova versione del codice può essere inviata in produzione. Senza un processo di automazione del deployment, questo passaggio viene eseguito manualmente.
  • Deployment: in questa fase l'applicazione viene distribuita al reparto di produzione e resa disponibile agli utenti.

Per i team agile e DevOps i test dovrebbero essere eseguiti parallelamente allo sviluppo, restituendo un feedback agli sviluppatori in maniera continuativa. 

Anche l'integrazione continua è una fase importante del processo di sviluppo, al fine di evitare la creazione di conflitti fra gli aggiornamenti frequenti. Per la riuscita dell'integrazione continua, le nuove modifiche apportate al codice dell'app vengono regolarmente compilate, testate e unite in un repository condiviso.

È bene poter eseguire anche il deployment in un ambiente on demand. Quando è necessario provvedere alla creazione di un ambiente, significa che il processo non è automatizzato.

Red Hat® Ansible® Automation Platform include tutti gli strumenti necessari per implementare l'automazione nell'intera azienda, inclusi i playbook, una dashboard visiva e gli strumenti di business analytics.

La piattaforma consente il deployment di applicazioni multilivello in modo affidabile e coerente da un framework comune, la configurazione dei servizi necessari e il trasferimento dei componenti dell'applicazione da un sistema condiviso.

Gli Ansible Playbook, scritti in YAML, descrivono la condizione target dei sistemi, in genere controllati dal codice sorgente. Red Hat Ansible Automation Platform si occupa di portare i sistemi nella condizione desiderata, qualunque sia quella corrente. 

I playbook Ansible rendono affidabili e ripetibili le installazioni, gli aggiornamenti e le attività quotidiane.

Red Hat Ansible Automation Platform è stata nominata "leader" da Forrester Research nel report di Forrester Wave™ "Infrastructure Automation Platforms" per il terzo trimestre 2020.

Le aziende non solo devono essere in grado di creare automazione, ma anche di condividere e riutilizzare l'automazione tra progetti e team con il giusto livello di governance e controllo. 

Con la soluzione di automazione giusta, puoi eseguire il deployment di nuovi servizi e applicazioni più rapidamente, gestire l'infrastruttura IT in modo più efficiente e ottenere una maggiore produttività nello sviluppo delle applicazioni.

Continua a leggere

Articolo

I concetti base di Ansible

Ansible consente di automatizzare i processi IT, come il provisioning e la gestione della configurazione. Questo articolo fornisce un'introduzione ai concetti base di Ansible.

Articolo

Cos'è la gestione dei processi aziendali?

La gestione dei processi di business (BPM, business process management) consiste nella creazione di modelli di business, nell'analisi e nell'ottimizzazione dei processi aziendali end to end per realizzare i tuoi obiettivi aziendali strategici.

Articolo

Perché scegliere Red Hat per l'automazione

Red Hat Ansible Automation Platform include tutti gli strumenti necessari per condividere le competenze di automazione tra i team e adottare l'automazione a livello aziendale.

Scopri di più sull'automazione

Prodotti

Collabora con il nostro team di consulenti strategici in grado di analizzare l'azienda nel suo insieme e valutare le sfide da affrontare, per aiutarti a superarle con soluzioni complete e convenienti.

Una piattaforma per implementare l'automazione in azienda, in qualsiasi fase del tuo percorso di trasformazione

Risorse

Ebook

L'azienda automatizzata connette persone e processi

Ebook

Automazione dei flussi di lavoro dell'infrastruttura

Continua a leggere

Formazione

Corso di formazione gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Corso di formazione gratuito

Red Hat Ansible Automation for SAP