Introduzione
Nel panorama dell’Infrastructure as Code (IaC), due strumenti stanno emergendo come protagonisti: Terraform di HashiCorp e OpenTofu, il fork open source nato dalla community. Per comprendere appieno questa situazione, è essenziale conoscere gli eventi che hanno portato alla nascita di OpenTofu.
La Genesi del Fork: Il Cambio di Licenza di HashiCorp
Il 10 agosto 2023, HashiCorp ha annunciato una decisione che ha scosso l’intera community open source: il passaggio dalla Mozilla Public License 2.0 (MPL-2.0) alla Business Source License (BSL) per tutti i suoi prodotti, incluso Terraform, a partire dalla versione 1.6.
Cosa Significava la MPL-2.0
La Mozilla Public License 2.0 è una licenza open source “copyleft debole” che permetteva:
-
Uso libero per qualsiasi scopo, incluso commerciale
-
Modifica e distribuzione del codice sorgente
-
Integrazione in prodotti proprietari (a differenza della GPL)
-
Brevetti: Protezione automatica contro le guerre di brevetti
Il Problema con la Business Source License
La BSL, pur mantenendo il codice sorgente visibile, introduce restrizioni significative:
-
Limitazioni d’uso: Proibisce specificamente l’uso per “servizi competitivi”
-
Definizione vaga: “Competitive use” include servizi di hosting, SaaS o managed services che competono con i prodotti HashiCorp
-
Conversione automatica: Il codice diventa open source (MPL-2.0) solo dopo 4 anni
-
Impatto sui provider: Potenziali limitazioni per cloud provider e vendor di servizi managed
La Reazione della Community
La decisione di HashiCorp ha generato una controversia immediata per diversi motivi:
-
Retroattività: Il cambio ha interessato anche versioni già rilasciate sotto MPL-2.0
-
Ambiguità: La definizione di “uso competitivo” era troppo vaga e potenzialmente espansiva
-
Fiducia infranta: Molte organizzazioni avevano investito pesantemente in Terraform basandosi sulla sua natura open source
-
Impatto ecosystem: Cloud provider, startup e servizi managed rischiavano di trovarsi in violazione di licenza
La Nascita di OpenTofu: Una Risposta Collettiva
In risposta a questo cambio, il 16 agosto 2023 (appena 6 giorni dopo l’annuncio), un gruppo di aziende e maintainer ha lanciato il “OpenTF Manifesto”, firmato inizialmente da:
-
Spacelift
-
env0
-
Scalr
-
Digger
-
Terramate
-
Terrateam
-
E oltre 100 altre organizzazioni
Gli Obiettivi del Manifesto OpenTF
-
Mantenere Terraform veramente open source sotto licenza MPL-2.0
-
Creare una governance trasparente gestita dalla community
-
Assicurare neutralità del vendor senza favoritismi commerciali
-
Preservare la compatibilità con l’ecosistema esistente
Il Processo di Fork Tecnico
Il fork non è stato solo una questione ideologica, ma ha richiesto un impegno tecnico significativo:
Fase 1: Fork del Codice (Agosto 2023)
-
Fork dell’ultima versione MPL-2.0 di Terraform (v1.5.7)
-
Creazione del repository
opentofu/opentofu
-
Setup dell’infrastruttura di build e testing
Fase 2: Governance (Settembre 2023)
-
Trasferimento del progetto alla Linux Foundation
-
Creazione del Technical Steering Committee (TSC)
-
Definizione dei processi di contribuzione e RFC
Fase 3: Primo Release (Gennaio 2024)
-
OpenTofu v1.6.0 come primo release stabile
-
Registry indipendente per i provider
-
Documentazione e tooling dedicati
Implicazioni Tecniche del Fork
Il fork ha creato due ecosistemi paralleli con caratteristiche distinte:
Divergenza nell’Evoluzione:
-
Terraform: Sviluppo guidato dalle esigenze commerciali di HashiCorp
-
OpenTofu: Sviluppo guidato dalle necessità della community
Gestione dei Provider:
-
Terraform: Registry centralizzato controllato da HashiCorp
-
OpenTofu: Registry aperto e distribuito
Roadmap Differenti:
-
Terraform: Focus su Terraform Cloud e monetizzazione
-
OpenTofu: Focus su innovazione open source e trasparenza
Questa guida esplora le differenze pratiche emerse da questa separazione, aiutandoti a scegliere lo strumento più adatto alle tue esigenze tecniche e organizzative.
Cos’è Terraform?
Terraform è uno strumento di Infrastructure as Code sviluppato da HashiCorp che permette di definire, pianificare e creare infrastrutture cloud attraverso file di configurazione dichiarativi. Lanciato nel 2014, è diventato rapidamente lo standard de facto per la gestione dell’infrastruttura cloud.
Puoi recuperare il nostro articolo di approfondimento qui: Cos’è Terraform e come funziona
Caratteristiche principali di Terraform:
-
Linguaggio di configurazione HCL (HashiCorp Configuration Language)
-
Supporto multi-cloud (AWS, Azure, GCP, e oltre 3000 provider)
-
State management centralizzato
-
Plan e apply workflow
-
Moduli riutilizzabili
Cos’è OpenTofu?
OpenTofu è un fork open source di Terraform, nato nel 2023 come risposta al cambio di licenza di HashiCorp da Mozilla Public License 2.0 (MPL-2.0) a Business Source License (BSL). È mantenuto dalla Linux Foundation e mira a preservare la natura open source dello strumento.
Caratteristiche principali di OpenTofu:
-
Fork 1:1 compatibile con Terraform
-
Licenza MPL-2.0 (completamente open source)
-
Governance comunitaria attraverso la Linux Foundation
-
Sviluppo guidato dalla community
-
Compatibilità backward con i file di configurazione Terraform
Differenze Principali
1. Licenza e Governance
Terraform:
-
Licenza: Business Source License (BSL) dalla versione 1.6+
-
Governance: Controllato da HashiCorp
-
Uso commerciale: Limitazioni per alcuni casi d’uso commerciali
OpenTofu:
-
Licenza: Mozilla Public License 2.0 (MPL-2.0)
-
Governance: Linux Foundation con governance aperta
-
Uso commerciale: Completamente libero per qualsiasi uso
2. Sviluppo e Roadmap
Terraform:
-
Sviluppo centralizzato da HashiCorp
-
Roadmap definita dall’azienda
-
Cicli di rilascio regolari e prevedibili
-
Focus su prodotti HashiCorp (Terraform Cloud, Enterprise)
OpenTofu:
-
Sviluppo guidato dalla community
-
Roadmap definita attraverso RFC pubbliche
-
Contributi aperti da multiple organizzazioni
-
Focus sulla trasparenza e inclusività
3. Funzionalità e Innovazioni
Terraform (vantaggi):
-
Nuove funzionalità sviluppate da team dedicati
-
Integrazione nativa con l’ecosistema HashiCorp
-
Supporto prioritario per Terraform Cloud
-
Testing e QA robusti
OpenTofu (vantaggi):
-
Innovazioni guidate dalle esigenze reali degli utenti
-
Sviluppo più rapido di alcune funzionalità community-requested
-
Trasparenza totale nel processo di sviluppo
-
Nessun vendor lock-in
4. Supporto e Ecosystem
Terraform:
-
Supporto commerciale disponibile attraverso HashiCorp
-
Ampia documentazione ufficiale
-
Terraform Cloud e Enterprise
-
Grande ecosistema di provider (ma con possibili limitazioni future)
OpenTofu:
-
Supporto community-driven
-
Documentazione mantenuta dalla community
-
Registry dei provider indipendente
-
Crescente ecosistema di tool di terze parti
Compatibilità e Migrazione
Da Terraform a OpenTofu
La migrazione da Terraform a OpenTofu è generalmente semplice:
# 1. Installare OpenTofu
# 2. Sostituire il comando terraform con tofu
tofu init
tofu plan
tofu apply
Punti di attenzione:
-
I file .tf rimangono identici
-
Lo state file è compatibile
-
Alcuni provider potrebbero avere versioni diverse
-
Le funzionalità più recenti di Terraform potrebbero non essere disponibili
Da OpenTofu a Terraform
La migrazione inversa è possibile ma con alcune considerazioni:
-
Verificare la compatibilità delle versioni
-
Alcune funzionalità specifiche di OpenTofu potrebbero non essere supportate
-
Considerare le implicazioni di licenza
Quando Scegliere Terraform
Scegli Terraform se:
-
Hai bisogno di supporto commerciale garantito
-
Utilizzi l’ecosistema HashiCorp (Vault, Consul, Nomad)
-
Preferisci la stabilità di un prodotto enterprise
-
Non hai preoccupazioni riguardo alla licenza BSL
-
Vuoi accesso prioritario alle nuove funzionalità
Quando Scegliere OpenTofu
Scegli OpenTofu se:
-
Preferisci software completamente open source
-
Vuoi evitare vendor lock-in
-
Hai bisogno di libertà completa per uso commerciale
-
Vuoi contribuire allo sviluppo dello strumento
-
Preferisci governance trasparente e comunitaria
-
Hai preoccupazioni sulla direzione futura di HashiCorp
Performance e Affidabilità
Entrambi gli strumenti offrono prestazioni simili poiché OpenTofu deriva dal codice di Terraform. Le differenze principali sono:
Terraform:
-
Testing enterprise-grade
-
Cicli di QA consolidati
-
Supporto tecnico professionale
OpenTofu:
-
Testing community-driven
-
Sviluppo più agile
-
Feedback rapido dalla community
Considerazioni Future
Terraform
-
Evoluzione verso modello SaaS con Terraform Cloud
-
Possibili restrizioni future sulla licenza
-
Integrazione sempre più stretta con prodotti HashiCorp
OpenTofu
-
Crescita dell’ecosistema community
-
Sviluppo di funzionalità innovative
-
Indipendenza dai vincoli commerciali
Conclusioni
La scelta tra Terraform e OpenTofu dipende dalle tue priorità specifiche:
-
Per organizzazioni enterprise che valorizzano il supporto commerciale e l’integrazione con l’ecosistema HashiCorp, Terraform rimane una scelta solida.
-
Per organizzazioni che prioritizzano l’open source, la libertà di utilizzo e la governance comunitaria, OpenTofu rappresenta un’alternativa compelling.
-
Per progetti nuovi, considera attentamente le implicazioni a lungo termine della licenza e della governance.
La buona notizia è che la compatibilità tra i due strumenti significa che la decisione non è irreversibile, permettendo di valutare entrambe le opzioni in base all’evoluzione delle proprie esigenze.