Dataflow を使用した本番環境対応データ パイプラインの構築: 概要

このドキュメントは、Dataflow を使用してデータ パイプラインを本番環境に対応させる方法を説明するシリーズの一部です。このシリーズは、Dataflow パイプラインの開発、デプロイ、モニタリングを担当する技術者を対象としています。このシリーズのドキュメントでは、Dataflow と Apache Beam について実践的な知識があることを前提としています。

このシリーズでは、「本番環境対応」という用語は、ビジネスに不可欠な機能を提供できることを意味します。このシリーズでは、パイプラインの信頼性と保守性、パイプラインのパフォーマンス最適化、デベロッパーの生産性など、さまざまな一般的な考慮事項に関するベスト プラクティスを扱います。

一連のドキュメントには、次のパートがあります。

はじめに

コンピューティングにおけるデータ パイプラインとは、一連の接続された処理ステップを使用してデータを処理するタイプのアプリケーションです。データ パイプラインは、システム間のデータ移行、抽出、変換、読み込み(ETL)、データ拡充、リアルタイムのデータ分析など、さまざまなユースケースに適用できます。通常、データ パイプラインはバッチプロセスまたはストリーミング プロセスとして運用されます。前者の場合、必要に応じて実行され、データを処理します。後者の場合は継続的に実行され、データがパイプラインで使用可能になると、その都度データを処理します。

Dataflow は、Apache Beam SDK を使用して開発されたバッチおよびストリーミングのデータ処理パイプラインを実行するためのマネージド サービスです。Dataflow は、多くのインフラストラクチャ タスクと運用タスクを除去または簡略化し、データ パイプラインのビジネス ロジック(コードと SQL を使用)に集中できるサーバーレス サービスです。たとえば、Dataflow には、自動インフラストラクチャ プロビジョニングおよびスケーリング、パイプライン更新、再現可能な実行ができるテンプレート化されたデプロイなどの機能が含まれています。

他のアプリケーションと同様に、Dataflow パイプラインの本番環境対応は、コードの記述と実行だけに留まりません。要件を収集して分析し、設計の通知を計画して、パフォーマンスを測定する必要があります。

パイプラインの信頼性と保守性を確保するには、開発プロセスにおいてコーディングのベスト プラクティスを理解し、遵守する必要があります。たとえば、継続的インテグレーションと継続的デリバリー(CI / CD)など、最新の DevOps のプラクティスを使用して、デベロッパーのワークステーション上の Apache Beam コードを本番環境で実行する Dataflow パイプラインに変換することをおすすめします。実行中のパイプラインで、モニタリング、アラート、エラー報告を使用すると、パイプライン エラーのトラブルシューティング、パフォーマンスの問題やデータの問題の理解、サービスレベル目標(SLO)に対するパイプラインの全体的なパフォーマンスの達成に役立ちます。

Dataflow と他のマネージド Google Cloud サービスを組み合わせると、セルフ マネージド ソリューションと比較して、データ パイプラインの本番化の多くの側面を簡略化できます。たとえば、モニタリングとエラー報告には Google Cloud のオペレーション スイート、パイプライン オーケストレーションには Cloud Composer を使用できます。

目標

このシリーズで説明するベスト プラクティスは、次のフェーズに分類されます。

  • 計画: 開発に着手する前に、機能以外にどのような要件を取り入れるか。計画段階で SLO を検討する必要があるのはなぜか。どのように SLO を設定すればよいか。SLO で、データ パイプラインの設計をどのように通知すればよいか。アップストリームとダウンストリームのシステムで、どのような影響を考慮する必要があるか。
  • 開発とテスト: Apache Beam コードを記述する際に遵守するベスト プラクティスは何か。どのようなテストを作成して自動化するか。パイプライン デベロッパーは、コードの作成、テスト、実行で、さまざまなデプロイ環境をどのように利用すればよいか。
  • デプロイ: 新しいリリースが利用可能になった時点で、すでに実行されているパイプラインはどのようにして更新すればよいか。どのようにすれば、CI / CD の手法をデータ パイプラインに適用できるか。
  • モニタリング: 本番環境パイプラインには、どのようなモニタリングが必要か。本番環境でのパフォーマンスの問題、データ処理の問題、コードエラーをどのように検出して解決するか。

このシリーズを終了すると、これまでのすべての考慮事項と、Dataflow を使用して本番環境対応データ パイプラインを構築する際の重要な側面について、より深く理解できるようになります。

次のステップ