Uber 履约系统零停机迁移:如何实现全球实时交易的无缝切换?

2024年8月25日 – 全球领先的网约车平台 Uber 拥有全球最复杂的实时履约系统之一,每天处理着数百万次交易,确保乘客、司机和送货员之间的无缝衔接。为了满足不断增长的业务需求,Uber 最近将该系统从本地架构迁移至混合云架构,并成功实现了零停机时间迁移,将对用户的影响降至最低。

Uber 履约系统面临着巨大的挑战,需要实时性、一致性和高可用性。用户不断地与应用程序互动,发起、取消或修改行程,餐厅更新订单状态,快递员在城市中穿梭,确保包裹及时送达。为了应对这些挑战,Uber 的工程师团队设计了一套精细的迁移策略,确保系统在迁移过程中保持稳定运行。

旧系统架构: Uber 的旧系统由多个服务构成,这些服务在内存中维护用户和行程实体的实时信息。为了确保系统跨数据中心进行数据复制,还有一些辅助服务负责处理锁定机制、搜索功能和数据存储。该系统在 Uber的早期发展阶段就进行了扩展,但一些架构决策可能不再适应 Uber 不断增长的业务需求。例如,系统被设计为优先考虑可用性而非一致性,所有数据都存储在内存中,存在垂直扩展和节点数量的限制。

新系统架构: 新系统减少了服务数量,将原本处理“需求”和“供应”等实体的服务合并到一个由云数据存储提供支持的单体应用程序中。所有的事务管理责任都被转移到了数据存储层。为了确保迁移过程的顺利进行,Uber 采取了“向后兼容层”的策略,保持现有 API 和事件契约不变。这使得系统可以在不中断现有消费者使用旧接口的情况下进行重新架构。

迁移策略: 为了确保流量能够平稳地从现有系统转移到新系统,Uber 在迁移的每个阶段都采用了多种策略:

  • 发布之前: 通过影子验证确保新旧系统间的 API 契约一致性,建立信心,保证新系统与现有系统的一致性。
  • 发布期间: 采用分阶段发布策略,逐步将流量迁移到新系统,并监控系统性能和用户体验。
  • 发布之后: 持续监控系统性能,并根据需要进行调整,确保新系统能够稳定运行。

成功案例: Uber 的零停机时间迁移成功案例证明了其技术实力和对用户体验的重视。通过精细的迁移策略和技术创新,Uber 实现了系统架构的升级,并为用户提供了无缝的服务体验。

未来展望: 随着技术的不断发展,Uber 将继续探索新的技术和解决方案,进一步优化其履约系统,为用户提供更加便捷、高效的服务。

【来源】https://mp.weixin.qq.com/s/SCoTaCooJ8iNrmNQI67VHg

Views: 1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注