PayPal的下一代数据移动平台

使用Apache Airflow调度程序和Apache Gobblin(LinkedIn开源的数据集成框架)。

随着PayPal的用户超过3亿,我们在在线(站点)和离线(分析)存储平台上生成大量数据。这些系统之间的数据移动在启用许多PayPal业务用例中起着至关重要的作用。

PayPal托管着大量的Hadoop和其他分析系统,可容纳数百PB的数据。

PayPal是软件行业中使用几乎每种主要类型的存储系统的少数公司之一,从传统的RDBMS系统(如MySQL)到分析平台(如Hadoop)和其他专业数据存储(如Aerospike,Elasticsearch和Kafka)。

移动的数据是活跃且有价值的。静止时,数据已失效。

数据经常需要四处移动并进行处理,分析和组织以实现其价值。此外,数据生产者和数据消费者并不总是在同一组织中。生产者优化写作,而消费者则注重阅读。这就固有地带来了挑战,需要快速实现数据驱动的决策。创建时的数据很小但非常关键,但是当需要读取/分析数据时,通常会成为大数据问题。数据移动平台和团队弥合了数据世界中的这种二分法。

十年前,贝宝(PayPal)的数据移动被视为一个操作问题,系统管理员或平台服务提供商构建了工具和实用程序来促进数据进出系统。这个关于数据移动平台演进的博客很好地介绍了数据移动系统的发展方式和发展方向。

在贝宝(Paypal),由于有许多遗产和一次性的有针对性的数据移动解决方案,我们最终拥有了一个复杂且难以管理的生态系统,这增加了运营成本(RTB)。此外,支持新资源和目标的成本更高,并且阻碍了针对新业务计划的快速解决方案。我们需要一个可以扩展和覆盖各种存储生态系统的数据移动平台。下图大致描绘了我们最终得到的结果:

PayPal的下一代数据移动平台

没有针对此的产品路线图:),但这不可避免地发生在我们的发展旅程中。

另外,随着产生的数据量的增加和消费者要求越来越多的实时体验,我们需要一个更快(即吞吐量方面),高效且可靠的数据移动平台来服务于下游业务用例。因此,我们踏上了为PayPal建立下一代数据移动平台的旅程。

“如果解决方案是针对最复杂的情况构建的,则考虑为更简单的解决方案构建” –企业数据平台领导地位。

RADD-风险分析动态数据集管道是最具挑战性和业务关键型用例之一,可帮助PayPal风险平台做出有关支付交易的决策。这是在新平台上进行验证的理想人选。

RADD数据流要求:

PayPal的下一代数据移动平台

> Data flow path of the business use-case

对我们而言,在开源技术之上构建符合我们“不要重新发明轮子”并“回馈社区”的信念。因此,当我们根据需求和概念验证结果评估了许多OSS框架时,我们感到Apache Gobblin提供了最多的功能,并为我们构建下一代数据移动平台提供了灵活性和空间。

企业数据移动平台需要的组件不仅仅是读取器和写入器。下图显示了我们构建的内容以及如何交互以提供更高级别的端到端解决方案。

PayPal的下一代数据移动平台

> End-to-End Component Interaction for the Data Movement Platform

Onboarding Service是使用PayPal内部Java spring框架(我们称为Raptor)构建的一组REST API。入职服务编排数据管道。它与其他各种服务(例如架构注册表,Gobblin和Airflow API)进行交互,以创建端到端数据管道。入职API调用将导致DAG并在Airflow上部署配置以执行。可以基于入职时选择的机制来触发DAG,例如上游握手,基于cron的间隔或即席。在每次运行期间,DAG还将获取元数据以根据最新更改进行操作。还提供了一组用于管理文凭数据管道生命周期的API。这是大张旗鼓的规格。DAG服务:DAG服务可以根据请求的配置和模板创建Airflow DAG。由于Airflow没有提供稳定的API接口来管理Airflow DAG,因此我们将自身构建为该服务的一部分。它构建的DAG主要负责合并所有特定于应用程序的逻辑:每个数据集允许的偏差,移动类型(临时或回滚)等。部署DAG后,Airflow会执行。Apache Airflow:Airflow是一个著名的工作流管理和执行器平台。我们使用Airflow定义和执行数据管道DAG。气流为端到端移动提供了运行时编排层。这还提供了嵌入数据处理和握手功能的能力,并简化了数据管道的运营管理。这是其中一个数据集的DAG外观。Apache Gobblin是一个高度可扩展的分布式数据集成框架,它简化了数据移动和集成的常见方面,并且可以支持流传输和批处理移动。我们将其用作由Airflow控制和管理的核心数据移动器组件。为了实现此架构,我们在Gobblin内开发了新组件以实现更好的服务集成-作业服务器以通过Airflow和CRUD API启动/停止作业,以通过入***管理作业,MySQL上的作业元数据持久性以实现更好的作业管理,SignalFX集成等这些新增加的功能使Apache Gobblin在企业用例方面更具通用性,我们也计划对此做出贡献(参考:Gobblin改进提案4)。

安全性是PayPal的重中之重,所有平台组件都通过HTTP(通过TLS 1.x)进行通信,并保持静态数据加密。关于跨安全区域的安全和加密数据移动的博客,讨论了我们如何实现它。

总的来说,这里有许多组成端到端解决方案的组件,如果我们没有定义明确的角色,职责和设计原则,事情很快就会变得复杂。我们遵循了许多架构原则,但以下一组准则对我们真正有效。这些使开发人员可以很清楚地实现实现,以加快交付速度并最大程度地减少复杂性:

每个组件都充当微服务,可通过REST API进行交互,并充当服务提供者。每个组件在运行时都以最新配置运行。每个组件的职责都有明确的界限。气流不会做出任何有关数据移动的决定。哥布林对为什么移动数据没有任何了解。它只是在Airflow询问时执行。元数据是集中的,更改对所有组件都是直接可见的。所有组件都通过度量标准存储集成(InfluxDB)提供可见性。所有组件都应支持滚动部署,以在部署更改时导致零停机时间。

#OnePlatform4PYPL的旅程已经开始,我们将继续巩固并为开源平台做出贡献。下一步是支持PayPal的云之旅……令人兴奋!

全部评论
感谢大佬分享!!!
点赞 回复 分享
发布于 2022-01-18 20:55

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务