Terraform oder OpenTofu?
Eine Lizenzänderung, eine Gabel, eine Übernahme. Welchen würde ich heute wählen und warum?
Eine Lizenzänderung, eine Gabel, eine Übernahme. Welchen würde ich heute wählen und warum?

Ungefähr ein Jahrzehnt lang hatte die Frage "welches Werkzeug sollten wir für Infrastruktur als Code verwenden?" eine langweilige Antwort: Terraform. Dann, im Jahr 2023, wurden die Dinge interessant. Heute gibt es zwei Werkzeuge, die fast identisch aussehen, die ihre Geschichte teilen und aus sehr unterschiedlichen Orten stammen.
Wenn Sie ein neues Projekt starten oder überlegen, umzugehen, dann sehe ich es so.
August 2023: HashiCorp änderte die Lizenz von Terraform von der Open-Source Mozilla Public License (MPL) in die Business Source License (BSL). Kurz gesagt: Sie können Terraform immer noch frei nutzen, aber Sie können kein konkurrierendes kommerzielles Produkt darauf bauen. Viele Unternehmen und Mitglieder der Community waren der Meinung, dass dies das Versprechen eines offenen Tools, zu dem Tausende beigetragen hatten, verletzt hat.
September 2023: Eine Gruppe von Unternehmen hat die letzte Open-Source-Version verzweigt. Die Gabel wurde OpenTofu und trat der Linux Foundation bei, später wurde es ein CNCF-Projekt.
2024–2025: IBM kündigte an, HashiCorp zu erwerben, und schloss die Übernahme Anfang 2025 ab. Terraform ist jetzt ein IBM-Produkt.
Seitdem haben beide Tools neue Versionen veröffentlicht, und sie haben angefangen, sich zu trennen.
Der Kern ist immer noch sehr ähnlich. Beide verwenden HCL, das gleiche Anbieter-Ökosystem, das gleichen Zustandformat (meist) und die gleiche init, plan, apply Arbeitsfluss. Ihr bestehender Code funktioniert in der Regel in beiden.
Aber jeder hat Funktionen, die der andere nicht hat, oder die er anders implementiert.
OpenTofu zeigt:
- Verschlüsselung der Zustände Einbaute. Ihre Zustanddatei, die oft Geheimnisse enthält, kann mit Schlüsseln von einem KMS verschlüsselt werden. - Ich weiß . Frühe Variablevaluierung: Variablen und Lokals können an Orten wie Modulquellen und Backend-Konfiguration verwendet werden. - Ich weiß . for_each über Anbieter, wodurch die Einrichtung von mehreren Regionen und mehreren Konten viel sauberer wird. - Ein Gemeinschaftstätigkeit Roadmap, wo viele lange gewünschte Funktionen des Terraform-Fragenverfolgers gelandet sind.
Terraform-Highlights: - Terraform-Stapeln für die gemeinsame Verwaltung vieler zusammenhängender Konfigurationen und Bereitstellungen, die an HCP Terraform gebunden sind. - Ich weiß . Vergängliche Ressourcen und Werte, Geheimnisse aus dem Staat und Plan Dateien zu halten. - Ich weiß . Tiefe Integration mit HCP Terraform (Managed Service) und die breitere HashiCorp- und IBM-Tooling-Branche. - Ich weiß . Handelsförderung Die Kommission hat die Kommission aufgefordert, die in den letzten Jahren vorgenommenen Maßnahmen zu prüfen.
Der Code, den Sie schreiben, ist noch fast derselbe. Die Frage ist eigentlich, welche Lizenzen, welche Governance und welche Features Sie benötigen.
Für die meisten Unternehmen, die einfach Verwendung Die BSL verändert in der Praxis nichts. Du kannst es kostenlos benutzen.
Es ist wichtig, wenn:
Der Wechsel von Terraform auf OpenTofu ist in der Regel einfach, besonders von Terraform 1.5 oder früher:
tofu init in einer Prüfkonfiguration.tofu plan. Wenn es keine Veränderungen zeigt, sind Sie kompatibel.tofu Binär.Je weiter sich die beiden Werkzeuge auseinander bewegen, desto schwieriger wird es, zwischen ihnen zu bewegen. Mit Terraform Stacks oder OpenTofu's Zustandsschlüsselung verbinden Sie sich mit diesem Tool.
Terraförm Die Datenbank ist auf Unternehmensworkflows ausgerichtet: HCP Terraform, Stacks, Integrationen mit dem IBM-Portfolio sowie Richtlinien- und Governance-Funktionen.
OpenTofu ist auf die von der Gemeinschaft angeforderten Funktionen, Offenheit und eine neutrale Grundlage für das Ökosystem ausgerichtet. Mehrere Plattformen zur Automatisierung von Infrastrukturen (wie Spacelift, env0, Scalr und Harness) unterstützen sie aktiv.
Beide sehen gesund aus. Das geht auch nicht bald vorbei.
Meine Meinung: Die HCL, die Sie schreiben, ist wichtiger als die Binärdatei, die sie ausführt. Halten Sie Ihren Code sauber und tragbar, und die Wahl bleibt Ihnen.
Desly