Налаштування Failover між хмарними провайдерами
Failover між хмарними провайдерами — екстремальний варіант захисту від vendor outage. Історично крупні хмарні провайдери падали: AWS us-east-1 (багатократно), GCP (2019, 2020), Cloudflare (2019). Якщо SLA потребує 99.99%+, одного провайдера недостатньо.
Передумови для cross-cloud failover
Без виконання цих умов cross-cloud failover не має сенсу:
- Cloud-agnostic архітектура — програма не використовує proprietary API конкретного провайдера
- Контейнеризація — Kubernetes забезпечує однорідне середовище виконання
- Синхронізація даних — механізм репліцирування даних між провайдерами
- Infrastructure as Code — інфраструктура обох провайдерів описана в Terraform
DNS як точка переключення
Cloudflare — оптимальний вибір для управління failover між провайдерами: працює з обома, не належить нікому.
import CloudFlare
cf = CloudFlare.CloudFlare(token=CF_TOKEN)
def switch_to_provider(zone_id: str, record_name: str, new_ip: str):
records = cf.zones.dns_records.get(zone_id, params={'name': record_name})
record_id = records[0]['id']
cf.zones.dns_records.put(
zone_id,
record_id,
data={
'type': 'A',
'name': record_name,
'content': new_ip,
'ttl': 60,
'proxied': True
}
)
Cloudflare Load Balancing з health checks автоматизує переключення без ручного втручання.
Тривалість
Попередній аудит — 2-3 дні Terraform для другого провайдера — 5-10 днів Налаштування репліцирування даних — 5-10 днів Автоматизація failover — 3-5 днів Тестування — 3-5 днів







