Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Terraform moduly — best practices pro enterprise

23. 10. 2019 1 min čtení CORE SYSTEMSai

Začínali jsme s jedním velkým main.tf. Dnes máme knihovnu 30+ modulů, CI/CD pro infrastrukturu a automated testing. Sdílíme vzory, které nám fungují.

Struktura repozitáře

terraform/
  modules/          # sdílené moduly
    vpc/
    eks-cluster/
    rds/
    s3-bucket/
  environments/     # per-environment konfigurace
    dev/
    staging/
    production/
  global/           # shared resources (IAM, DNS)

Modul design principy

  • Single responsibility: modul dělá jednu věc dobře
  • Explicit inputs/outputs: žádné hardcoded hodnoty
  • Sane defaults: funguje out of the box, customizovatelný
  • Versioning: Git tags, semantic versioning
  • Documentation: README s příklady pro každý modul

Testing infrastruktury

Terratest (Go framework): vytvoří reálnou infrastrukturu v test accountu, ověří, že funguje, a zničí ji. Pomalé, ale spolehlivé. Běží v CI pipeline při merge do main.

State management

Separátní state per environment. S3 backend s DynamoDB locking. State encryption at rest. Minimální přístup k state — jen CI/CD pipeline a senior engineers.

Sentinel/OPA policies

Terraform plan prochází policy checkem: žádné public S3 buckety, povinné encryption, povinné tagy. Automatické enforcement v CI pipeline — plan, který porušuje politiky, neprojde.

Terraform v enterprise vyžaduje disciplínu

Moduly, testing, policies, code review — Terraform infrastruktura si zaslouží stejnou péči jako aplikační kód. Protože chyba v Terraformu může smazat produkci.

terraformmodulesiacbest practices