Когда резервирование не спасает: отказ железной дороги и зависимость от Control Plane

Когда резервирование не спасает: отказ железной дороги и зависимость от Control Plane

Май 20, 2026 cloud-infrastructure resilience outage-analysis control-plane multi-cloud-architecture dns-routing incident-response backend-engineering

Мультиклауд — не всегда панацея

Многие считают, что разместить сервисы в нескольких облаках и на собственном железе — это уже защита от любых сбоев. В теории всё выглядит логично. На практике же даже продуманная мультиклауд-архитектура может подвести в неожиданный момент.

Именно это произошло с Railway. Их клиенты работали на AWS, Google Cloud и собственном железе Railway Metal. Казалось бы, отказоустойчивость на высшем уровне. Но вечером 19 мая 2026 года Google Cloud автоматически заблокировал их аккаунт. Без предупреждения. Без реальной аварии в инфраструктуре. И это привело к восьмичасовому даунтайму.

Где скрывается уязвимость

Вся беда была не в самих приложениях. Они продолжали работать. Проблема возникла в control plane — системе, которая отвечает за маршрутизацию трафика.

Каждый запрос сначала попадал на edge-прокси. Эти прокси не знали напрямую, где находится приложение. Они обращались к control plane за информацией о расположении workload'ов. А control plane целиком находился на Google Cloud.

Когда аккаунт заблокировали, control plane стал недоступен. Прокси какое-то время использовали кеш, который обновлялся каждые 35 минут. После его истечения они уже не понимали, куда направлять трафик. И даже если приложение было живым и работало на AWS или Railway Metal, пользователи получали 404.

Как один сбой вызывает цепную реакцию

После того как трафик перестал доходить до приложений, начался поток ошибочных запросов и повторов. Это спровоцировало rate limiting на GitHub со стороны OAuth-точек Railway. GitHub просто защищал себя от подозрительной активности. 而结果: пользователи не могли логиниться и не могли запускать deployments.

Почему распределённость workloads не гарантирует устойчивость

Railway правильно распределил workloads по нескольким провайдером. 但这 nicht ausreichend. Control plane остался в одном месте. Один автоматический блокировочный механизм Google Cloud способен был отключить всю маршрутизацию.

这 is a 混合 of 分布. 分布 workloads и 分布 control plane — это разные задачи. 分布 workloads уже достигнуто. 分布 control plane требует дополнительных ресурсов и сложной архитектуры.

Что можно сделать практически

  • Разделяйте control plane и data plane. Compute можно распределить, но если маршрутизация и service discovery остаются в одном месте, то истинной распределённости не будет.
  • Кеширование — это только отсрочка. 35 минут отсровки — это besser, но не решение. Нужно архитектурное подход,而不是 فقط тaktisch.
  • Чётко понимать, как работают автоматизированные системы провайдеров. Работа с emergency support и escalation channels может предотвратить или minimise даунтайм.
  • Восстановление после сбоя сложнее, чем кажется. Цепные реакции и rate limiting делают recovery более сложным и медным.

Как Railway поступил после инцидента

Компания публично заявила, что уберёт Google Cloud из hot path для data plane и распределит control plane по AWS и Railway Metal. 这 is a 种 от expensive и disruptive work, что actually fixes these problems.

Лекция для всех архитекторов

Мультиклауд не является просто разме<|eos|>

Read in other languages:

BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN