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.
Erica Langhi, Senior Solution Architect Emea di Red HatEd
è 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.
Erica Langhi è Senior Solution Architect Emea di Red Hat