90%
基础设施成本降低幅度
3.6 TB - 不断增长的
数据可扩展性
概览
自 2012 年上市以来,点对点支付服务提供商 Venmo 的活动账户已超过 9000 万个。为了满足日益增长的扩展和性能需求,Venmo 计划对其架构进行现代化改造。Venmo 的传统数据存储解决方案在许可和管理方面的成本非常高昂。该公司选择使用 Amazon Web Services (AWS) 对其基础架构进行现代化改造,因为 AWS 提供了可扩展且专门构建的解决方案,能够满足其需求。Venmo 将关键数据库迁移到 Amazon DynamoDB,后者是无服务器、NoSQL、完全托管式数据库,在任何规模下均具有个位数毫秒级的性能。因此,Venmo 在保持性能的同时,优化了基础架构,提升了可扩展性,并将成本降低了 90%。

机会 | 借助 Amazon DynamoDB,Venmo 实现了数据存储架构的现代化
Venmo 最初是一个点对点汇款解决方案,如今已发展成为一个综合性金融服务平台,为小型企业和大型零售商提供移动应用程序、信用卡和借记卡产品以及商业解决方案。作为美国领先的点对点支付提供商,Venmo 每天处理的交易金额超过 10 亿美元。
每次支付互动都会生成一条记录,写入 Venmo 的数据存储中,并生成一条可供用户与朋友分享的消息。这些共享消息会显示在应用程序的主页上,用户可以根据自己的偏好进行管理。当用户打开应用程序时,他们会看到这些共享消息的源,这使得该功能成为 Venmo 备受关注的高流量特征。为了支持这一功能,Venmo 需要以毫秒级的响应时间对该端点进行数据查询。对于一个需要扩展到 56 亿条源记录和 3.6 TB 数据且持续增长的数据库来说,这并非易事。
除了高昂的许可费用和传统解决方案的维护成本外,Venmo 还面临着基础设施和扩展方面的挑战。Venmo 用于存储源记录的数据存储与其他业务要素(如融资工具和客户服务说明)共享,共享集群中共有 39 个数据收集流。一个数据流的性能问题可能会影响其他数据流,因此 Venmo 需要一种专门构建的解决方案来存储源数据。
为了满足扩展、成本和性能需求,Venmo 决定对其基础设施进行现代化改造,并选择将源数据库迁移到 Amazon DynamoDB。除了在成本和基础设施方面的优势外,该解决方案还提供了静态数据加密功能,这对 Venmo 作为金融服务企业来说至关重要。
Venmo 已经使用 AWS 运行部分基础设施,并在实施该解决方案之前逐步转向 AWS 托管服务。对 AWS 基础设施的熟悉使得从 MongoDB 迁移到 Amazon DynamoDB 的过程更加顺利。Venmo 首席工程师 Chris Ostler 表示:“AWS 对这些技术及其在生产环境中的应用提供了极大的支持。

拥有像 Amazon DynamoDB 这样无需我们手动管理扩展、能够在幕后自动扩展的基础设施解决方案,对我们来说非常有吸引力。”
Chris Ostler
Venmo 首席工程师
解决方案 | 使用 Amazon DynamoDB 将基础设施维护成本降低 90%
为了在不影响客户体验的情况下实现所需的性能,Venmo 需要设计并实施一套基于 Amazon DynamoDB 的策略。Venmo 通过分析其查询数据,识别出数据模式,并在 Amazon DynamoDB 中对数据进行了建模,以支持这些查询模式。Ostler 表示:“我们清楚数据的增长趋势。拥有像 Amazon DynamoDB 这样无需我们手动管理扩展、能够在幕后自动扩展的基础设施解决方案,对我们来说非常有吸引力。”
向 Amazon DynamoDB 的迁移分为四个步骤。首先,Venmo 首先将现有的 3.6TB 源记录数据回填到 Amazon DynamoDB 中,并将旧数据转换为新的优化模式。然后,Venmo 采用双重写入策略,将数据同时写入传统解决方案和 Amazon DynamoDB,以发现并解决数据同步问题,并使用回填脚本来弥补任何数据差距。接下来,Venmo 逐步提高读取率,将一小部分用户引导至使用 Amazon DynamoDB 的源,而非传统解决方案。然后,在 Amazon DynamoDB 上,该百分比逐渐增加到 100 %。当 Amazon DynamoDB 上的一切运行稳定后,Venmo 彻底弃用了传统解决方案。
通过这种分步迁移策略,Venmo 在迁移过程中实现了近乎零的停机时间。此外,借助 Amazon DynamoDB,Venmo 将基础设施成本降低了 90%,同时满足了数据查询性能和扩展需求。
总体而言,与 Venmo 之前的架构相比,这是一次巨大的改进,后者需要手动调整基础设施和修补实例。Venmo 工程总监兼支付、身份和数据平台主管 Thejana De Zoysa 表示:“由于 Amazon DynamoDB 是一项托管服务,维护开销大大减少,我们的工程师可以专注于解决实际的业务问题。”
成果 | 继续推进基于 Amazon DynamoDB 的架构现代化
尽管这是 Venmo 首次在特定场景中使用 Amazon DynamoDB,但该公司现已在其整个基础设施中采用 DynamoDB 来支持关键工作负载。在将 Amazon DynamoDB 应用于其他关键业务流程后,Venmo 还引入了更多 AWS 托管服务,全面实现了基础设施的现代化改造。Ostler 表示:“通过使用 Amazon DynamoDB,我们成功解决了这一场景中的紧迫问题。随着对这项服务的熟悉,我们更容易发现它也适用于其他场景。”
未来,Venmo 从架构现代化中学到的原则可在整个公司反复应用。Venmo 已经确定了 Amazon DynamoDB 可以发挥重要作用的其他领域,并计划在未来 18 个月内开展多个核心架构项目。De Zoysa 表示:“与我们的传统基础设施相比,Amazon DynamoDB 的维护成本更低,能够满足我们的数据量和扩展需求,同时还提供了即时可用的静态数据加密功能。”
Venmo 简介
Venmo 于 2012 年向公众推出,现已发展成为美国最大的点对点支付提供商,每年为 9000 万活跃用户提供服务,每天处理的交易金额超过 10 亿美元。
使用的 AWS 服务
Amazon DynamoDB
Amazon DynamoDB 是一项无服务器的 NoSQL 数据库服务,您可以通过它来开发任何规模的现代应用程序。
行动起来
无论行业无论规模,每天都有各种机构在使用 AWS 实现自身业务转型、实现企业愿景。欢迎您联系我们的专家,立即踏上您的 AWS 之旅。