Account Accedi
Jump to section

Cosa si intende con Infrastructure as Code (IaC)?

Copia URL

Con Infrastructure as Code (IaC) intendiamo un approccio alla gestione e al provisioning dell'infrastruttura che avviene tramite codice anziché con processi manuali.

I file di configurazione creati con l'IaC contengono le specifiche dell'infrastruttura e semplificano la modifica e la distribuzione delle configurazioni. Questa soluzione garantisce la ripetibilità del provisioning dello stesso ambiente. Codificando e documentando le specifiche della configurazione, l'IaC facilita la gestione della configurazione e permette di evitare eventuali modifiche ad-hoc non documentate.

Per l'IaC il controllo versione è un aspetto cruciale e i file di configurazione dovrebbero essere sottoposti al controllo della sorgente come qualsiasi altro file di codice sorgente del software. Implementare l'infrastruttura in forma di codice permette la suddivisione in componenti modulari che, attraverso l'automazione, possono essere combinati in modi diversi.

Automatizzare il provisioning dell'infrastruttura con l'IaC alleggerisce il carico sugli sviluppatori, che non devono più svolgere manualmente le attività di provisioning e gestione di server, sistemi operativi, storage e altri componenti dell'infrastruttura ogni volta che sviluppano o distribuiscono un'applicazione. Codificare l'infrastruttura permette di creare un modello di provisioning ripetibile, grazie al quale si è liberi di scegliere se continuare a eseguire il provisioning manualmente oppure velocizzarlo affidandosi a uno strumento di automazione come Red Hat® Ansible® Automation Platform

Esaminiamo le differenze tra le due modalità di approccio all'IaC. 

Un approccio dichiarativo definisce lo stato desiderato del sistema, ovvero le risorse necessarie e le proprietà che queste devono avere; l'esecuzione di questa configurazione è affidata a un apposito strumento IaC. 

Questo approccio semplifica la gestione dell'arresto dell'infrastruttura grazie all'impiego di un elenco dello stato effettivo degli oggetti di sistema.

Un approccio imperativo, invece, definisce i comandi specifici necessari per ottenere la configurazione desiderata; questi comandi dovranno essere eseguiti nella sequenza corretta. 

Molti strumenti IaC utilizzano un approccio dichiarativo ed eseguono automaticamente il provisioning dell'infrastruttura desiderata. Qualora sia necessario modificare lo stato desiderato, uno strumento IaC dichiarativo applicherà le modifiche. Uno strumento imperativo richiede invece all'utente di strutturare l'applicazione delle modifiche.

Gli strumenti IaC possono in genere operare su entrambi gli approcci, ma tendono a preferire un approccio all'altro.

Il provisioning dell'infrastruttura è da sempre un processo manuale, lungo e costoso. Oggi la gestione dell'infrastruttura non avviene più a livello di hardware fisico ma si sposta nei datacenter (che possono tuttora essere un componente dell'organizzazione), alla virtualizzazione, ai container e al cloud computing

L'avvento del cloud computing ha generato una crescita del numero dei componenti dell'infrastruttura e del numero di applicazioni rilasciate in produzione ogni giorno, due fattori che rendono necessario attivare, potenziare e arrestare frequentemente l'infrastruttura. Di conseguenza, senza una strategia IaC adeguata, gestire la scalabilità dell'infrastruttura odierna è sempre più difficile.

IaC aiuta la tua organizzazione a gestire le richieste dell'infrastruttura IT, offrendo coerenza e riducendo al tempo stesso gli errori e le configurazioni manuali.

Vantaggi

  • Riduzione dei costi
  • Accelerazione dei deployment
  • Riduzione degli errori
  • Infrastruttura più coerente
  • Eliminazione degli errori di configurazione

Gli strumenti di automazione dei server e di gestione della configurazione sono spesso alla base dell'infrastruttura IaC. Esistono anche soluzioni specifiche per l'IaC. 

Di seguito un elenco delle scelte più diffuse:

  • Chef
  • Puppet
  • Red Hat Ansible Automation Platform
  • Saltstack
  • Terraform 
  • AWS CloudFormation

È possibile utilizzare Ansible Automation Platform anche per il provisioning dei sistemi operativi e dei dispositivi di rete, il deployment delle applicazioni e la gestione delle configurazioni.

L'IaC gioca un ruolo fondamentale nell'adozione della metodologia DevOps e della pipeline di integrazione e distribuzione continue (CI/CD). Evita la maggior parte del lavoro di provisioning agli sviluppatori, ai quali basterà eseguire uno script per rendere operativa la loro infrastruttura.  

In questo modo i deployment applicativi non sono vincolati alla disponibilità dell'infrastruttura e gli amministratori di sistema non devono gestire processi manuali ripetitivi. 

Il metodo CI/CD introduce l'automazione costante e il monitoraggio continuo in tutto il ciclo di vita delle applicazioni, dalle fasi di integrazione e test a quelle di distribuzione e deployment. 

Affinché un ambiente possa essere automatizzato deve essere coerente. L'automazione del deployment nelle applicazioni non può funzionare se i team di sviluppo e quelli operativi distribuiscono le applicazioni o configurano gli ambienti con modalità differenti.

L'allineamento dei due team mediante un approccio DevOps riduce il numero di errori, incoerenze e deployment manuali. 

IaC facilita il raggiungimento di questo risultato consentendo a entrambi i team di usare la stessa descrizione per il deployment dell'applicazione, promuovendo così un approccio DevOps.

È importante che lo stesso processo di deployment sia applicato in ogni ambiente, anche in quello di produzione. Ogni utilizzo di IaC genera lo stesso ambiente.

IaC evita anche di dover gestire singoli ambienti con configurazioni esclusive che non possono essere riprodotte automaticamente e garantisce anche la coerenza dell'ambiente di produzione.

In IaC le procedure migliori della metodologia DevOps vengono applicate anche all'infrastruttura, che può attenersi alla stessa pipeline di CI/CD utilizzata dalle applicazioni durante lo sviluppo software, applicando gli stessi processi di test e controllo della versione al codice dell'infrastruttura.

La creazione di un approccio all'automazione esteso all'intero ambiente enterprise permette di automatizzare non solo i processi IT, ma anche le tecnologie, i team e l'organizzazione nel suo complesso. 

Red Hat® Ansible® Automation Platform include tutti gli strumenti necessari per adottare l'automazione nell'intera azienda, inclusi i playbook, una dashboard visiva e gli strumenti di analisi, e si serve di webhook per automatizzare i flussi di lavoro IaC e per abilitare le pratiche GitOps.

Gli Ansible Playbook, scritti in linguaggio YAML, descrivono la condizione target dei sistemi, controllati in genere dal codice sorgente, mentre Ansible Automation Platform si occupa di portare i sistemi nella condizione target, indipendentemente da quella in cui si trovano. 

La piattaforma rende affidabili e ripetibili le installazioni, gli aggiornamenti e le attività quotidiane.

Con la giusta soluzione di automazione, le organizzazioni possono accelerare il deployment di nuovi servizi e applicazioni, gestire l'infrastruttura IT in modo più efficiente e incrementare la produttività delle attività di sviluppo applicativo.

Scopri di più sull'automazione

Prodotti

Red Hat Consulting

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.

Red Hat Ansible Automation Platform

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

Red Hat Process Automation

Una piattaforma per lo sviluppo delle applicazioni cloud native destinate all'automazione dei processi e delle decisioni aziendali.

Risorse

Formazione

Corso di formazione gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Corso di formazione gratuito

Red Hat Ansible Automation for SAP

Illustration - mail

Ricevi contenuti simili

Iscriviti a Red Hat Shares, la nostra newsletter gratuita.