Rispetto alle classiche metodologie manuali di configurazione e provisioning dell’infrastruttura IT, oggi l’approccio Infrastructure as Code (IaC), sempre più diffuso, fa compiere alle IT operation un vero “salto quantico”, un importante passo avanti nell’efficienza di configurazione e implementazione delle risorse informatiche. Efficienza di gestione quantomai indispensabile nei moderni ambienti IT, dove allestire, configurare e manutenere uno per uno, tramite comandi e operazioni manuali, server fisici o virtuali, nel data center aziendale o nel cloud, diventa sempre meno praticabile. In passato, la gestione manuale di macchine fisiche ha rappresentato la norma, portando comunque, nei diversi ambienti IT, sviluppo, test, staging, produzione, alla proliferazione di server di volta in volta caratterizzati da configurazioni specifiche, noti in gergo come “snowflake servers”. La disomogeneità di configurazione degli snowflake server genera malfunzionamenti e applicazioni instabili.
Eliminare gli snowflake server con l’approccio IaC
Gli snowflake server risultano chiaramente un retaggio anacronistico nell’era del cloud e dell’automazione dell’infrastruttura, in un mondo in cui le imprese, in ogni settore, stanno sempre più puntando sulla nuvola e su applicazioni cloud-native agili e dinamiche per innovare i modelli di business e implementare velocemente funzionalità e servizi digitali richiesti dagli utenti interni e dal mercato. In tale contesto, per evitare la formazione degli snowflake server, la pratica IaC, automatizza, da un lato, i processi di configurazione manuale dell’infrastruttura, tramite la scrittura di codice in moduli e file di configurazione; dall’altro genera in maniera sistematica configurazioni sempre coerenti e velocemente riproducibili. Ciò assume particolare rilevanza nelle attuali infrastrutture IT aziendali, sempre più complesse, distribuite, e caratterizzate da architetture software che utilizzano dinamicamente microservizi, container, servizi serverless.
Coordinare e accelerare le attività di provisioning dell’infrastruttura
La metodologia e gli strumenti Infrastructure as Code aiutano inoltre i team DevOps a collaborare, e a coordinare meglio il lavoro di squadra: ad esempio, utilizzando uno strumento IaC Open Source come Terraform, che Sourcesense utilizza e promuove, coloro che collaborano nel team, attraverso la funzionalità Remote State, hanno la possibilità di condividere dati tra configurazioni. In questo modo, essendo costantemente informati sulle derive di configurazione, cioè sui cambiamenti nelle configurazioni stesse, i membri del team possono evitare conflitti tra modifiche, e replicare con rapidità le infrastrutture.
Disaster recovery più rapido con la strategia Infrastructure as Code
La pratica Infrastructure as Code aiuta anche ad accelerare il setup delle infrastrutture di disaster recovery (DR), che permettono a un’organizzazione di ripristinare i sistemi informatici dopo un evento che ne ha compromesso seriamente il funzionamento. In tali casi, per minimizzare l’impatto che l’interruzione produce sugli utenti, e i conseguenti danni a livello economico, occorre agire con la massima celerità. Il metodo IaC consente di mitigare questi problemi, perché, esprimendo attraverso codice lo stato attuale dell’infrastruttura e delle varie configurazioni, permette di guadagnare molto tempo nell’attuazione dei piani di DR. È quindi possibile replicare con rapidità l’infrastruttura, in maniera coerente, da un data center all’altro, dal sito principale a un altro sito remoto, o da una piattaforma cloud a un’altra.
Usare gli strumenti IaC per ridurre i costi sul cloud
L’approccio IaC permette anche di contenere la spesa in risorse cloud. Come? Si può, ad esempio, utilizzare lo strumento IaC Terraform (sulla tool chain HashiCorp, Sourcesense sta raggiungendo il 5% di dipendenti certificati) in combinazione con il sistema di controllo versione Git, che memorizza il codice applicativo, per tracciare ogni modifica apportata all’infrastruttura.
Si eliminano così i punti ciechi sull’infrastruttura, arrivando a possedere una completa visibilità di cosa è installato sulla stessa. A questo punto, a seconda delle esigenze e dei picchi di lavoro, è possibile sfruttare l’automazione degli strumenti IaC per “spegnere” alcune risorse di gestione workload quando non servono. Questa strategia è più facilmente praticabile per le porzioni d’infrastruttura “stateless”, che non salvano i dati di sessione, e può essere attuata sia in ambienti Kubernetes, sia in infrastrutture più tradizionali, basate su macchine virtuali (VM).
IaC software e configuration management
Una volta definite le risorse ed eseguito il provisioning dell’infrastruttura con Terraform, le specifiche operazioni di gestione delle configurazioni si possono attuare con vari strumenti di configuration management (Conf Mgmt), tra cui si possono menzionare tool come Ansible e Chef. Entrambi sono in grado di gestire in automatico la generazione delle varie configurazioni per qualunque infrastruttura.
Vuoi approfondire il tema Infrastructure as Code? Scarica il White Paper dedicato!