モダンデータスタック カテゴリ紹介 #18 『Workflow Orchestration(ワークフローオーケストレーション)』 – Modern Data Stack Categories Overview Advent Calendar 2023

2023.12.18

当エントリは『Modern Data Stack Categories Overview Advent Calendar 2023』 x日目のエントリです。

データ分析、データを扱う世界では昨今『モダンデータスタック(Modern Data Stack/MDS)』という考え方、サービス構成が大きな注目を浴びています。データの収集、処理、保存、分析に使用されるツールとクラウドデータサービスを集めたソリューションを指す言葉です。クラスメソッドとしてもこのモダンデータスタック(Modern Data Stack/MDS)を推しており、下記の内容でお客様にサービスとして提供しています。

このモダンデータスタックという考え方、現在では構成するサービス群のジャンルが非常に多岐に渡ってきています。このカテゴリ分けも正直企業や個人によって定義が分かれていたりするのですが、『Modern Data Stack - Everything that you need to know !』というサイトではこのカテゴリ分類がシンプルかつ分かりやすく展開されています。このアドベントカレンダー企画では、このサイトで展開されているカテゴリ毎について内容を理解することで見識を広め、今後のサービス展開・サービス選択を検討する足掛かりとして行きたいと思います。

当エントリでは、Modern Data Stack(MDS)におけるカテゴリ『Workflow Orchestration(ワークフローオーケストレーション)』の内容について紹介します。

目次

 

モダンデータスタック(Modern Data Stack/MDS)における『ワークフローオーケストレーション』とは

アドベントカレンダー企画の趣旨については1日目のエントリ内『当アドベントカレンダー企画について』をご参照ください。

ワークフローとは、繰り返されるソフトウェア・プロセスのことであり、これらのプロセスはコードで定義されることもあれば、完全に手動で定義されることもあります。

そしてワークフロー・オーケストレーションとは、例えば、このような自動化されたプロセスの構成と状態を管理・調整する行為のことを指します。

ワークフロー・オーケストレーションの概要とポイントは以下の通り。

  • 概要
    • ワークフローを管理し、自動化する必要性は長い間存在してきた。古くはcronから始まる
    • ビッグデータやデータサイエンスの時代になってくるとワークフローの複雑さや在り方自体にも大きな変化が求められるように
      • ジョブ量の急増
      • 事前に定義されたスケジュールでは外部イベントによってトリガーされるように
      • タスクはより効率的に状態を共有する機能を必要に
    • これらの要求を満たすために、最新のデータスタック向けの新世代のワークフロー・オーケストレーション・ツールが登場してくるようになった
  • ワークフロー・オーケストレーションに求められるもの
    • スケジューリングとトリガー
    • ステップ間やワークフロー間の依存関係の解決
    • バージョン管理
    • 監視、アラート、失敗時の再試行
  • ワークフロー・オーケストレーションのユースケース例
    • データウェアハウスを最新の状態に保つためのETLプロセスの自動化
    • 依存するAPIコールのスケジューリングの自動化
    • 高度に分散されたデータサイエンス・パイプラインに観測可能性を組み込む
    • レポート生成とダッシュボード更新の自動化
  • オーケストレーションツールを選択する際の主な検討事項
    • 現在のプロセスや技術スタックにどれだけシームレスにフィットするか?
    • ワークフローを作成・設定できる必要があるペルソナは誰か?
    • セキュリティとアクセスに関する主な検討事項は何か?
    • ツールの製品ビジョンは?
    • 費用に関して

 

MDSにおける主なワークフローオーケストレーション系サービス

ここではモダンデータスタックにおける『ワークフローオーケストレーション』のカテゴリで主だったサービスについて幾つか言及していきたいと思います。(ここでの評価はユーザーによるサイト内でのLIKEの数が多いものを中心に見ていきます)

 

Prefect

Prefectは、何百万ものデータワークフローやパイプラインの構築、実行、監視に信頼されている、ワークフロー・オーケストレーション・ツールです。

Prefectを利用することで、開発者はデータ・パイプラインを構築、観察、対応することができます。Prefectで出来ることには以下のようなものがあります。

  • スケジューリング
  • リトライ
  • ロギング
  • 便利な非同期機能
  • キャッシング
  • 通知
  • 可観測性
  • イベントベースのオーケストレーション

その他Prefectに関する基本的な情報は以下の通り。

 

Dagster

Dagsterは、テーブル、データセット、機械学習モデル、レポートなどのデータ資産を開発・維持するために設計されたクラウドネイティブなオーケストレーターです。実行したい関数と、それらの関数が生成または更新するデータ資産を宣言します。Dagsterは、適切なタイミングで関数を実行し、アセットを最新の状態に保つ手助けをします。

Dagsterは以下の特徴を備えています。

  • 統合されたリネージとオブザーバビリティ
  • 宣言型プログラミングモデル
  • クラス最高のテスト容易性

その他Dagsterに関する基本的な情報は以下の通り。

 

Flyte

Flyteは、クラウドベースの機械学習およびデータ処理プラットフォームです。機械学習ワークフローとデータ処理のためのプロダクショングレードのオーケストレーションを可能にし、ローカルワークフローをプロダクションへと高速化します。

その他Flyteに関する基本的な情報は以下の通り。

 

Kestra

Kestraは、スケジュール型とイベント駆動型の両方のワークフローを簡単に実現する、ユニバーサルなオープンソースのオーケストレータです。Infrastructure as Codeのベストプラクティスをデータ、プロセス、マイクロサービスのオーケストレーションに導入することで、信頼性の高いワークフローを構築し、自信を持って管理することができます。

その他Kestraに関する基本的な情報は以下の通り。

 

まとめ

という訳で、『Modern Data Stack Categories Overview Advent Calendar 2023』18日目の記事、Workflow Orchestration(ワークフローオーケストレーション)に関する紹介エントリでした。

明日19日目は『Data Discovery(データディスカバリー)』に関する内容となります。お楽しみに!