Help us understand the problem. What is going on with this article?

ワークフロー管理で使えそうなツールまとめ

More than 1 year has passed since last update.

ワークフロー系の方法についてまとめました。
そのほか皆さんがご存知の方法などあれば、コメントください。 :pray:

きっかけ

  • KPIとかで必要なデータを定期的に本番環境のDBから取り出してどっかに保存しておきたい
  • 取り出したいデータ構造や種類は頻繁に変更があったり、そのうちデータを取る必要が無くなったりする
  • メインレポジトリーで管理すると、変更が頻繁にあると対応が面倒だったり、廃れた時にゴミが残る可能性が高い

タイプ①:自分でプログラム作る

  • 長所:何でも書ける、複雑な処理が自由自在、gitバージョン管理が容易
  • 短所:読み書き双方でコードの理解が必須、ワークフロー定義の全体像の俯瞰が困難

AWS Lambda

  • Redash x AWS Lambda x Google SpreadsheetでKPI集計
    • データを取り出してスプレッドシートに放り込むだけならこれが一番ラクそう
    • その反面、複数のワークフローを一元管理をしたい場合これではシンドイかなと...

Airflow(Python製)

Luigi(Python製)

  • spotifyが主導で作ってるOSS
  • 複数のバッチ処理を組み合わせたジョブを制御できる
  • 処理の依存関係の解決・スケジューリングに特化
  • Airflowとくらべて機能が絞られている
    • 処理スケジュール起動やトリガ起動は出来ない(Jenkinsとかで別途対応が必要..)

タイプ②:GUI

  • 長所:シンプルなワークフローの組み上げが簡単、誰でも開発&管理可能
  • 短所:複雑なループ処理等を書くのが辛い、バージョン管理が困難、再現性が低い(別環境に同じワークフローをデプロイするのが困難)

Jenkins(Java製)

  • みんな大好きJenkinsおじさん

Rundeck(Java製)

タイプ③:定義ファイル+スクリプト

  • 長所:gitでバージョン管理可能、それなりに読み書きし易い
  • 短所:読み書き双方でスクリプトの理解が必要、複雑な処理の記述が煩雑になる、制約多め

Azkaban(Java製)

  • LinkedIn製のワークフロー管理

タイプ④:定義ファイル+オペレータ+グループ

  • 長所:
    • 読み書きし易い
    • タスクのグループ化が可能、挙動を俯瞰出来る
    • 良くある処理ならプログラミング不要
    • 特殊な処理についてはスクリプトを記述可能
    • 実行状態をチェックする管理UIあり
    • gitでバージョン管理可能
  • 短所:
    • DSL(YAMLベース)の理解が必要

Digdag(Java製)

- Treasure Dataが主導で作ってるOSS
- YAMLベースのシンプルな設定ファイルなので学習コストが低い
- High Availability(HA)構成が容易
- 分散環境での動作が容易

雑感

  • 単にデータを取得してスプレッドシートなどで管理したいだけであれば、AWS Lambdaを使えば十分と思いました。
  • 定期的に実行したい処理が増えてきた場合には、Airflowを入れて管理していくのが良さそうかなと思いました。
    • 一通り機能が入っている&個人的にはPythonも触ってみたいので...

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした