PayPalは最近、次世代のデータ移動プラットフォームを実装するために、Apache AirflowとApache Gobblinでどのように標準化されたかについて説明している。
PayPalエンジニアリングブログの最近のブログ投稿で、PayPalの技術スタッフのシニアメンバーであるJay Sen氏は、既存のデータ移動プラットフォームが複雑で管理しにくいエコシステムで、多くのツールとプラットフォームにどのように進化したかを詳しく説明している。次の図は、既存のプラットフォームツールを示している。
出典: https://medium.com/paypal-engineering/next-gen-data-movement-platform-at-paypal-100f70a7a6b
Sen氏は、このアーキテクチャがPayPalにどのように影響したかについて詳しく説明している。
さまざまなストレージエコシステムにスケールできて、カバーできるデータ移動プラットフォームが必要でした。(...)また、生成されるデータの量が増加し、消費者がますます多くのリアルタイムエクスペリエンスを要求するにつれて、下流のビジネスユースケースにサービスを提供するために、はるかに高速(つまり、スループットに関して)で効率的で信頼性の高いデータ移動プラットフォームが必要になりました。
PayPalのエンジニアは、オープンソースコンポーネントを標準化することを決定し、最終的に次のアーキテクチャを考案した。
出典: https://medium.com/paypal-engineering/next-gen-data-movement-platform-at-paypal-100f70a7a6b
Onboarding Serviceは、REST APIを公開して、プラットフォーム内のデータパイプラインを管理および調整する。このサービスは、Raptorと呼ばれるPayPalの内部Java Springフレームワークを使用して作成されている。オンボーディングAPI呼び出しにより、有向非巡回グラフ(DAG)ワークフローが作成され、実行のためにAirflowに設定がデプロイされる。DAGサービスがこのタスクを実行する。要求された設定とテンプレートに従ってAirflow DAGを作成する。PayPalエンジニアがこのAPIを構築したのは、AirflowはAirflow DAGを管理するための安定したAPIインターフェースを公開していないためである。
Apache Airflowは、Airbnbで作成されたオープンソースのワークフロー管理プラットフォームである。PayPalのエンジニアは、Airflowを使用してデータパイプラインDAGを定義、実行する。各DAGは、データソースからデータシンクへのデータの移動をエンドツーエンドで調整する。次に、PayPalのAirflow実装は、Apache Gobblinを使用して、データ自体を移動する。Apache Gobblinは、LinkedInで作成された分散データ統合フレームワークである。Gobblinは、ビッグデータ統合の共通的な側面を簡素化するもので、ストリーミングとバッチ処理の両方をサポートする。ただし、GobblinとAirflowの統合はすぐに使用できるものではなかった。Sen氏が詳細に説明している。
私たちは、Gobblinをコアデータムーバーコンポーネントとして使います。Airflowによって制御および管理されるものです。このアーキテクチャを実現するために、サービス統合を改善するためにGobblin内に新しいコンポーネントを開発しました。Airflowからジョブを開始/停止するジョブサーバーと、オンボーディングサービスによってジョブを管理するCRUD API、ジョブ管理を改善するためのMySQLを介したジョブメタデータの永続性、SignalFX統合などです。これらの新規追加により、Apache Gobblinは、私たちも貢献する予定のエンタープライズユースケースに対してより包括的なものになります(参照:Gobblin Improvement Proposal 4)。
アーキテクチャ内のすべてのコンポーネントは、InfluxDBとのメトリックストア統合により可視性を提供する。InfluxDBは、InfluxDataによって開発されたオープンソースの時系列データベースである。Goで記述されており、運用監視、アプリケーションメトリック、IoTセンサーデータ、リアルタイム分析などの時系列データを保存および取得するように最適化されている。