Ответ
Описание деплоя — это совместная работа, зафиксированная в коде. Разработчики описывают что разворачивать (образ приложения, переменные среды), а DevOps/Platform-инженеры описывают как и куда (инфраструктуру, политики безопасности). Всё хранится в Git.
Конкретные артефакты и кто их пишет:
-
Манифесты Kubernetes (k8s/) — пишет разработчик, владелец сервиса.
# k8s/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: api-service spec: replicas: 3 selector: matchLabels: app: api template: spec: containers: - name: api image: my-registry/api:latest # Образ, который собрал CI env: - name: DB_URL valueFrom: secretKeyRef: name: app-secrets key: database-url -
Инфраструктура как код (Terraform в
infra/) — пишет Platform-команда.# infra/main.tf resource "aws_eks_cluster" "main" { name = "production-cluster" role_arn = aws_iam_role.cluster.arn vpc_config { subnet_ids = var.private_subnet_ids } } -
Определение пайплайна CI/CD (
.gitlab-ci.yml,.github/workflows/) — шаблон создаёт Platform-команда, конкретные шаги (например,npm run build) добавляет разработчик. -
Конфигурация Helm Chart (
Chart.yaml,values.yaml) — часто совместное творчество. Platform-команда создаёт базовый чарт с настройками безопасности (SecurityContext, ресурсные лимиты), а разработчик добавляет вvalues.yamlспецифичные для сервиса параметры.
Ключевой принцип: Разработчик может полностью описать деплой своего сервиса в репозитории приложения, полагаясь на стандартизированные, предоставленные платформой, модули инфраструктуры и шаблоны пайплайнов.