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é.