Terraform byl po léta synonymem pro Infrastructure as Code. Pak přišla změna licence na BSL, z toho se narodil OpenTofu, a Pulumi mezitím tiše přesvědčilo vývojáře, že HCL není jediná cesta. V roce 2026 máte tři vyspělé nástroje — a žádná univerzální odpověď. Tady je praktický průvodce, který vám pomůže vybrat.
Stav hřiště v roce 2026¶
Infrastructure as Code není nový koncept. Co je nové, je situace na trhu. Po akvizici HashiCorpu IBM v roce 2024 a přechodu Terraformu na Business Source License (BSL 1.1) se ekosystém rozštěpil. Dnes máme tři hlavní hráče, každý s odlišnou filozofií, licencí a komunitou.
Terraform¶
Originál od HashiCorp (IBM). BSL 1.1 licence. HCL jazyk. Největší ekosystém providerů. Terraform Cloud jako managed řešení.
OpenTofu¶
Community fork Terraformu pod CNCF. MPL 2.0 licence. Kompatibilní s HCL. Nativní state encryption. Plně open source.
Pulumi¶
IaC v programovacích jazycích (TypeScript, Python, Go, C#). Plné testování, IDE podpora, AI-powered governance. Pulumi Cloud.
Než se ponoříme do detailů — důležitý kontext: pro většinu interních týmů se změna licence Terraformu prakticky nedotkla. BSL 1.1 zakazuje vytvářet konkurenční hosted služby k Terraform Cloud, ale interní použití zůstává volné. Problém je strategický: chcete stavět na nástroji, kde vendor může pravidla změnit znovu?
Srovnání: co rozhoduje v praxi¶
Jazyk a developer experience¶
Terraform a OpenTofu používají HCL (HashiCorp Configuration Language) — deklarativní jazyk navržený speciálně pro popis infrastruktury. Je čitelný, jednoznačný a omezený záměrně. Nemáte smyčky s vedlejšími efekty, nemáte exception handling, nemáte dědičnost. Pro jednoduché a středně složité infrastruktury je to výhoda — méně způsobů, jak si střelit do nohy.
Pulumi jde opačnou cestou: píšete infrastrukturu v TypeScript, Python, Go, C#, nebo Java. Máte k dispozici celý ekosystém jazyka — balíčky, typy, abstrakce, unit testy, IDE s autocomplete. Pro vývojáře, kteří píší aplikační kód, je to přirozené. Pro ops tým, který se v životě nedotkl TypeScriptu, je to bariéra.
`# Terraform / OpenTofu — HCL
resource “aws_s3_bucket” “data” {
bucket = “company-data-${var.environment}”
tags = {
Environment = var.environment
ManagedBy = “tofu”
}
}`
`// Pulumi — TypeScript
const bucket = new aws.s3.Bucket(“data”, {
bucket: company-data-${stack},
tags: {
Environment: stack,
ManagedBy: “pulumi”,
},
});
// Unit test — standardní Jest
test(“bucket name contains environment”, () => {
expect(bucket.bucket).toContain(“production”);
});`
Klíčový rozdíl: s Pulumi můžete psát unit testy na infrastrukturu ve stejném frameworku jako na aplikační kód. S Terraform/OpenTofu potřebujete externí nástroje jako Terratest (Go) nebo tftest. Testovatelnost je oblast, kde Pulumi jasně vede.
State management¶
Všechny tři nástroje potřebují state — záznam o tom, co je skutečně nasazené. Terraform ukládá state do souboru, který můžete hodit na S3, Azure Blob nebo do Terraform Cloud. OpenTofu dělá totéž, ale přidává killer feature: nativní state encryption at rest. State file často obsahuje citlivá data (connection stringy, API klíče) a u Terraformu je v plaintextu. OpenTofu to řeší od verze 1.7 — šifrování AES-GCM přímo v core, bez externích nástrojů.
Pulumi nabízí vlastní Pulumi Cloud jako managed state backend s verzováním, audit logem a RBAC. Můžete také použít self-hosted backend (S3, Azure Blob, GCS). Pulumi navíc podporuje nativní šifrování secrets v state — podobně jako OpenTofu, ale s delší historií a wider support (AWS KMS, Azure Key Vault, GCP KMS, HashiCorp Vault).
Provider ekosystém¶
Terraform má nejširší ekosystém providerů — přes 4 000 v Terraform Registry. Jakýkoliv cloud, SaaS, on-premise systém — je téměř jistota, že provider existuje. OpenTofu je plně kompatibilní s Terraform providery, takže používá stejný registry a stejné providery bez úprav. To je největší výhoda OpenTofu: nulové náklady na migraci z Terraformu.
Pulumi má vlastní native providery pro hlavní cloudy (AWS, Azure, GCP, Kubernetes) a navíc bridged providery, které automaticky wrappují Terraform providery. V praxi to znamená, že Pulumi pokrývá téměř stejný rozsah jako Terraform, ale bridged providery mohou mít drobný lag za upstream verzí.
Srovnávací tabulka¶
| Terraform | OpenTofu | Pulumi | |
|---|---|---|---|
| Licence | BSL 1.1 (source-available) | MPL 2.0 (open source) | Apache 2.0 (engine), komerční Cloud |
| Governance | HashiCorp / IBM | CNCF / Linux Foundation | Pulumi Corp. |
| Jazyk | HCL | HCL | TypeScript, Python, Go, C#, Java, YAML |
| State encryption | ❌ (potřeba externího řešení) | ✅ Nativní (AES-GCM) | ✅ Nativní (multi-provider KMS) |
| Testovatelnost | Terratest, tftest | Terratest, tftest | Nativní unit/integration testy |
| Provideři | 4 000+ (Terraform Registry) | Plně kompatibilní s TF registry | Native + bridged TF providery |
| Managed platform | Terraform Cloud / Enterprise | Spacelift, env0, Scalr | Pulumi Cloud |
| Policy as Code | Sentinel (proprietární) | OPA / Rego | CrossGuard (Python/TypeScript) + AI remediation |
| Import existující infra | terraform import | tofu import | pulumi import + bulk import |
| Křivka učení | Nízká–střední | Nízká–střední (stejná jako TF) | Záleží na jazyku (nízká pro devs, vyšší pro ops) |
Terraform v roce 2026: stabilní, ale otázky visí¶
Terraform zůstává nejrozšířenějším IaC nástrojem. Většina enterprise organizací ho má v produkci, má vybudované moduly, CI/CD pipeline a interní knowledge base. To je obrovská setrvačnost a legitimní důvod zůstat.
Kdy zůstat u Terraformu¶
- Existující investice: Máte stovky modulů, vyškolený tým, fungující pipeline. Migrace má náklady.
- Terraform Cloud/Enterprise: Pokud využíváte managed platformu od HashiCorp a jste spokojení s cenou a features.
- Sentinel policies: Máte napsané Sentinel policies a nechcete je přepisovat.
- Enterprise support: Potřebujete komerční SLA a support od vendora s IBM za zády.
Rizika¶
- Licence: BSL 1.1 může omezit vaše možnosti, pokud stavíte platformu nad Terraformem pro třetí strany.
- Vendor lock-in: IBM/HashiCorp řídí roadmapu. Komunita nemá vliv na prioritizaci features.
- Inovační tempo: Nové features jako state encryption přicházejí pomalěji než u OpenTofu/Pulumi.
OpenTofu: svoboda bez kompromisů¶
OpenTofu vznikl v srpnu 2023 jako reakce na změnu licence Terraformu. Dnes je pod CNCF, má vlastní release cyklus a začal přidávat features, které Terraform nemá. Klíčová výhoda: je to drop-in replacement. Přejmenujete binary, změníte pár konfiguračních řádků a jedete dál. Vaše moduly, providery a state soubory fungují beze změny.
Co OpenTofu přidává navíc¶
- State encryption: Nativní šifrování state a plan souborů. AES-GCM, podpora AWS KMS, GCP KMS, Azure Key Vault, OpenBao.
- Nativní S3 state locking: Od verze 1.10 — DynamoDB tabulka pro locking není potřeba, S3 conditional writes stačí.
- Registry independence: Vlastní registry s fallback na Terraform Registry. Žádná závislost na HashiCorp infrastruktuře.
- Community-driven roadmap: RFC proces, veřejné hlasování, transparentní governance pod CNCF.
`# OpenTofu — state encryption konfigurace
terraform {
encryption {
key_provider “aws_kms” “main” {
kms_key_id = “arn:aws:kms:eu-central-1:123:key/abc-def”
region = “eu-central-1”
}
method “aes_gcm” “default” {
keys = key_provider.aws_kms.main
}
state {
method = method.aes_gcm.default
}
}
}`
Kdy zvolit OpenTofu¶
- Migrace z Terraformu: Chcete open source alternativu bez přepisování kódu. Migrace je triviální.
- Regulované prostředí: State encryption je requirement. OpenTofu to má nativně, Terraform ne.
- Strategická nezávislost: Nechcete být závislí na roadmapě jednoho vendora.
- HCL tým: Váš tým umí HCL a nechce se učit nový jazyk.
Pulumi: IaC pro vývojáře¶
Pulumi je fundamentálně odlišný přístup. Místo DSL používáte skutečný programovací jazyk. To znamená: conditions, loops, functions, classes, interfaces, generics — vše, co znáte z aplikačního vývoje. A hlavně: testovatelnost. Můžete psát unit testy na infrastrukturu ve stejném frameworku jako na business logiku.
Co Pulumi nabízí v roce 2026¶
- Pulumi Neo: AI-asistovaný infrastructure management — generování kódu, diagnostika chyb, automatické opravy.
- Next-Gen Policies: CrossGuard s AI-powered remediation. Policy violations se nejen detekují, ale automaticky navrhují opravu.
- Kubernetes Operator 2.0: GA verze operátoru pro GitOps workflow s Pulumi a Kubernetes.
- Pulumi Insights: AI-powered search a analytics přes celou infrastrukturu — „Najdi všechny S3 buckety bez encryption.”
- Component Resources: Znovupoužitelné abstrakce — vytvořte si „CompanyVPC” komponentu s best practices a sdílejte ji napříč týmy.
`// Pulumi — reusable komponenta v TypeScript
export class CompanyVpc extends pulumi.ComponentResource {
public readonly vpc: aws.ec2.Vpc;
public readonly privateSubnets: aws.ec2.Subnet[];
constructor(name: string, args: CompanyVpcArgs, opts?: pulumi.ComponentResourceOptions) {
super(“company:network:Vpc”, name, {}, opts);
this.vpc = new aws.ec2.Vpc(${name}-vpc, {
cidrBlock: args.cidr,
enableDnsHostnames: true,
tags: { …args.tags, ManagedBy: “pulumi” },
}, { parent: this });
// Automaticky 3 private subnety v AZ
this.privateSubnets = args.azs.map((az, i) =>
new aws.ec2.Subnet(${name}-priv-${i}, {
vpcId: this.vpc.id,
cidrBlock: 10.0.${i + 1}.0/24,
availabilityZone: az,
}, { parent: this })
);
}
}`
Kdy zvolit Pulumi¶
- Vývojářský tým: Váš infra tým jsou primárně software engineers, kteří chtějí psát TypeScript/Python/Go.
- Komplexní logika: Potřebujete podmínky, smyčky a abstrakce, které v HCL bolí (dynamic blocks, for_each hacks).
- Testovatelnost: Unit testy na infrastrukturu jsou pro vás must-have, ne nice-to-have.
- Kubernetes-heavy: Pulumi má nejhlubší Kubernetes integraci — Helm, CRDs, operátory, GitOps.
- Greenfield projekt: Začínáte od nuly a nemáte existující Terraform investici.
Reálné scénáře: co použít kdy¶
Scénář 1: Enterprise s 200+ Terraform moduly¶
Doporučení: Zůstaňte u Terraformu, nebo postupně migrujte na OpenTofu. Přepisovat 200 modulů do Pulumi nemá business smysl. OpenTofu je bezbolevý přechod — změníte binary, otestujete v staging, a jedete. Migrace trvá hodiny, ne týdny.
Scénář 2: Startup s 5 vývojáři, full-stack TypeScript¶
Doporučení: Pulumi. Tým už umí TypeScript, IDE podpora je familiární, unit testy na infrastrukturu pište od prvního dne. Nemusíte se učit HCL — jedno tech stack na všechno. Pulumi Cloud free tier stačí na začátek.
Scénář 3: Banka s compliance požadavky na šifrování state¶
Doporučení: OpenTofu nebo Pulumi. Terraform nemá nativní state encryption — musíte řešit šifrování na úrovni backendu (S3 server-side encryption), což nemusí splňovat audit požadavky na end-to-end encryption. OpenTofu a Pulumi šifrují state nativně, ještě před odesláním na backend.
Scénář 4: Multi-cloud platform tým budující interní developer platformu¶
Doporučení: Pulumi. Když stavíte abstrakce nad infrastrukturou (self-service portal, interní moduly, golden paths), programovací jazyk vám dá výrazně víc flexibility než HCL. Component Resources v Pulumi jsou přesně pro tento use case — znovupoužitelné, verzované, testovatelné infrastrukturní bloky.
Scénář 5: DevOps tým, který nechce vendor lock-in¶
Doporučení: OpenTofu. CNCF governance, MPL 2.0 licence, community-driven roadmap. Žádný vendor vám nemůže změnit pravidla hry. Navíc kompatibilita s Terraform ekosystémem znamená, že máte přístup ke stejným providerům a modulům.
Migrace: jak na to prakticky¶
Z Terraformu na OpenTofu¶
Nejjednodušší migrace v historii IaC. Doslova:
- Nainstalujte OpenTofu (
brew install opentofu) - Spusťte
tofu initv existujícím Terraform projektu - Spusťte
tofu plan— měli byste vidět „No changes” - Aktualizujte CI/CD pipeline (nahraďte
terraformzatofu) - Volitelně: zapněte state encryption
Pozor: Pokud používáte Terraform Cloud jako remote backend, budete potřebovat alternativu (Spacelift, env0, Scalr, nebo self-hosted S3 backend). OpenTofu nepodporuje Terraform Cloud backend.
Z Terraformu na Pulumi¶
Složitější, ale Pulumi má nástroje, které pomáhají:
pulumi convert --from terraform— konvertuje HCL na Pulumi kód v zvoleném jazyce. Výsledek potřebuje ruční úpravy, ale je to dobrý start.pulumi import— importuje existující cloudové zdroje do Pulumi state bez downtime.- Postupná migrace: Pulumi může číst Terraform state přes
terraform.statedata source — můžete migrovat modul po modulu.
Co sledovat v dalších měsících¶
- OpenTofu 1.11+: Očekává se podpora pro provider-defined functions a vylepšený module testing. CNCF incubation status dodá projektu další kredibilitu.
- Pulumi AI integrace: Pulumi Neo a Insights se rychle vyvíjejí. AI-powered governance (automatická detekce a oprava policy violations) může být game changer pro enterprise adopci.
- Terraform pod IBM: Jak IBM ovlivní roadmapu? Dosud žádné dramatické změny, ale dlouhodobý směr je nejistý. Sledujte, zda BSL podmínky zůstanou stejné.
- CDKTF deprecation: HashiCorp oznámil ukončení CDK for Terraform. Pokud ho používáte, je čas přejít — buď na čisté HCL, nebo na Pulumi.
Závěr: žádná špatná volba, jen různé trade-offs¶
Všechny tři nástroje jsou v roce 2026 produkčně připravené a aktivně vyvíjené. Rozdíly nejsou v kvalitě — jsou v filozofii, licenci a developer experience.
Terraform je bezpečná volba pro konzervativní organizace s existující investicí. OpenTofu je logický nástupce pro kohokoliv, kdo chce open source jistotu bez přepisování kódu. Pulumi je budoucnost pro vývojářské týmy, které chtějí infrastrukturu jako skutečný software — s testy, abstrakcemi a IDE podporou.
Naše doporučení? Nové projekty začněte s OpenTofu nebo Pulumi. Existující Terraform projekty migrujte na OpenTofu, pokud vám záleží na open source. A pokud váš tým jsou software engineers — dejte šanci Pulumi. Možná zjistíte, že HCL nebylo nikdy to pravé.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns