L’infrastruttura tecnologica è diventata il pilastro su cui si basano le applicazioni e i servizi aziendali. La rapida evoluzione delle tecnologie cloud, la crescente complessità delle reti e la necessità di risorse scalabili hanno portato a un nuovo approccio per la gestione dell’infrastruttura: l’Infrastructure as Code (IaC), ovvero l’infrastruttura come codice. Terraform è uno strumento che si è guadagnato un posto di rilievo nell’ecosistema IT per le sue abilità nel fornire agli sviluppatori e agli amministratori le “chiavi per creare, aggiornare e rimuovere risorse in modo automatizzato e ripetibile, utilizzando un linguaggio dichiarativo.
Cos’è Terraform, come funziona e a che cosa serve
Con Terraform, è possibile creare e configurare risorse come macchine virtuali, reti, database, servizi cloud e altro ancora, indipendentemente dal fornitore cloud utilizzato. Ciò si traduce in un approccio agnostico al cloud, consentendo di passare da un fornitore all’altro senza dover riscrivere da zero la definizione dell’infrastruttura.
Il concetto alla base dell’approccio IaC è proprio questo: l’infrastruttura può essere definita come codice, consentendo di pianificare e gestire le risorse in maniera simile a come si gestisce il codice sorgente di un’applicazione.
Terraform si è rivelato un partner prezioso per per affrontare le sfide dell’infrastruttura moderna. Trattando l’infrastruttura come codice, si ha la possibilità di beneficiare della coerenza, della ripetibilità e del livello di automazione necessari per gestire efficacemente le risorse IT in ambienti complessi e in continua evoluzione.
Cosa si può fare con Terraform
I possibili campi applicativi di Terraform sono praticamente infiniti: il software può essere utilizzato per la creazione di risorse cloud. Si può ad esempio usare Terraform per allestire istanze di macchine virtuali, reti virtuali, bilanciatori di carico e database. L’applicazione si rivela utilissima per creare automaticamente un gruppo di istanze EC2 su AWS con la configurazione desiderata.
Allo stesso modo, Terraform consente di predisporre e configurare reti virtuali, subnet, firewall e altre risorse di rete; permette di gestire interi carichi di lavoro, ad esempio per definire le risorse di calcolo e quelle di rete necessarie per eseguire un’applicazione Web. Chi si serve di container Docker, può usare Terraform per automatizzarne la creazione e l’impostazione.
È inoltre possibile creare risorse come tabelle, indici e altri elementi necessari per gestire i dati; definire policy di sicurezza, ruoli, gruppi di sicurezza e altri aspetti di controllo degli accessi.
Utilizzando Terraform, è possibile replicare facilmente l’infrastruttura in ambienti di sviluppo, test e produzione. Questo garantisce che le configurazioni siano consistenti e, quindi, perfettamente allineate. È inoltre fattibile creare la stessa infrastruttura su diversi provider come AWS, Azure e Google Cloud.
Come si chiama il codice Terraform per automatizzare la generazione e la configurazione dell’infrastruttura
Il codice Terraform utilizzato per automatizzare la generazione e la configurazione dell’infrastruttura è spesso chiamato “Terraform configuration” o “Terraform code“. Tale codice è scritto in un linguaggio specifico, chiamato HashiCorp Configuration Language (HCL), che consente agli utenti di definire le risorse, le configurazioni e le dipendenze dell’infrastruttura in modo dichiarativo.
Perché è nata OpenTF, alternativa aperta
Terraform è nato come progetto open source sotto l’ala di HashiCorp, società di software con un modello di business freemium e sede a San Francisco, in California. Ad agosto 2023, l’azienda ha annunciato l’intenzione di cambiare la licenza di tutti i suoi prodotti principali, incluso Terraform, passando alla Business Source License (BSL).
Obiettivo di OpenTF è garantire che Terraform rimanga un prodotto veramente open source tanto che i promotori dell’iniziativa suggeriscono ad HashiCorp di rivedere la scelta dei giorni scorsi ed evitare così la frammentazione della comunità.
Nel caso in cui l’appello dovesse cadere nel vuoto, OpenTF si impegna a pubblicare un fork di Terraform e a proseguire autonomamente lo sviluppo del progetto senza l’aiuto di HashiCorp. La risposta della comunità è stata enorme, decine di aziende e centinaia di sviluppatori hanno manifestato pieno sostegno a OpenTF.
Il lavoro per la realizzazione del fork di Terraform è già in corso tanto che nel giro di un paio di settimane il repository GitHub dovrebbe essere aggiornato con il codice sorgente.
Il progetto OpenTF resterà in futuro pienamente compatibile con Terraform, comprese le versioni che non sono state ancora rilasciate. Una “fondazione” è chiamata a sovrintendere lo sviluppo di OpenTF che rimarrà open source, guidato dalla comunità, imparziale, multilivello, modulare e compatibile con le precedenti versioni.
Credit immagine in apertura: iStock.com/Galeanu Mihai