Perchè implementare le infrastrutture con il codice?
Il provisioning (ovvero l’impostazione) di una macchina virtuale (VM) è l’atto di configurare una VM per uno scopo specifico.
Tale scopo potrebbe essere l’esecuzione di un’applicazione, il test del software su una piattaforma diversa o l’applicazione di aggiornamenti.
La configurazione di una VM richiede due passaggi: creazione e configurazione.
L’utilizzo del codice per la creazione e il provisioning dell’infrastruttura consente di gestire e distribuire le applicazioni in modo coerente, rapido ed efficiente.
Ciò consente la scalabilità dell’infrastruttura e dei servizi. Può anche ridurre i costi operativi, i tempi di ripristino durante un’emergenza e la possibilità di errori di configurazione.
Nel campo DevOps, si utilizzano spesso due termini che si riferiscono alla creazione e alla configurazione dell’infrastruttura: Infrastructure as Code (IaC) è il processo di utilizzo del codice per descrivere e gestire infrastrutture come Vms, switch di rete e risorse cloud come Amazon Relational Database Service (RDS).
Configuration Manager (CM) è il processo di configurazione di tali risorse per uno scopo specifico in modo prevedibile e ripetibile.
Per esempio si utilizzano Vagrant o Terraform per le implementazioni di IaC e Ansible come Configuration Manager.
Un altro vantaggio di trattare l’infrastruttura come codice è la facilità di distribuzione. Le applicazioni vengono create e testate allo stesso modo in una pipeline.
Ad esempio, artefatti come le immagini Docker vengono creati e distribuiti in modo coerente, utilizzando le stesse versioni di librerie e programmi per ogni esecuzione di una pipeline.
Trattare l’infrastruttura come codice consente di creare componenti riutilizzabili, utilizzare framework di test e applicare le migliori pratiche di ingegneria del software.
Tuttavia, ci sono momenti in cui trattare l’infrastruttura come codice potrebbe essere eccessivo. Ad esempio, se hai solo una VM da installare o un semplice script Bash da eseguire, potrebbe non valere la pena dedicare tempo e fatica a creare tutta l’infrastruttura e il codice CM per realizzare qualcosa che puoi fare “manualmente” in cinque minuti.
Usare il buon senso può essere una soluzione quando si decide il percorso da intraprendere.