Open6

Workflow Engine をしりたいの '23秋

bibiobibio

Kestra

https://kestra.io/

数年前にローンチされたAirflowの代替ともいわれるWorkflow Engine

  • OpenSource
  • ElasticSearch + Kafka でHigh Scalabilityを担保している(有償版のみ)
  • YAMLがネイティブで使える
  • トリガーが充実しておりEventDrivenなアーキテクチャーにも対応
  • ECS Task にはまだ非対応
  • Javaで実装されているため、PluginもJava/Scalaが必要となる(つらい)
  • モダンなWebUIで、簡単なスクリプトはWebUI上で作成して実行可能
bibiobibio

Airflow

https://airflow.apache.org/

Airbnb が開発したオープンソースのワークフローエンジンでデファクトスタンダード

  • PythonでDAGファイルを記述する
  • 拡張機能が豊富
  • AWSはMWAA、GCPはCloud Composer とフルマネージドもあるため連携豊富
  • YAMLでもかけるがサードパーティ製
  • やや敷居が高いイメージ
bibiobibio

Digdag

https://www.digdag.io/

Treasuredata が開発したオープンソースのワークフローエンジン

  • TreasureData 連携やS3など連携機能が充実
  • YAML likeな設定ファイル
  • Pythonに加え、Rubyスクリプトもネイティブ対応
  • タスク実行は、dockerとAWS ECSに対応
  • JREとバイナリがあれば動作するのでコンパクト(ストレージやDBはもちろん必要)
bibiobibio

Prefect

https://www.prefect.io/

  • マネージドサービスとして Prefect Cloudがあり、セルフホスティングも可能
  • PythonでDAG記述対応
  • Flow からECSを起動するほか、Flow 自体をECS上で実行することも可能
  • タスク実行はDAGをPythonを実行するとTriggerするコマンドが実行できる
  • リッチなUI
bibiobibio

Workflow選定の観点は?

  • ビジュアライズ(可視化)
    • progress
    • result
  • 制御
    • replay(retry)
    • abort
  • バージョニング
  • スケーラビリティ
  • サービス連携