![]()
时机确实很微妙。就在 Coinbase CEO Brian Armstrong 谈到非技术团队也能“交付生产代码”几天后,Coinbase 就发生宕机,交易中断约 5 个小时。
![]()
不过,这次导致 Coinbase 数小时宕机的原因,并不是所谓“氛围编程”写出的底层代码。问题最初出现在 AWS 数据中心,但真正的原因,是一连串问题相互叠加。
Coinbase 平台负责人 Rob Witoff 表示,其中一个关键问题在于,Coinbase 部署的 Amazon Managed Streaming for Apache Kafka,也就是 AWS MSK,存在一个 bug,导致平台无法顺利完成故障切换。
结果是,单个可用区承担了 Coinbase 大部分核心负载。
单个可用区承担了 Coinbase 的大部分繁重任务……
![]()
问题起点是 AWS 的一次“热事件”,但原本设计好的快速恢复流程,最终演变成了一场混乱。
Witoff 没有甩锅。他说:“我们与亚马逊密切合作进行恢复,对方一直是出色的合作伙伴。”
但问题随之而来,这样一家大型加密货币交易所,是否真的具备多可用区,甚至多区域的故障切换能力?
相比之下,Monzo 在云服务严重中断时,可以从 AWS 切换到 GCP 上的精简版银行服务;金融科技公司 Dojo 的授权系统,则同时部署在谷歌云两个区域,即伦敦和法兰克福,以及 AWS 伦敦区域,三个区域会同时处理流量。
以下是 CEO Brian Armstrong 在 5 月 8 日的表态:
“我们设计的服务在任何一个 AWS 可用区(AZ)发生故障时都具有冗余性,昨晚我们的大部分系统都运行正常,但并非全部。我们的集中式交易所没有正常运行。交易所拥有独特的架构,针对延迟和客户端同地部署作了优化。虽然可以使交易所抵御可用区故障,但这可能会带来不必要的延迟……鉴于此次事件,我们将重新评估这些权衡或取舍,以确保为您提供最佳的交易场所。”
这番话听起来,更像是在承认,集中式交易所这部分,并没有真正做到抵御单个可用区故障。
Coinbase 表示,为了降低延迟,其撮合引擎,也就是撮合买卖双方的核心组件,被部署在单个可用区内。
但 Witoff 仍坚持认为:“我们拥有合适的复制因子(RF)来应对区域中断。此次硬件故障触发了托管集群中的一个漏洞,导致集群宕机,我们不得不与供应商合作进行修复。”
他也在 X 上承认:“在此次事件中,原本旨在隔离开来的主可用区故障,并没有被成功隔离。”
![]()
US-EAST-1 遭遇高温之夜
据 Coinbase 文档显示,其美国现货交易所基础设施托管在 AWS US-EAST-1,核心组件包括 FIX 订单网关、订单录入网关、交易引擎、WebSocket / FIX 市场数据,均位于 use1-az4 可用区。
上周 AWS 发生“热事件”时,use1-az4 是唯一受到影响的可用区。
由于工程师需要处理散热问题,整批机架停止运行,导致包括 MSK 在内的多项服务中断。
按理说,这不应该对 Coinbase 造成如此大的影响。
Coinbase 表示,公司部署了常见的分布式热备用方案,近期也做过相关演练。
去年 10 月,US-EAST-1 曾导致部分 AWS 服务中断约 3 小时,Coinbase 也是当时受影响最严重的公司之一。后来,这些服务被证实存在单点故障。
Coinbase 在那次故障后表示:“为了在未来做好更好的防备,我们在探索种种方案,包括审查我们的区域部署策略,以实施短期和长期解决方案,以降低此类故障的影响。”
当单个可用区故障并非全部原因时
Coinbase 多年来一直基于 AWS 基础设施构建系统,并使用 MSK 作为中央事件总线,处理来自大量用户、应用软件、数据库和加密货币数据源的事件。
Coinbase 和 AWS 此前曾介绍,MSK 如何支撑这家交易所实现超低延迟的服务间通信、ETL 管道和数据库变更数据捕获,同时将代理维护和恢复交由 AWS 负责。
在架构层面,Coinbase 曾将其描述为一套建立在 MSK 之上的“通用”Kafka 基础设施,具备多个代理和跨可用区可靠性。这样一来,团队可以更轻松地配置流式管道,并降低运维成本。
最终结果,是一个更标准化的流式传输层,支撑大规模实时数据摄取和分析。许多管道的端到端延迟低于 10 毫秒,而早期系统的延迟约为 200 毫秒。
长期以来,Coinbase 对这套架构,以及对 AWS 的依赖都相当满意。就在此次故障发生前不久,Coinbase 和 AWS 还宣布在 Amazon Bedrock AgentCore Payments 上展开合作。这是一个专为智能体打造的支付工具。
AWS 在谈到双方合作时表示:“Coinbase 多年来一直在 AWS 上进行创新,为数百万客户提供加密货币交易和开发者平台。”
Kafka 未能阻止故障
Coinbase 对 Kafka 并不陌生。它每天处理“数 TB”数据,也拥有相应的弹性保障设计。
Witoff 表示,Coinbase 甚至拥有“堪比美国宇航局的质量保证标准”。
但当一系列连锁故障导致交易所撮合引擎和分布式 Kafka 集群瘫痪时,Coinbase 仍然不得不依赖人工修复。
目前,外界并不清楚具体发生了什么。
Witoff 表示,即便系统在多个区域进行复制,也无法避免这次故障。准确说,这是“托管集群中的一个漏洞”,他后来进一步确认,这是一个极端情况。
他在 X 上告诉用户,故障沿着两条路径扩散:
1)交易所撮合引擎底层的多个硬件部件发生故障,需要恢复和故障切换;
2)负责 Coinbase 系统间消息传递的分布式 Kafka 集群无法维持可用状态,还需要将分区故障切换到拥有数 TiB 数据的新硬件代理节点上。
这个 Kafka / MSK 漏洞的具体性质,目前仍不清楚。
Coinbase 承诺,后续会发布更详细的事后分析报告。
Coinbase 仍在调查这起事故,但态度看起来相对克制。
故障发生后的第二天,Coinbase CEO Brian Armstrong 转发了一条略带讽刺意味的推文:“永远不要抱怨。没人喜欢爱抱怨的人。他们只会消耗周围所有人的精力。”
![]()
目前市值 515 亿美元(3507 亿元人民币):
![]()
云头条声明:如以上内容有误或侵犯到你公司、机构、单位或个人权益,请联系我们说明理由,我们会配合,无条件删除处理。
![]()
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.