Ответ
Работа с облачной инфраструктурой (в основном AWS, частично GCP) полностью автоматизирована через принципы IaC и управляется командой DevOps.
Ключевые принципы и инструменты:
-
Инфраструктура как код (IaC):
- Terraform — основной инструмент. Вся инфраструктура (VPC, подсети, security groups, EC2, RDS, S3, IAM) описана в модульных конфигурациях Terraform.
- Состояние (state) хранится удаленно в S3 bucket с блокировкой через DynamoDB для предотвращения конфликтов.
- Модули Terraform повторно используются между проектами (например, модуль для стандартного VPC или EKS-кластера).
-
Идентификация и управление доступом (IAM):
- Полный отказ от статических ключей доступа (Access Keys) для людей.
- Доступ для разработчиков и CI/CD-систем предоставляется через IAM Roles, ассоциированные с EC2 instances (для внутренних сервисов) или через Identity Provider (например, для аутентификации в AWS CLI через Single Sign-On).
-
Сетевая изоляция и безопасность:
- Каждое окружение (dev/staging/prod) развернуто в отдельном VPC.
- Используются private subnets для рабочих нагрузок, доступ наружу — через NAT Gateways.
- Доступ к базам данных (RDS) и внутренним сервисам строго ограничен security groups.
-
CI/CD для инфраструктуры:
- Изменения в коде инфраструктуры проходят тот же цикл, что и код приложения: Pull Request -> план
terraform plan-> ревью -> применениеterraform apply. - Для этого используем Atlantis или GitLab CI/CD с pipeline, который выполняет
terraform init,plan, иapplyпосле мержа.
- Изменения в коде инфраструктуры проходят тот же цикл, что и код приложения: Pull Request -> план
Пример CI-стадии для проверки плана Terraform в GitLab:
validate_terraform:
stage: validate
image: hashicorp/terraform:latest
script:
- terraform init -backend=false
- terraform validate
- terraform plan -out=tfplan
artifacts:
paths:
- tfplan
- Управление затратами и мониторинг:
- Все ресурсы помечаются обязательными тегами (Project, Owner, Environment, CostCenter).
- Настроены бюджетные алерты в AWS Budgets.
- Используем CloudWatch для метрик сервисов AWS и Grafana для унифицированных дашбордов вместе с метриками приложений из Prometheus.