Tradizionalmente, la realizzazione dell’infrastruttura IT è un’attività manuale che vede il team IT di un’organizzazione configurare ogni macchina virtuale, sistema operativo e applicazione, oltre a componenti hardware. Si tratta di un’attività che si è rivelata grande fonte di attrito per la maggior parte dei dipartimenti IT perché nuove applicazioni o tentativi di scalare quelle esistenti ‘rubano’ al team IT tempo che potrebbe dedicare a installare e configurare una nuova infrastruttura. Negli ultimi anni, tuttavia, le aziende hanno abbracciato un’infrastruttura basata sul cloud che attinge pienamente dalla virtualizzazione e dai container. Invece di poche grandi macchine e un’infrastruttura monolitica da distribuire, i team si trovano a gestire una vasta e dinamica “costellazione” di componenti e dispositivi. Un provisioning di queste dimensioni non è gestibile manualmente e ha contribuito a rendere popolare il concetto di Infrastructure as Code, o IaC, in base al quale i team usano file di configurazione che contengono le specifiche dell’infrastruttura. Approccio che semplifica la modifica e distribuzione delle configurazioni, oltre a garantirne la coerenza, standardizzazione e documentazione e a permetterne la suddivisione in componenti modulari la cui distribuzione e integrazione può essere automatizzata.
Ed è attraverso l’automazione che la IaC offre un importante valore aggiunto: sviluppatori e team IT saranno liberi dal provisioning e dalla gestione manuale di server, storage, sistemi operativi e altri componenti ogni volta che servono maggiori risorse per concentrarsi su attività più preziose.
In linea di principio, i file di configurazione utilizzati dalla IaC sono simili a molti script di programmazione impiegati dagli sviluppatori per automatizzare i processi IT. IaC vede i team sviluppare uno script in YAML o JSON che può essere eseguito su richiesta per gestire l’installazione e la configurazione di nuove infrastrutture in-demand. Uno dei maggiori vantaggi di IaC è infatti che permette all’infrastruttura di essere sottoposta allo stesso controllo di versione, alla pipeline CI/CD e ai test automatici che i team stanno già utilizzando per le loro applicazioni. Aiuta anche ad automatizzare le interazioni tra sviluppatori e team operativi, riducendo entrambi i loro carichi di lavoro ed eliminando lo spazio per errori o incongruenze.
Possiamo quindi affermare che la IaC completa perfettamente l’adozione di una cultura DevOps e può servire ad abbattere i silos tra sviluppatori e amministratori attraverso la standardizzazione dei processi e l’uso delle stesse pratiche e linguaggio quando si tratta di infrastruttura. Non solo, l’IaC incoraggia anche l’adozione di una pipeline CI/CD quando si tratta di gestire gli script dell’infrastruttura, pratica fondamentale per rendere DevOps un successo.
Quindi, se molta attenzione è giustamente rivolta alla capacità dell’IaC di aumentare la produttività e le prestazioni grezze di un team, dovremmo ricordare che rappresenta anche un potente strumento per guidare il cambiamento organizzativo e culturale all’interno dell’azienda.
Di Erica Langhi, Senior Solution Architect EMEA di Red Hat