Vai al paragrafo

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'approccio 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.

L'approccio 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

Estendi la strategia Infrastructure as Code alle attività di manutenzione

Le aziende scelgono di introdurre la strategia Infrastructure as Code (IaC) per ottenere processi IT completamente automatizzati, qualunque sia la fase del ciclo di vita operativo. IaC permette di standardizzare la creazione, il provisioning e il deployment dell'infrastruttura. Allo stesso modo, i team IT possono adottare l'approccio Operations as Code (OaC) per codificare la gestione e la manutenzione dei sistemi dopo averli distribuiti. La metodologia OaC può essere ulteriormente ampliata se coniugata all'approccio Policy as Code (PaC) per l'automazione dei processi relativi a governance, rischio e conformità delle applicazioni e delle soluzioni.

Sfruttando l'esperienza ottenuta con l'automazione di IaC, i team IT possono applicare gli stessi metodi e strumenti per ottenere un approccio più efficiente e adattabile alle operazioni tramite il ciclo di vita di sviluppo.

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.

Illustration showing devops, containers, microservices, and APIs

Automazione aziendale con una metodologia DevOps

Leggi i suggerimenti pratici e le procedure consigliate per adottare l'automazione aziendale attraverso una metodologia DevOps.

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.

L'approccio 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 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 soluzione guidata dagli eventi, 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.

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