Accedi / Registrati Account

Automazione

Cos'è l'automazione del deployment

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.

 

CI/CD e automazione del deployment

L'automazione del deployment è un aspetto importante nell'adozione delle metodologie DevOps e nella gestione della pipeline di 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'app, dall'integrazione al testing 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. 

 

Scopri come una pipeline di CI/CD consente di contribuire allo sviluppo applicativo 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.

 

Supportare la metodologia DevOps con l'automazione

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. 

Affinché un ambiente possa essere automatizzato deve essere 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. 

 

Automazione del processo di deployment software

Un flusso di deployment è suddiviso in genere in tre fasi (ma potrebbero essercene altre): 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 per l'automazione del deployment 

Red HatⓇ AnsibleⓇ Automation Platform include tutti gli strumenti necessari per implementare l'automazione di livello enterprise, 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.

I playbook Ansible, scritti in YAML, descrivono la condizione desiderata 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.

Strumenti per l'automazione

Red Hat Ansible Automation Platform

Una piattaforma agentless ideata per semplificare l'automazione del tuo ambiente IT in modo scalabile. Centralizza e controlla la tua infrastruttura IT con dashboard visivo, controllo degli accessi in base al ruolo e molto altro.

Red Hat Openshift

Una piattaforma container per le imprese basata su Kubernetes, che offre operazioni automatizzate in tutto lo stack per gestire deployment di cloud ibridi e multicloud. È ottimizzata per incrementare la produttività degli sviluppatori e promuovere l'innovazione.