Перейти к основному содержимому

Yandex Cloud

Вся инфраструктура размещена в Yandex Cloud, регион ru-central1 (Москва), зоны a, b, d.

Используемые сервисы

Сервис YCНазначение
Managed Kubernetes5 K8s кластеров
Managed PostgreSQLБД для всех сервисов
Managed RedisКэш и очереди
Object StorageS3-совместимое хранилище (фото, логи, CI кэш)
Container RegistryDocker образы сервисов
KMSШифрование секретов
Cloud DNSУправление DNS-зонами
VPCВиртуальные сети
ALB / NLBLoad balancers
Compute (VM)FTP серверы (autoscale группы), HAProxy

Управление через Terraform + Terragrunt

Все ресурсы описаны кодом в репозитории infrastructure/terragrant.

infrastructure/terragrant/
├── terraform/modules/ # Переиспользуемые модули
│ ├── kubernetes/ # Managed K8s
│ ├── postgresql/ # Managed PostgreSQL
│ ├── redis/ # Managed Redis
│ ├── object-storage/ # Object Storage
│ ├── s3-bucket/ # S3 buckets
│ ├── alb/ # Application Load Balancer
│ ├── nlb/ # Network Load Balancer
│ ├── cloud-dns/ # DNS зоны
│ ├── kms/ # KMS ключи
│ ├── security-group/ # Security groups
│ ├── service-account/ # Service accounts
│ ├── vault/ # HashiCorp Vault
│ └── compute-instance/ # Виртуальные машины
└── terragrunt/
├── media/
│ ├── base/ # Базовые ресурсы (VPC, DNS, KMS, SA, SG)
│ ├── dev/ # Dev окружение
│ │ ├── compute/ # K8s кластер
│ │ ├── data/ # PostgreSQL, Redis, S3
│ │ └── security/ # Vault
│ └── prod/ # Prod окружение
│ ├── compute/ # K8s кластер
│ ├── data/ # PostgreSQL, Redis, S3
│ └── security/ # Vault
├── scount/
│ ├── base/
│ ├── dev/
│ └── prod/
└── prod-witisi/ # Witisi VM ресурсы (HAProxy, FTP autoscale)

Vault

HashiCorp Vault используется для управления секретами в prod-окружениях (media prod и scount prod). Vault развёрнут внутри кластера, данные хранятся в PostgreSQL (база vault).

infrastructure/terragrant/terragrunt/media/prod/security/vault/
infrastructure/terragrant/terragrunt/scount/prod/security/vault/

FTP и HAProxy (Witisi prod)

Для witisi-prod развёрнута группа FTP-серверов (autoscale, до 10 нод) с HAProxy для балансировки:

  • HAProxy VM: haproxy-ftp-service-prod-witisi
  • FTP autoscale group: autoscale-ftp-service-prod-witisi

Управляется через Terragrunt модуль yandex в prod-witisi/.

Применение изменений

Изменения в инфраструктуре применяются через GitLab CI/CD — вручную terragrunt apply не запускается:

Создать ветку → внести изменения → открыть MR

CI запускает terragrunt plan — результат виден в пайплайне MR

Проверить план, смёрджить MR

CI запускает terragrunt apply автоматически