Pulumi / CDKTF (alternative IaC)

Тема дорожной карты · DevOps Engineer

Pulumi — это современная платформа инфраструктуры как код (IaC), которая позволяет определять ресурсы облачных сервисов с использованием знакомых языков программирования, таких как Python, TypeScript и Go. Используйте её для развертывания и управления инфраструктурой на нескольких облачных провайдерах, таких как AWS, Azure и GCP.

Как это работает

Pulumi / CDKTF (alternative IaC) (Infrastructure as Code) — описание серверов, сетей, баз данных и Kubernetes-кластеров в декларативных конфиг-файлах, версионируемых в Git. Terraform (HashiCorp) читает HCL-файлы, общается с API провайдеров (AWS, GCP, Yandex Cloud, Kubernetes) и поддерживает state-файл, маппящий объявленные ресурсы на реальные ID. Ansible (Red Hat) выполняет идемпотентные playbooks по SSH для конфигурации машин. Packer строит golden images; Pulumi/CDKTF дают ту же декларативную модель на языках общего назначения. Результат — инфраструктура воспроизводимая, проходящая code review и допускающая rollback.

Когда применять

Внедряйте Pulumi / CDKTF (alternative IaC) как только у вас больше 2–3 серверов или появилось production-окружение. Ручной ClickOps небезопасен на масштабе: нет audit trail, нет review, нет rollback. Terraform подходит для долгоживущих cloud-ресурсов (VPC, базы данных, managed Kubernetes); Ansible — для изменяемой конфигурации на существующих хостах (security patches, user accounts). Комбинируйте: Terraform provisions VM, Ansible конфигурирует её. Для самого Kubernetes предпочтите GitOps (Argo CD, Flux) запуску kubectl apply из Terraform.

Типичные ошибки

Ловушки IaC: коммит tfstate в Git (содержит секреты — используйте S3/Yandex Object Storage backend с locking); монолитные root-модули (разбейте по окружению/сервису); terraform apply с ноутбука вместо CI (нет audit trail); Ansible playbooks, которые не идемпотентны (второй запуск ломает); plaintext-секреты в HCL/YAML (используйте sops, Vault или external secret stores); игнорирование drift между кодом и реальным cloud-состоянием. Запускайте terraform plan в CI на каждом PR.

Связанные понятия

Полезные ресурсы