Text size
Auf meinem Radar6 Min. Lesezeit

Terraform oder OpenTofu?

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

Terraform or OpenTofu?
KI-generierte Illustration

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.

Wie sind wir hierher gekommen ?

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.

Was ist jetzt anders?

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.

Die Lizenzfrage, ehrlich gesagt.

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:

  • Sie bauen ein Produkt oder eine Dienstleistung, die mit dem von HashiCorp konkurriert.
  • Ihre Firma hat eine Richtlinie, nur OSI-zugelassene Open-Source-Software zu verwenden.
  • Sie interessieren sich für die langfristige Governance: ein vom Anbieter kontrolliertes Werkzeug gegen ein von einer Stiftung gesteuertes.

Schritt für Schritt wechseln

Der Wechsel von Terraform auf OpenTofu ist in der Regel einfach, besonders von Terraform 1.5 oder früher:

  1. Zurück in den Zustand.
  2. Installieren von OpenTofu und laufen tofu init in einer Prüfkonfiguration.
  3. Lauf ! tofu plan. Wenn es keine Veränderungen zeigt, sind Sie kompatibel.
  4. Überprüfungsdienstleister: OpenTofu verwendet ein eigenes Register, das die gemeinsamen Anbieter widerspiegelt.
  5. Aktualisierung von CI die tofu Binär.
  6. Vermeiden Sie die Verwendung neuer Funktionen eines Tools Bis du dich entschieden hast, damit du noch zurück wechseln kannst.

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.

Wohin jeder geht

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.

Welche würde ich wählen?

  • Neues Projekt, keine starken LieferantenverbindungenIch würde mich zu OpenTofu- Ich weiß . Offene Governance, nützliche Funktionen wie staatliche Verschlüsselung und volle Kompatibilität mit dem Ökosystem.
  • Schon tief in HCP Terraform oder HashiCorps UnternehmenswerkzeugenBleib bei mir . Terraförm- Ich weiß . Der Wechsel kostet mehr, als er spart.
  • Bestehende Terraform-Einrichtung, keine ProblemeEs ist nicht dringend. Halten Sie Ihren Code für den Moment mit beiden kompatibel und entscheiden Sie, wann eine Funktion oder Richtlinie die Wahl für Sie trifft.

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