たまに検討するけど、よく忘れるのでまとめておく。ごく個人的な感想としては、Rundeck, Azkabanあたりで始めてみるのがいいかもと思う。
要件
- 重複実行の防止
- ジョブの実行結果、かかった時間、ログ出力などが見れる
- 失敗時の通知
候補
OSS系
Rundeck
- http://rundeck.org/
- Java Runtimeで動く
- RUNDECK PROという有料サービスもある http://simplifyops.com/
- 参考: http://heartbeats.jp/hbblog/2015/01/rundeck.html
Oozie
- http://oozie.apache.org/
- Workflow Scheduler for Hadoop
- Java
- http://oozie.apache.org/docs/4.1.0/DG_Overview.html
- Webコンソールもあるみたい
Luigi
- https://github.com/spotify/luigi
- Built at Spotify
- Pythonで動く Downloading and running
python setup.py install
- CUIベースで触るっぽい感じ?
Azkaban
- https://azkaban.github.io/
- created at LinkedIn to run Hadoop jobs
- Java Runtimeで動く
- きれいなweb UI
- soloモードだと、マネージャーもExcetorもDB (H2)も全部入りなので1サーバーだけで動く
Jenkins
- Jenkinsで実行まで行う
- cronの実行結果だけ受け取るのもあるけど、重複実行を防げない
- 分散実行したい場合はJenkinsのスレーブ管理機能を使う
- バッチサーバーでJenkinsを動かしたくないなら工夫が必要
- curlで叩いてタイムアウトとか間抜け
- SaaSがよければ https://www.cloudbees.com/
Hinemos
- http://www.hinemos.info/hinemos/
- NTTデータの作ってるやつ
- 監視もできるジョブ管理ツールらしい
- そういう解釈ならZabbixもジョブ管理ツールになりうる
Chronos
- http://airbnb.github.io/chronos/
- AirBnbで作ってる
- Mesosの上で動く
- 分散環境で有効そう
airflow
- airbnb/airflow · GitHub
- Airflow’s Documentation — Airflow 1.0.0 documentation
- データパイプライン処理ツールという定義だけどどこが使いどころかまだわかってない
- Python 2系で動く
- Pythonで設定書く
- リッチなWeb UIあり
HTCondor
- http://research.cs.wisc.edu/htcondor/
- 大規模環境向け?ジョブマネージャー
- 単なるジョブスケジューラーとしても使えるみたいだけど
- 30年くらい歴史ある
商用系
JP1
- http://www.hitachi.co.jp/Prod/comp/soft1/jp1/
- 商用
- 業務システムでは定番らしいけどよく知らない
Tivoli
- http://www-01.ibm.com/software/tivoli/
- 商用
- IBMファミリーの製品
- よく知らない
jamsscheduler
A-Auto
- よく知らない
Systemwalker Operation Manager
- 富士通
参考