IaC (Infrastructure as Code, инфраструктура как код) – подход, при котором вычислительные ресурсы, сети, хранилища и их настройки описываются в машиночитаемых файлах и создаются автоматически, а не настраиваются вручную через консоли. Описание хранится в системе контроля версий и проходит ревью, как программный код.
Подходы
- Декларативный: описывается желаемое состояние (Terraform, OpenTofu, манифесты Kubernetes).
- Императивный: описываются шаги (скрипты, часть инструментов управления конфигурацией).
- Управление конфигурацией серверов: Ansible, Puppet, Chef, SaltStack.
Преимущества
- Повторяемость: одинаковые среды разработки, тестирования и эксплуатации.
- Скорость развёртывания и восстановления.
- История изменений и аудит.
- Меньше ошибок ручной настройки.
Что важно
- Хранение состояния и секретов.
- Тестирование и ревью изменений.
- Контроль дрейфа – расхождений между описанием и реальностью.