Вы когда-нибудь настраивали сервер вручную? Заходили по SSH, устанавливали пакеты, правили конфиги, открывали порты. А потом прилетал коллега и спрашивал: «А почему у нас PostgreSQL слушает на порту 5433, а не на 5432?». И вы не могли вспомнить, потому что правили настройку два месяца назад и даже не записали.
Инфраструктура как код (IaC) — это подход, где вы описываете всю вашу инфраструктуру (серверы, базы данных, сети, балансировщики) в текстовых файлах. Эти файлы хранятся в Git, проходят код-ревью, версионируются. А специальные инструменты (Terraform, Pulumi, Ansible) применяют эти описания к реальной инфраструктуре.
В 2026 году IaC — это стандарт для любой серьёзной компании. Без него невозможно управлять современными облаками и Kubernetes. Но инструментов много, и они решают разные задачи. Давайте разбираться.
Часть 1: Два подхода к IaC: декларативный и императивный
Декларативный подход (что, а не как)
Вы описываете какое должно быть конечное состояние инфраструктуры, а инструмент сам решает, как в него прийти. Например: «Хочу один EC2 экземпляр типа t2.micro с установленным Nginx». Terraform это делает. Идемпотентно: если инфраструктура уже в нужном состоянии, ничего не меняется.
Императивный подход (пошаговые инструкции)
Вы описываете шаги, которые нужно выполнить, чтобы достичь состояния. Например: «Установи пакет nginx, скопируй конфиг, перезапусти сервис». Ansible это делает. Не идемпотентен по умолчанию (но можно написать идемпотентные плейбуки).
Часть 2: Четыре главных инструмента 2026
Terraform (Декларативный король для облачной инфраструктуры)
Terraform — самый популярный IaC-инструмент. Он декларативный, работает с любым облаком (AWS, GCP, Azure, Yandex Cloud, VK Cloud) и тысячами других сервисов через провайдеров.
Плюсы:
- Огромное количество провайдеров (почти для всего).
- Декларативный язык HCL (Human-Friendly Configuration Language).
- Планирование изменений (terraform plan) перед применением.
- Управление состоянием (state) — знает, что уже создано.
Минусы:
- HCL — не полноценный язык программирования (сложная логика требует терраформ-модулей или сторонних утилит).
- Управление state-файлом в команде требует бэкенда (S3 + DynamoDB, Consul).
Идеален для: Управления всей облачной инфраструктурой (сети, виртуальные машины, базы данных, Kubernetes кластеры). Стандарт де-факто.
Pulumi (IaC на настоящих языках программирования)
Pulumi позволяет писать инфраструктуру на TypeScript, Python, Go, C#, Java. В отличие от Terraform, вы можете использовать циклы, условия, функции, классы — всё, что даёт язык.
Плюсы:
- Полноценные языки программирования (не нужно учить HCL).
- Возможность писать сложную логику и использовать существующие библиотеки.
- Управление состоянием (как в Terraform).
- Хорошая интеграция с Kubernetes.
Минусы:
- Меньше провайдеров, чем у Terraform (хотя основных достаточно).
- Комьюнити меньше, чем у Terraform.
- Медленнее работает для огромных инфраструктур.
Идеален для: Команд, которые хотят использовать знакомые языки для IaC и писать сложную логику без костылей.
Ansible (Конфигурация на серверах и первые шаги в автоматизации)
Ansible — это императивный инструмент для настройки серверов (установка пакетов, копирование конфигов, запуск сервисов). Также может запускать задачи на облаках, но это не его основное назначение.
Плюсы:
- Простой YAML-синтаксис, не нужно учить новый язык.
- Не требует установки агентов на целевые сервера (работает по SSH).
- Огромное количество модулей для управления ОС и приложениями.
- Идемпотентность (плейбуки можно выполнять много раз — изменения только если нужно).
Минусы:
- Не предназначен для управления всей облачной инфраструктурой (хотя модули для AWS/GCP есть, но Terraform удобнее).
- Императивный: нужно думать о порядке операций.
- Состояние не хранит (не знает, что уже создано).
Идеален для: Настройки серверов и приложений после того, как инфраструктура создана Terraform/Pulumi. Классический use case: управление конфигурацией.
Crossplane (IaC для Kubernetes, управление облаком через K8s API)
Crossplane работает внутри Kubernetes. Вы описываете нужную вам облачную инфраструктуру (например, RDS-базу данных, S3-бакет) через CRD (Custom Resource Definitions) в Kubernetes. Crossplane сам создаёт эти ресурсы в облаке.
Плюсы:
- Единая точка управления: и Kubernetes-приложения, и облачная инфраструктура — всё через kubectl.
- Контроль через GitOps (ArgoCD/Flux может деплоить и ваши приложения, и вашу инфраструктуру в виде CRD).
- Не нужен отдельный бэкенд для состояния.
Минусы:
- Требует Kubernetes-кластера для работы.
- Меньше возможностей, чем у Terraform (хотя развивается).
- Сложность освоения (CRD и операторы).
Идеален для: Платформенных команд, которые уже используют Kubernetes и хотят управлять облаком через GitOps.
Часть 3: Сравнительная карта
Парадигма
- Terraform: декларативная.
- Pulumi: декларативная (через код).
- Ansible: императивная.
- Crossplane: декларативная (CRD).
Язык описания
- Terraform: HCL.
- Pulumi: TypeScript, Python, Go, C#, Java.
- Ansible: YAML.
- Crossplane: YAML (CRD).
Управление состоянием
- Terraform: да (state-файл).
- Pulumi: да.
- Ansible: нет.
- Crossplane: состояние хранится в Kubernetes etcd.
Облачные провайдеры
- Terraform: огромное количество.
- Pulumi: основные провайдеры.
- Ansible: ограниченная облачная поддержка.
- Crossplane: основные провайдеры.
Для чего в первую очередь необходимо
- Terraform: создание облачной инфраструктуры.
- Pulumi: создание инфраструктуры с кодом.
- Ansible: настройка серверов.
- Crossplane: GitOps-управление облаком.
Часть 4: Карта выбора (какой инструмент для какой задачи)
Вы создаёте инфраструктуру в облаке (с нуля)
- Стандартный выбор → Terraform.
- Хотите писать на знакомом языке → Pulumi.
- Уже всё в Kubernetes и любите GitOps → Crossplane.
Вы настраиваете уже созданные серверы (установка ПО, конфиги)
- Берите Ansible. Terraform для этого не предназначен.
Вы делаете и то, и другое
- Типичный пайплайн: Terraform создаёт инфраструктуру (сети, VMs, базы), а Ansible потом настраивает эти серверы.
Вам нужен контроль через GitOps
- Crossplane + ArgoCD/Flux.
Часть 5: Тренды 2026
- Terraform остаётся стандартом, особенно после выхода OpenTofu (форк Terraform на случай лицензионных изменений). Комьюнити огромное.
- Pulumi набирает обороты в командах, которые устали от HCL и хотят использовать TypeScript/Python везде.
- Ansible всё ещё жив, его используют для конфигурации, несмотря на рост Kubernetes и контейнеризации.
- Crossplane становится выбором платформенных инженеров в компаниях, полностью перешедших на Kubernetes.
- IaC как часть GitOps — конфигурация инфраструктуры хранится в Git и деплоится автоматически через операторы (Crossplane, ArgoCD, Flux).
Часть 6: Пример сценария
Вы делаете приложение на Python, которое будет работать в Kubernetes. Вам нужно:
- Создать кластер Kubernetes в Yandex Cloud.
- Настроить мониторинг (Prometheus + Grafana).
- Установить nginx-ingress для доступа.
- Задеплоить ваше приложение.
Какой подход проще?
- Terraform создаст кластер и, может, установит базовые компоненты (через провайдер helm).
- Ansible тут не подойдёт (работа с Kubernetes через него неудобна).
- Pulumi на Python позволит сделать всё в одном скрипте.
- Crossplane требует уже существующий кластер, но может управлять ресурсами внутри него.
Итог: Terraform + Helm — классика. Pulumi — альтернатива для любителей кода.
В 2026 году нет одного инструмента для всей автоматизации. Используйте:
- Terraform для создания облачной инфраструктуры.
- Ansible для настройки серверов и конфигурации.
- Pulumi если хотите писать на знакомом языке.
- Crossplane если вы уже в Kubernetes и хотите GitOps.
Начинайте с Terraform. Он прост, надёжен и закрывает 90% задач. Ansible добавьте, когда понадобится управлять конфигурацией на серверах. А Pulumi и Crossplane — когда почувствуете ограничения Terraform или захотите единый управляющий слой через Kubernetes.
А какой IaC инструмент используете вы?
Поделитесь в комментариях:
- Terraform, Pulumi, Ansible или Crossplane? Почему выбор пал на него?
- Сталкивались ли с проблемами управления state в Terraform?
- Как думаете, вытеснит ли Pulumi Terraform в ближайшие годы?
Подписывайтесь на «Навигатор по миру IT». Следующая статья — Платформы для мониторинга и логирования 2026: Prometheus+Grafana, Datadog, New Relic или ELK Stack. Что выбрать для сбора метрик и логов.