← Infrastructure as Code
11 мин · просто · Урок 1 из 5

Infrastructure as Code: идея

Почему серверы и сети описывают кодом в git: декларативность, воспроизводимость, ревью и дрейф.

Как раньше поднимали серверы

Классический способ завести сервер — зайти по SSH и руками поставить пакеты, накидать конфигов, открыть порты. Работает ровно до того момента, пока серверов не стало пять, а потом десять. Тогда вылезают проблемы:

Infrastructure as Code (IaC) убирает ручную настройку. Вместо того чтобы кликать и набирать команды, ты описываешь нужную инфраструктуру текстом, кладёшь его в git, а инструмент приводит реальность к этому описанию.

Декларативно, а не пошагово

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

# пример декларативного описания (Terraform)
resource "yandex_compute_instance" "web" {
  name   = "web-01"
  cores  = 2
  memory = 4
}

Это тот же подход, что в Kubernetes-манифестах: описываешь, что должно быть, контроллер приводит кластер к этому. Запусти описание дважды, и результат будет одинаковый, потому что инструмент создаёт только то, чего ещё нет. Это свойство называется идемпотентностью.

Что это даёт

Дрейф конфигурации

Главный враг IaC — дрейф (drift). Это когда кто-то залез на сервер руками и поменял что-то в обход кода. Теперь реальность разошлась с описанием в git, и описание врёт.

Поэтому в зрелых командах действует правило: руками в прод не лезем, все изменения только через код. Инструменты IaC умеют показать разницу между «что в коде» и «что в реальности» (terraform plan), чтобы дрейф было видно до применения.

Где это в DevOps-стеке

IaC — это слой описания. Конкретные инструменты делят зоны:

Все они декларативны и живут в git. Дальше CI применяет их автоматически, как обычный пайплайн.

Что важно запомнить

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

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

Terraform провижинит облачные ресурсы, Ansible настраивает машины, Kubernetes описывает нагрузку внутри кластера.

В следующем уроке разберём первый ресурс в Terraform на практике.

Прошли материал до конца? Отметьте урок пройденным.