Phone icon Связаться с нами

DevOps и облака

Что такое Infrastructure as Code (IaC)?

Infrastructure as Code (IaC, инфраструктура как код) — это подход, при котором серверы, сети, базы данных и права доступа описывают в файлах конфигурации, а потом создают автоматически по этому описанию, вместо ручной настройки через веб-интерфейс облака.

Инфраструктура, настроенная вручную, со временем расходится: тестовая среда отличается от рабочей, а точный порядок действий помнит только один человек. Описание в коде убирает эту неопределённость — среду можно создать заново в любой момент.

Поскольку конфигурация — это файлы, к ней применяют обычные практики разработки: хранение в Git, историю изменений, проверку коллегой перед применением, автоматические проверки в CI/CD. Основные инструменты — Terraform, Ansible, Pulumi и решения от облачных провайдеров.

Где применяется

IaC используют везде, где инфраструктура сложнее одного сервера. Описания хранятся в том же репозитории, что и код приложения, проходят проверку и попадают в облако через конвейер сборки — так же, как обычные изменения в программе.

Польза особенно заметна в трёх ситуациях: когда нужно создать идентичный тестовый стенд, восстановить всё после аварии или понять, кто и зачем изменил настройки месяц назад. Если всё настраивали вручную через веб-консоль, быстрых ответов на эти вопросы нет.

Пример

Команде нужен отдельный стенд для нагрузочного тестирования — точная копия рабочей среды. Когда инфраструктура описана кодом, это одна команда и пятнадцать минут ожидания. После тестов стенд полностью удаляют, и платить за него больше не нужно.

Частые вопросы

Чем IaC лучше настройки через веб-консоль облака?

Повторяемостью и историей. Описание хранится в системе контроля версий: видно, кто и что менял, можно вернуться к прошлому состоянию и создать такую же среду заново. Ручные действия нигде не записываются, и через полгода никто не помнит, почему настроено именно так.

Чем отличаются декларативный и императивный подходы?

Декларативный описывает, каким должен быть результат, а инструмент сам определяет шаги — так работают Terraform и Kubernetes. Императивный задаёт последовательность действий, как обычный скрипт. Декларативный надёжнее: повторный запуск не ломает уже созданное.

Какие инструменты используют для IaC?

Terraform и OpenTofu — для создания облачных ресурсов, Ansible — для настройки серверов, Pulumi — для описания инфраструктуры обычным языком программирования, CloudFormation — в экосистеме AWS. Часто их сочетают: один создаёт ресурсы, другой их настраивает.

Где хранить пароли и ключи при таком подходе?

Только не в файлах конфигурации: они попадают в репозиторий и навсегда остаются в истории. Секреты хранят в отдельных хранилищах — Vault, менеджерах секретов облака, защищённых переменных конвейера — и подставляют во время применения.

Обучение DevOps в OWU

Освойте профессию DevOps-инженера на практических курсах с менторами и реальными проектами.

Выбрать курс