Open6
Workflow Engine をしりたいの '23秋
Kestra
数年前にローンチされたAirflowの代替ともいわれるWorkflow Engine
- OpenSource
- ElasticSearch + Kafka でHigh Scalabilityを担保している(有償版のみ)
- YAMLがネイティブで使える
- トリガーが充実しておりEventDrivenなアーキテクチャーにも対応
- ECS Task にはまだ非対応
- Javaで実装されているため、PluginもJava/Scalaが必要となる(つらい)
- モダンなWebUIで、簡単なスクリプトはWebUI上で作成して実行可能
Airflow
Airbnb が開発したオープンソースのワークフローエンジンでデファクトスタンダード
- PythonでDAGファイルを記述する
- 拡張機能が豊富
- AWSはMWAA、GCPはCloud Composer とフルマネージドもあるため連携豊富
- YAMLでもかけるがサードパーティ製
- やや敷居が高いイメージ
Digdag
Treasuredata が開発したオープンソースのワークフローエンジン
- TreasureData 連携やS3など連携機能が充実
- YAML likeな設定ファイル
- Pythonに加え、Rubyスクリプトもネイティブ対応
- タスク実行は、dockerとAWS ECSに対応
- JREとバイナリがあれば動作するのでコンパクト(ストレージやDBはもちろん必要)
Prefect
- マネージドサービスとして Prefect Cloudがあり、セルフホスティングも可能
- PythonでDAG記述対応
- Flow からECSを起動するほか、Flow 自体をECS上で実行することも可能
- タスク実行はDAGをPythonを実行するとTriggerするコマンドが実行できる
- リッチなUI
Google Cloud Workflow
- GCPスタック(Cloud Run, Cloud Function)と連携可能
- イベント駆動アーキテクチャにも対応しているらしい
- 使ったことはない
Workflow選定の観点は?
- ビジュアライズ(可視化)
- progress
- result
- 制御
- replay(retry)
- abort
- バージョニング
- スケーラビリティ
- サービス連携