Terraform
Terraform — это инструмент для управления инфраструктурой через код (Infrastructure as Code). Вместо того чтобы кликать по консоли AWS и вручную настраивать серверы, базы данных и сети, вы описываете всё это в текстовых файлах. Terraform читает эти файлы и создаёт инфраструктуру автоматически.
Зачем это нужно? Представьте: у вас 3 окружения — dev, staging, production. Без Terraform вы настраиваете каждое вручную, и через полгода они неизбежно расходятся: «на проде работает, а на стейджинге — нет». С Terraform все окружения создаются из одного и того же кода. Одинаковые, воспроизводимые, версионируемые.
Terraform работает с любым облаком: AWS, Google Cloud, Azure, Yandex Cloud, DigitalOcean. Он создаёт серверы, базы данных, DNS-записи, балансировщики, VPN — всё, что предоставляет облачный провайдер. При этом Terraform отслеживает текущее состояние и применяет только разницу: если нужно добавить один сервер — он добавит один, не трогая остальные.
Terraform хранит состояние инфраструктуры в state-файле. Это критичный файл — он позволяет Terraform понимать, что уже создано, а что нужно создать или удалить. Команды хранят state в облаке (S3, GCS) для совместной работы.
Ключевые преимущества
- Инфраструктура описывается кодом — версионируется в Git
- Поддержка всех облаков: AWS, GCP, Azure, Yandex Cloud
- Воспроизводимые окружения: dev = staging = production
- Применяет только разницу — не пересоздаёт всё заново
- State-файл отслеживает текущее состояние инфраструктуры
Примеры
Создание production-окружения для SaaS: 3 сервера, PostgreSQL RDS, Redis, S3-бакет, CloudFront CDN — всё одной командой terraform apply. Клонирование окружения для нового клиента за 10 минут вместо 2 дней ручной настройки. Аудит инфраструктуры: вся конфигурация в Git, видно кто и когда что менял.
Когда это нужно
Terraform нужен, когда: инфраструктура в облаке (AWS, GCP, YC), больше 2-3 серверов, несколько окружений (dev/staging/prod), команда из нескольких DevOps-инженеров, нужно быстро воспроизводить инфраструктуру для новых клиентов или проектов.
Связанные термины
Частые вопросы
Terraform vs Ansible — в чём разница?
Terraform создаёт инфраструктуру: серверы, сети, базы данных. Ansible настраивает то, что уже создано: устанавливает пакеты, копирует конфиги, запускает сервисы. Они не конкурируют, а дополняют друг друга: Terraform создал сервер → Ansible настроил его.
Можно ли использовать Terraform для небольших проектов?
Можно, но для одного сервера с Docker — overkill. Terraform начинает окупаться при 3+ серверах или когда нужно несколько окружений. Для маленьких проектов проще Docker Compose + ручная настройка VPS.
Где это применяется
DevOps и облачная инфраструктура
Строим инфраструктуру, на которой продукт не падает: CI/CD и деплой в одну кнопку, мониторинг с алертами раньше клиента, Kubernetes только там, где он оправдан, миграция в облако без остановки прода. Базовый контур — от 200 000 ₽ за 2–3 недели, аудит инфраструктуры и демо-пайплайн бесплатно за 3–5 дней. В боевой контур не заходим до договора.
Как мы это делаемПродолжите изучение

