Che cos’è l’infrastruttura come codice? – –

La gestione dell’infrastruttura IT è un lavoro duro, ma negli ultimi anni i fornitori di servizi cloud hanno semplificato l’automazione di ogni aspetto della vita di un amministratore di sistema. Infrastructure as Code è il passo successivo: definire tutti i servizi in un file di configurazione che può essere tracciato tramite il controllo del codice sorgente.

Come funziona Infrastructure as Code?

Infrastructure as Code (IaC) è piuttosto semplice in teoria. Tutte le distribuzioni del server, i servizi cloud e la configurazione associata sono archiviati in un file di configurazione modificabile centralmente o in un insieme di file di configurazione, solitamente YAML o qualcosa di simile. Ogni file di configurazione contiene le istruzioni e le direttive necessarie per ricreare da zero l’intera soluzione cloud.

Questo principio fondamentale significa che le modifiche a questa infrastruttura possono essere tracciate con il controllo del codice sorgente. Vuoi avviare un nuovo server? Dovrai modificare la configurazione della distribuzione e inviare un aggiornamento. Se qualcosa va storto, puoi sempre tornare a una versione precedente della distribuzione, che può essere molto utile per i sistemi ad alta disponibilità in cui una distribuzione configurata in modo errato può costare molto denaro.

Ciò significa che IaC è davvero tutto o niente. Non è una buona idea eseguire IaC insieme alle distribuzioni gestite manualmente, anche se è certamente possibile farlo, soprattutto se i sistemi sono separati.

In pratica, l’infrastruttura come codice è piuttosto complicata. Se pensavi che l’amministrazione di sistema regolare fosse un lavoro difficile, convertire l’intera distribuzione in IaC non sarà un’operazione semplice. Tuttavia, una volta eseguita la parte difficile della configurazione, mantenere la distribuzione e apportare modifiche diventa molto più semplice. Tutte le impostazioni di distribuzione non saranno più presenti nella testa dell’amministratore di sistema: con IaC, è tutto chiaramente definito nel codice.

Inoltre, poiché è tutto definito nel codice, puoi anche automatizzare facilmente il processo di esecuzione degli ambienti di sviluppo, gestione temporanea, test e produzione. In questo modo, puoi testare le modifiche all’intera distribuzione prima dell’aggiornamento. Puoi anche automatizzare i test unitari IaC, se lo desideri.

Sebbene sia piuttosto complicato da configurare, i vantaggi per progetti più grandi superano sicuramente i potenziali mal di testa.

Utilizzo dell’infrastruttura come codice

Naturalmente, la codifica dell’intera infrastruttura può essere un processo arduo. Tuttavia, non è sempre necessario creare manualmente il modello YAML; Di AWS CloudFormation La soluzione IaC presenta un “Designer” basato sul Web, che mostrerà visivamente l’intero stack di prodotti. Ad esempio, ecco uno dei modelli di esempio, per una distribuzione di WordPress con scalabilità automatica e bilanciamento del carico utilizzando un’istanza RDS come database.

istanza wordpress cloudformation

Ogni singolo nodo richiede la configurazione, ma alla fine produrrà un file modello da cui è possibile creare l’intera distribuzione.

modello di esempio cloudformation

L’esatta implementazione varierà a seconda del provider, ma AWS CloudFormation gestirà la creazione di tutte le risorse nell’ordine corretto. Ad esempio, se hai un’istanza EC2 con un gruppo di sicurezza, CloudFormation si assicurerà di creare prima il gruppo di sicurezza, quindi creerà l’istanza con quel gruppo di sicurezza. Tutto quello che devi fare è collegarli insieme nella console.

Per ulteriori informazioni su CloudFormation, puoi leggere la nostra guida per iniziare a utilizzarlo.

RELAZIONATO: Codifica la tua infrastruttura AWS con CloudFormation