开发者生态
morning
事件报告:铁路被 Google Cloud 封锁(已解决)
2026-05-20
1 阅读
aarondf
Chandrika Khanduri 和 Cody De Arkland 2026 年 5 月 20 日 ? 本报告反映了我们在发布时所了解的信息,并且可能会在 Google Cloud 内部审核之前进行更新。由于 Google Cloud 错误地将我们的帐户置于暂停状态,Railway 经历了整个平台的服务中断。这导致所有 GCP 托管基础设施的服务暂时中断。该基础设施支持我们的仪表板、API 和网络基础设施的各个部分。由于缓存的网络路由过期,中断范围超出了 GCP 范围,影响了所有铁路工作负载。下面,我们将详细介绍所发生的情况、我们的应对方式以及我们正在采取哪些措施来防止将来再次发生类似事件。影响 2026 年 5 月 19 日 22:20 UTC 至 5 月 20 日 06:14 UTC 左右(约 8 小时),在 Google Cloud 暂停我们生产帐户的服务后,Railway 经历了全平台中断。这使得我们的 API、控制平面和数据库以及托管在 Google Cloud 上的计算基础设施脱机。用户立即在仪表板和 API 上遇到 503 错误,包括“没有健康的上游”和“无条件丢弃过载”消息,并且无法登录。Google Cloud 计算上托管的所有工作负载都已离线。虽然我们自己的 Railway Metal 和 AWS 突发云环境中的工作负载仍然存在,但 Railway 的边缘代理依赖 Google Cloud 托管的控制平面 API 来填充其路由表,从而导致中断蔓延到 Google Cloud 之外。随着路由缓存过期,这些其他工作负载变得无法访问,从而导致返回 404 错误,因为网络控制平面无法再解析到活动实例的路由。在影响高峰时,所有地区的所有铁路工作负载都变得无法访问。当我们恢复 Google Cloud 环境时,在我们恢复各个服务的同时,构建和部署在整个平台范围内被阻止。一旦我们的整个基础设施恢复,大量积压的排队部署就会逐渐耗尽,以避免平台不堪重负。与此同时,GitHub 开始对 Railway 的 OAuth 和 Webhook 集成进行速率限制,暂时阻止登录和构建。由于我们的缓存因 Google Cloud 中断而被清除,这些调用的数量有所增加。作为副作用,服务条款接受记录也被重置,提示用户在下次访问仪表板时重新接受。我们对允许单个上游提供商操作级联为平台范围内的中断的架构决策承担全部责任,并在下面详细说明发生的情况、我们如何恢复以及我们正在做出的更改以防止这种情况再次发生。事件时间表 UTC 时间 5 月 19 日 22:10 - 我们的自动监控检测到 API 运行状况检查失败,并呼叫了我们的待命人员,他们开始调查该问题。 UTC 时间 5 月 19 日 22:11 - 仪表板返回 503 错误。用户无法登录。 UTC 时间 5 月 19 日 22:19 - 已确定根本原因:Google Cloud Platform 已暂停 Railway 的生产帐户。 UTC 时间 5 月 19 日 22:22 - 向 Google Cloud 提交 P0 票证。铁路公司的 GCP 客户经理直接参与。 UTC 时间 5 月 19 日 22:29 - 事件已宣布。 UTC 时间 5 月 19 日 22:29 - GCP 帐户访问已恢复。所有计算实例仍然停止,并且永久磁盘无法访问。 UTC 时间 5 月 19 日 22:35 - 缓存的网络路由开始过期;由于网络无法再解析路线,Railway Metal 和 AWS 上的工作负载开始返回 404 错误。 UTC 时间 5 月 19 日 23:09 - 第一个永久性磁盘恢复在线。 UTC 时间 5 月 19 日 23:54 - 所有永久性磁盘均恢复至就绪状态。网络仍然断线。 UTC 时间 5 月 20 日 00:39 - 磁盘已确认准备就绪。 Google Cloud 网络恢复时恢复受阻。 UTC 时间 5 月 20 日 01:30 - 计算实例开始恢复。 UTC 时间 5 月 20 日 01:38 - 边缘流量再次得到服务。网络恢复。 UTC 时间 5 月 20 日 01:57 - 编排和构建基础设施已恢复。部署暂时暂停,以防止系统因排队工作试图同时执行而不堪重负。 UTC 时间 5 月 20 日 02:04 - 计算主机逐渐恢复在线状态。 UTC 时间 5 月 20 日 02:47 - GitHub 开始对 Railway 的 OAuth 和 webhook 集成进行速率限制;部分用户无法登录,构建被阻止。 UTC 时间 5 月 20 日 02:55 - 仪表板再次可访问。 UTC 时间 5 月 20 日 03:59 - 部署再次开始在所有层进行处理。 UTC 时间 5 月 20 日 04:00 - API、仪表板和 OAuth 端点已确认可运行。剩余工作负载继续恢复。 UTC 时间 5 月 20 日 06:14 - 事件已转至监控。 UTC 时间 5 月 20 日 07:58 - 事件已解决。发生了什么?世界标准时间 5 月 19 日 22:20,作为自动操作的一部分,Google Cloud 错误地将 Railway 的生产帐户置于暂停状态。此操作扩展到 Google Cloud 内的许多帐户。由于这是一项全平台行动,因此在限制之前没有主动接触个人客户。这种暂停状态禁用了我们的 GCP 相关基础设施,该基础设施支持铁路仪表板、API 和 p