Облачные вычисления
Multi-Cloud и Hybrid
В 2021 году Fastly (CDN) упал на 1 час и выключил половину интернета: Amazon, Reddit, GitHub, BBC. Это аргумент за multi-cloud. Но 70% компаний называют multi-cloud целью, но реально используют primary provider для 90% нагрузки.
- **Spotify:** GCP как primary cloud (BigQuery для аналитики, GKE для Kubernetes). Terraform управляет всей инфраструктурой. Но backend API на GKE работает только в GCP - multi-cloud на уровне tooling, не runtime.
- **Goldman Sachs:** Hybrid cloud с AWS и on-premise. Azure Arc управляет on-premise серверами через единый Azure Portal. Требование регуляторов: часть данных только в собственных датацентрах.
- **Walmart:** Конкурент Amazon -> не AWS. Использует GCP и Azure. Terraform для единого IaC. Kubernetes как portable runtime. Но полной портабельности нет из-за разных managed services.
Terraform Multi
Terraform - стандарт Infrastructure as Code для multi-cloud. Провайдеры: AWS, GCP, Azure, Cloudflare, GitHub, Datadog и 3000+ других. Multi-cloud через несколько provider блоков в одном проекте. Государственные организации и банки часто требуют multi-cloud для снижения vendor lock-in. Spotify использует Terraform для управления инфраструктурой в GCP. HashiCorp Terraform Cloud - remote state и collaborative workflows.
Terraform workspaces для разных окружений (dev/staging/prod) или регионов. Terragrunt - wrapper для DRY кода с иерархическими конфигурациями. OpenTofu (2023) - open-source fork Terraform после смены лицензии BSL. Pulumi - альтернатива с кодом на TypeScript/Python/Go вместо HCL.
Главная сложность multi-cloud Terraform проекта по сравнению с single-cloud:
Anthos
Google Anthos (2019) - платформа для управления Kubernetes кластерами в любом окружении: GKE, on-premise (VMware, Bare Metal), AWS EKS, Azure AKS. Единый control plane через Google Cloud. Anthos Config Management (ACM) обеспечивает GitOps - конфигурация всех кластеров из одного git репозитория. Anthos Service Mesh (Istio) для унифицированного service mesh.
Anthos attached clusters: регистрация любого conformant Kubernetes кластера (включая on-premise) в Google Cloud Fleet. Fleet management: единые политики RBAC, логирование, мониторинг через Cloud Monitoring. Бесплатно для GKE, платно для attached clusters ($0.025/vCPU/hour).
Что такое Anthos Config Management (ACM) и какую проблему он решает?
Azure Arc
Azure Arc - конкурент Google Anthos от Microsoft. Управление серверами, Kubernetes кластерами и базами данных в любом окружении через Azure. Azure Arc-enabled Kubernetes: GKE, EKS, on-premise кластеры управляются через Azure Portal. Azure Arc-enabled Servers: Linux/Windows серверы в любом облаке получают Azure Agent - мониторинг через Azure Monitor, патчинг через Update Manager. Используется крупными предприятиями с Microsoft Enterprise Agreement.
Azure Arc GitOps: Flux v2 интегрирован для GitOps workflow аналогично ACM. Azure Policy для Arc: политики применяются к кластерам и серверам вне Azure. Defender for Containers через Arc: security scanning для EKS/GKE кластеров. Azure Monitor Container Insights для всех Arc-enabled кластеров.
В чём основное отличие Azure Arc от Google Anthos при управлении серверами (не только Kubernetes)?
Portability
Портабельность между облаками требует абстракций над проприетарными сервисами. Kubernetes как базовый слой: один YAML деплоится на EKS, GKE, AKS. CNCF стек для portability: cert-manager (certificates), Crossplane (cloud resources), External Secrets Operator (секреты), Prometheus/Grafana (observability). Но базы данных (RDS, Cloud SQL, Cosmos DB) - основной источник lock-in.
Crossplane (CNCF) - Kubernetes operator для provisioning cloud ресурсов (RDS, S3, GCS) через Kubernetes CRD. Один PostgreSQL CRD разворачивает RDS на AWS или Cloud SQL на GCP - команда не знает облако. Abstraction over cloud APIs = настоящая портабельность.
Почему управляемые базы данных (RDS, Cloud SQL) являются основным источником vendor lock-in при multi-cloud стратегии?
Итоги
- **Terraform/Pulumi multi-cloud:** несколько provider блоков в одном проекте. Сложность в разных моделях IAM, networking, ресурсов. Terragrunt/OpenTofu для DRY конфигураций.
- **Anthos vs Azure Arc:** Anthos - Google Fleet + ACM GitOps для Kubernetes кластеров везде. Azure Arc - шире: серверы, Kubernetes, БД через Azure APIs и Azure Monitor. Выбор зависит от primary cloud и Microsoft Enterprise Agreement.
- **Portability через абстракции:** Kubernetes как portable runtime. Crossplane CRD абстрагирует cloud ресурсы. Базы данных - основной lock-in. Crossplane + External Secrets Operator + cert-manager = CNCF стек для портабельности.
Связанные темы
Multi-cloud стратегия связана с GitOps и сетевой архитектурой:
- GitOps и ArgoCD — Anthos ACM и Azure Arc GitOps используют Flux v2. ArgoCD - альтернатива для кластер-специфичного GitOps. Оба подхода: git = source of truth для всей конфигурации кластера
- Terraform State Management — Multi-cloud Terraform требует надёжного remote state. Terraform Cloud или S3 backend с DynamoDB locking. State разделяется по провайдерам для независимых жизненных циклов
- Networking и VPN — Multi-cloud connectivity: AWS Transit Gateway <-> GCP Cloud Interconnect через Equinix/Megaport. Latency между облаками 5-50ms зависит от региона и network path
Вопросы для размышления
- Какие сервисы в вашем стеке являются источником vendor lock-in, и какова реальная стоимость миграции если понадобится смена провайдера?
- В каком сценарии Anthos предпочтительнее Azure Arc, и наоборот - как primary cloud влияет на выбор?
- Как Crossplane абстракция влияет на операционную сложность: кто управляет Crossplane провайдерами и Compositions при смене cloud API?