Erica Langhi di Red Hat riflette sul rapporto tra Infrastructure as a Code e DevOps nell’ottica di forte integrazione delle attività all’interno di un’organizzazione.

Infrastructure as a Code

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, 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 Infrastructure as Code 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 Infrastructure as Code sono simili a molti script di programmazione impiegati dagli sviluppatori per automatizzare i processi IT.

Infrastructure as Code 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 è 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 Infrastructure as Code 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’Infrastructure as Code 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’Infrastructure as Code 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