1. News
  • 05 giugno 2024
  • News

Infrastructure as Code: rivoluzione nella gestione dell’infrastruttura

Cerved gestisce la propria infrastruttura informatica utilizzando la pratica IaC (Infrastructure as Code)

Condividi:

L’infrastruttura come codice (“Infrastructure as Code” – IaC) rappresenta un cambiamento fondamentale nel modo in cui le organizzazioni gestiscono e implementano l’infrastruttura informatica. Invece di affidarsi a processi manuali e interventi umani per configurare e gestire server, reti e altri componenti infrastrutturali, l’IaC utilizza il codice sorgente per definire e automatizzare queste operazioni. Ciò significa che l’intera infrastruttura può essere gestita con gli stessi strumenti e le stesse pratiche utilizzate per lo sviluppo del software.

Nell’era attuale della digitalizzazione, dove le imprese sono sempre più dipendenti dall’IT per la loro operatività quotidiana, l’infrastruttura come codice si sta rapidamente affermando come una pratica fondamentale per la gestione dell’infrastruttura informatica. In questo contesto, l’IaC rappresenta una svolta epocale, trasformando radicalmente il modo in cui le organizzazioni progettano, implementano e gestiscono le loro risorse tecnologiche.

IaC – I principi fondamentali

  1. Dichiaratività: L’Infrastructure as Code adotta un approccio dichiarativo, chi gestisce l’infrastruttura specifica lo stato desiderato dell’infrastruttura stessa piuttosto che le azioni specifiche necessarie per raggiungerlo. Questo consente una maggiore astrazione e semplifica la gestione complessiva.
  2. Versionabilità: Il codice sorgente che definisce l’infrastruttura è versionato utilizzando sistemi di controllo delle versioni come Git. Ciò consente di tenere traccia delle modifiche nel tempo, di eseguire il rollback a versioni precedenti e di facilitare la collaborazione tra team.
  3. Automazione: L’IaC automatizza il provisioning, la configurazione e la gestione dell’infrastruttura, riducendo al minimo l’intervento umano e i potenziali errori associati.
  4. Ripetibilità: Poiché l’infrastruttura è definita tramite codice, è possibile riprodurla facilmente in più ambienti, garantendo coerenza tra sviluppo, test e produzione.

IaC – I vantaggi

  1. Agilità e Scalabilità: L’Infrastracture as Code consente alle organizzazioni di rispondere rapidamente alle esigenze del business, scalando l’infrastruttura su richiesta e riducendo i tempi di provisioning da settimane o giorni a minuti o addirittura secondi.
  2. Coerenza e Affidabilità: Grazie alla definizione dichiarativa e alla automazione, l’infrastruttura come codice garantisce una maggiore coerenza tra gli ambienti, riducendo il rischio di errori umani e migliorando l’affidabilità complessiva del sistema.
  3. Efficienza Operativa: Automatizzando il provisioning e la gestione dell’infrastruttura, l’IaC libera le risorse umane da compiti ripetitivi e a basso valore aggiunto, consentendo loro di concentrarsi su attività più strategiche e innovative.
  4. Costi Ridotti: Riducendo la dipendenza da risorse umane e minimizzando gli errori operativi, l’infrastruttura come codice può contribuire a ridurre i costi complessivi di gestione dell’infrastruttura.
  5. DevOps e Collaborazione: L’IaC favorisce la collaborazione tra team di sviluppo e sistemistici, promuovendo un approccio DevOps e consentendo una maggiore integrazione e sinergia tra queste funzioni.

In Cerved, nel 2021, è iniziato il progetto di migrazione in cloud dell’intera infrastruttura. A inizio 2024 tale migrazione si è conclusa. portando alla chiusura dei datacenter on prem ma anche a sfruttare le potenzialità messe a disposizione dai cloud provider tra cui AWS. Questo “viaggio” ha avuto come sfida principale quella di trasformare le modalità di gestione della nostra infrastruttura adottando proprio i principi dell’IaC.  

Infrastracture as Code. Specifiche tecniche

Lo stack tecnologico che abbiamo scelto comprende, oltre ai servizi e agli ambienti principali messi a disposizione dal cloud provider:

  • Gitlab: una piattaforma di sviluppo collaborativo basata su Git, che fornisce un set completo di strumenti per la gestione del ciclo di vita del software. Offre funzionalità per il controllo delle versioni, il monitoraggio del lavoro, la gestione delle richieste di pull, l’integrazione continua (CI), la distribuzione continua (CD), la gestione del repository e altro ancora.
  • Terraform: uno strumento che consente agli utenti di definire e gestire l’infrastruttura come codice utilizzando una sintassi semplice e dichiarativa. Piuttosto che interagire manualmente con interfacce utente o strumenti di gestione proprietari, gli sviluppatori possono scrivere codice Terraform per descrivere l’insieme di risorse di cui necessitano, specificando il provider cloud desiderato (come AWS, Azure, Google Cloud, etc.) e le configurazioni desiderate.
  • Kubernetes: per l’orchestrazione e la gestione di applicazioni containerizzate.

Nonostante l’architettura di riferimento in Cerved preveda un approccio basato sui microservizi e su kubernetes, come in tutte le grandi realtà esiste una quota parte di sistemi legacy. Anche in questo caso però nel migrare in cloud abbiamo adottato un approccio basato sull’IaC. La pipeline semplificata per la gestione dell’infrastruttura Cerved è quindi la seguente:

L’infrastruttura Cerved è complessa e senza una gestione centralizzata e automatizzata sarebbe estremamente difficile gestirla per garantire i livelli di servizio ed il time to market che i clienti richiedono. In generale, Infrastructure as Code  è molto più di una semplice pratica tecnologica; rappresenta un paradigma trasformativo nell’IT aziendale, fondamentale per rimanere competitivi e rilevanti nell’era digitale. Adottare l’IaC non è solo una questione di tecnologia, ma anche di cultura e processo aziendale. Le organizzazioni che abbracciano pienamente l’infrastruttura come codice godranno di una maggiore agilità, efficienza e capacità di innovazione, posizionandosi in modo vantaggioso per affrontare le sfide del futuro digitale.

Che sfide ci aspettano nel prossimo futuro?

Ovviamente il tema dell‘Intelligenza Artificale è entrato in modo dirompente in ogni tipo di realtà ed in particolare nel mondo del software, della cybersecurity e quindi anche della gestione dell’infrastruttura. Oggi,Copilot (Github, Microsoft) o i servizi offerti da AWS come Codewhisperer e Amazon Q offrono la possibilità di velocizzare ed ottimizzare la scrittura di codice. Adottare un approccio IaC consente di beneficiare di questi vantaggi anche nella gestione dell’infrastruttura. Le funzionalità oltre che alla scrittura di codice si stanno estendendo alla possibilità di fare troubleshhoting, fixing di problemi, analisi di sicurezza e ottimizzazione dei costi, basti pensare ad un servizio ChatWithCloud. Il futuro è avvalersi sempre più di questi assistenti per una gestione ancora più efficace ed evoluta anche nell’infrastruttura.

Ti interessa l’argomento? Scopri di più leggendo i nostri articoli a tema Data e Digital.