Что такое Infrastructure as Code
Управление инфраструктурой через код
Infrastructure as Code (IaC) — подход к управлению и развёртыванию инфраструктуры с помощью машиночитаемых файлов конфигурации вместо ручной настройки.
Преимущества
- Версионирование — инфраструктура в Git, история изменений
- Воспроизводимость — одинаковое окружение везде
- Автоматизация — быстрое развёртывание без ручных действий
- Документация — код сам является документацией
Инструменты IaC
- Terraform — облачно-агностичный, декларативный
- AWS CloudFormation — для AWS
- Pulumi — IaC на обычных языках (Python, TypeScript)
- Ansible — конфигурационное управление
Декларативный vs Императивный
- Декларативный (Terraform): описываем желаемое состояние
- Императивный (скрипты): описываем шаги достижения
Практики
- Хранение состояния (state) в удалённом хранилище
- Модули для переиспользования кода
- CI/CD для автоматического применения
- Политики и проверки (OPA, Sentinel)
Пример Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}