Cos'è l'infrastruttura come codice?

L'infrastruttura come codice (IaC) è la capacità di fornire e supportare l'infrastruttura informatica utilizzando il codice anziché processi e impostazioni manuali. Qualsiasi ambiente applicativo richiede numerosi componenti di infrastruttura, come sistemi operativi, connessioni al database e archiviazione. Gli sviluppatori devono configurare, aggiornare e mantenere regolarmente l'infrastruttura per sviluppare, testare e implementare le applicazioni. 

La gestione manuale dell'infrastruttura richiede molto tempo ed è soggetta a errori, soprattutto quando si gestiscono applicazioni su larga scala. L'infrastruttura come codice consente di definire lo stato desiderato dell'infrastruttura senza includere tutti i passaggi richiesti per raggiungere tale stato. Automatizza la gestione dell'infrastruttura, consentendo agli sviluppatori di concentrarsi sulla creazione e sul miglioramento delle applicazioni anziché sulla gestione degli ambienti. Le organizzazioni utilizzano l'infrastruttura come codice per controllare i costi, ridurre i rischi e rispondere rapidamente alle nuove opportunità di business.

Quali sono i vantaggi dell'infrastruttura come codice?

L'automazione è un obiettivo chiave in qualsiasi ambiente informatico. L'infrastruttura come codice (IaC) viene utilizzata per l'automazione dell'infrastruttura per la creazione di ambienti. L'IaC è comunemente impiegata nello sviluppo software per creare, testare e implementare applicazioni.

Tradizionalmente, gli amministratori di sistema utilizzavano una combinazione di script e processi manuali per configurare gli ambienti dell'infrastruttura. Il processo era complesso e richiedeva molto tempo. Oggi è possibile utilizzare l'IaC per configurare automaticamente l'ambiente in pochi minuti e gestirlo con maggiore efficienza. Di seguito sono riportati alcuni vantaggi.

Facile duplicazione degli ambienti

Lo stesso ambiente può essere implementato su un sistema diverso in un'altra posizione utilizzando la stessa IaC, purché le risorse dell'infrastruttura siano disponibili.

Ad esempio, immaginiamo che la filiale regionale di un'azienda disponga di una soluzione IaC per descrivere l'ambiente di lavoro dell'intera filiale, inclusi server, reti e configurazioni personalizzate. Se l'azienda aprisse un'altra filiale regionale, potrebbe utilizzare l'IaC per duplicare esattamente lo stesso ambiente e portare online e rendere operativa la filiale in tempi brevi. L'IaC elimina i passaggi manuali e le liste di controllo ripetitive che erano necessari in passato.

Riduzione degli errori di configurazione

La configurazione manuale è soggetta a errori a causa del coinvolgimento umano: le persone, infatti, commettono errori. Potrebbero anche esistere varianti di configurazione dovute a modifiche in una determinata configurazione, ad esempio un ambiente di sviluppo, che non sono state rilevate in un'altra configurazione, come ad esempio un ambiente di test.

Viceversa, l'IaC riduce gli errori e ne semplifica il controllo. Se sono presenti errori dovuti agli aggiornamenti del codice IaC, è possibile rimediare rapidamente ripristinando nella base di codice gli ultimi file di configurazione stabili noti. È possibile ripristinare gli ambienti utilizzando versioni precedenti dei file di configurazione IaC anche per altri motivi, ad esempio per implementare versioni precedenti delle applicazioni.

Iterazione degli ambienti in base alle best practice

Il controllo del codice sorgente consente agli sviluppatori di software di creare e ramificare facilmente gli ambienti. Ad esempio, si prenda il caso di un'applicazione cresciuta fino a includere un modulo di machine learning opzionale. Uno sviluppatore può ramificare l'IaC dell'applicazione per avviare, utilizzare e interrompere un'istanza Trn1 Amazon Elastic Compute Cloud (Amazon EC2) ad alte prestazioni. Può impostare la regione di implementazione in funzione della regione di implementazione dell'applicazione.

Come funziona l'infrastruttura come codice?

Proprio come il codice software descrive un'applicazione e il suo funzionamento, l'infrastruttura come codice (IaC) descrive l'architettura del sistema e il suo funzionamento. Un'architettura di infrastruttura contiene una serie di risorse come server, reti, sistemi operativi e archiviazione. L'IaC controlla le risorse virtualizzate trattando i file di configurazione come file di codice sorgente. È possibile utilizzarla per gestire l'infrastruttura in modo codificato e ripetibile. 

Gli strumenti di gestione della configurazione IaC utilizzano specifiche di linguaggio diverse. È possibile sviluppare l'IaC in modo simile al codice applicativo in Python o Java. Inoltre, l'IaC viene scritta in un ambiente di sviluppo integrato (IDE) con controllo degli errori integrato, ed è possibile mantenerla sotto il controllo del codice sorgente eseguendo commit a ogni modifica del codice. I file IaC sono inclusi come parte della base di codice più ampia.

Approcci all'IaC

Esistono due diversi approcci all'infrastruttura come codice.

Dichiarativa

L'IaC dichiarativa consente a uno sviluppatore di descrivere le risorse e le impostazioni che costituiscono lo stato finale desiderato di un sistema. La soluzione IaC crea quindi questo sistema a partire dal codice dell'infrastruttura. Ciò rende semplice l'utilizzo dell'IaC dichiarativa, purché lo sviluppatore conosca i componenti e le impostazioni necessari per eseguire l'applicazione.

Imperativa

L'IaC imperativa consente a uno sviluppatore di descrivere tutti i passaggi richiesti per configurare le risorse e raggiungere lo stato del sistema e di esecuzione desiderato. Sebbene la scrittura dell'IaC imperativa sia più complessa di quella dichiarativa, l'approccio imperativo diventa imprescindibile nelle implementazioni di infrastrutture complesse. Ciò è specialmente vero quando l'ordine degli eventi è di importanza critica.

Qual è il ruolo dell'IaC nel DevOps?

Il DevOps è il processo di miglioramento della collaborazione tra i team di sviluppo software e quelli operativi IT. Ha lo scopo di abbreviare il ciclo di vita dello sviluppo delle applicazioni e di assicurare la fornitura continua di software di alta qualità. I team DevOps integrano le attività operative con strumenti di sviluppo e commit di codice, in modo che le applicazioni possano avere cicli di rilascio estremamente rapidi.

Un obiettivo chiave del DevOps è automatizzare le attività dell'infrastruttura durante il processo di sviluppo. È possibile integrare l'infrastruttura come codice (IaC) in pipeline di integrazione continua e implementazione continua (CI/CD). In questo modo, quando il software passa attraverso il processo di compilazione e rilascio, le modifiche richieste dall'infrastruttura possono essere apportate in tandem.

I team DevOps utilizzano l'infrastruttura come codice per molti scopi:

  • configurare rapidamente ambienti completi, dallo sviluppo alla produzione;
  • contribuire a garantire configurazioni riproducibili in modo coerente tra ambienti diversi;
  • assicurare un'integrazione perfetta con i provider di servizi cloud e ridurre o aumentare in modo efficiente le risorse infrastrutturali in base alla domanda.

L'IaC fornisce un linguaggio comune agli sviluppatori e alle operazioni. Le modifiche possono essere esaminate in modo trasparente, il che favorisce una migliore collaborazione negli ambienti DevOps.

Ulteriori informazioni sul DevOps »

In che modo AWS può supportare i requisiti IaC?

Le offerte di Amazon Web Services (AWS) sono progettate all'insegna dell'infrastruttura come codice (IaC). Permettono così di gestire in sicurezza architetture cloud complesse definendole ed eseguendole nel codice.

Ecco i servizi AWS che possono supportare le esigenze di IaC:

  • Con il Kit di sviluppo per il cloud AWS (AWS CDK), gli sviluppatori possono definire le risorse delle applicazioni cloud con linguaggi di programmazione familiari e strumenti di configurazione interattivi, il tutto nell'IDE. Ciò evita la necessità di apprendere nuovi linguaggi e strumenti per manipolare le risorse cloud.
  • Con AWS CloudFormation, gli sviluppatori possono creare e scalare oltre l'infrastruttura AWS. Gli sviluppatori possono utilizzare l'IaC per definire e gestire le risorse cloud pubblicate nel registro CloudFormation, nella community degli sviluppatori e nelle librerie interne.
  • Per il controllo completamente gestito del codice sorgente dell'IaC e di tutto il codice dell'applicazione, AWS CodeCommit è un servizio sicuro e scalabile per ospitare i repository Git privati.

Inizia a utilizzare l'infrastruttura come codice su AWS creando un account oggi stesso.

Fasi successive su AWS

Scopri ulteriori risorse correlate al prodotto
Consulta i servizi di strumenti per sviluppatori 
Registrati per creare un account gratuito

Ottieni accesso istantaneo al Piano gratuito di AWS.

Registrati 
Inizia a lavorare nella console

Inizia subito a creare nella Console di gestione AWS.

Accedi