Infrastructure as Code
Infrastruktura v gitu. Reprodukovatelná. Auditovatelná.
Terraform a Pulumi s GitOps workflow. Každá změna infrastruktury prochází code review, automatizovanými testy a audit trailem.
Proč Infrastructure as Code¶
Ruční infrastruktura je technický dluh. Server nakonfigurovaný přes konzoli je snowflake — nikdo neví přesně jak ho reprodukovat. IaC eliminuje:
- Snowflake problém — Každé prostředí je reprodukovatelné z kódu
- Documentation drift — Kód JE dokumentace. Vždy aktuální.
- Audit otázky — „Kdo změnil firewall?” → git blame
- DR nightmare — Disaster recovery = terraform apply
- Environment parity — Dev = staging = prod (jen jiné parametry)
GitOps Workflow¶
Developer → Branch → Terraform change → PR
│
┌──────────┴──────────┐
│ Automated checks: │
│ - terraform validate│
│ - tflint │
│ - checkov (security)│
│ - cost estimate │
│ - plan preview │
└──────────┬──────────┘
│
Code review + approval
│
Merge → terraform apply
│
Drift detection (continuous)
Vše automatizované. Plan preview v PR komentáři — reviewer vidí přesně, co se změní, než schválí. Cost estimate ukazuje dopad na cloud bill.
Modularizace¶
Terraform moduly pro standardní patterny:
- Networking — VPC/VNet, subnets, NSG, load balancer
- Kubernetes cluster — Managed K8s s node pools, RBAC, monitoring
- Database — Managed PostgreSQL/SQL Server s backup, monitoring
- Monitoring — Grafana + Prometheus + alerting rules
- Application — Container app s ingress, TLS, DNS
Interní module registry. Nový tým vyplní parametry, dostane production-ready infrastrukturu za hodiny. Best practices zabudované — security, tagging, naming, monitoring.
Drift Detection¶
Někdo změní něco ručně v konzoli. Bez drift detection to nepoznáte — až když terraform apply přepíše změnu a něco se rozbije.
Automatická drift detection každou hodinu. Alert při neshodě. Remediation: buď importujeme do state, nebo revertujeme ruční změnu.
Security as Code¶
Checkov, tfsec, Sentinel policies — automatická validace bezpečnostních pravidel:
- Encryption at rest povinné
- Public access zakázaný (pokud ne explicitně schválený)
- Tagging pravidla (cost center, environment, owner)
- Network segmentace
- Logging enabled
Security check běží v CI — nesplňující změna se nedostane do produkce.
Časté otázky
Terraform je standard s obrovským ekosystémem. Pulumi umožňuje TypeScript/Python — lepší pro vývojářské týmy. Volíme podle týmu a existujícího toolingu.
Remote state v encrypted storage (S3 + DynamoDB lock nebo Azure Blob). State locking pro team collaboration. Workspace per environment. Automated backup.
Závisí na komplexitě infrastruktury. Typicky 4-8 týdnů pro existující prostředí. Nová prostředí od nuly jsou rychlejší — 2-4 týdny.