はじめに
こんにちは、DevOps グループの中島です。
年末年始は前からやろうと思っていたエルデンリングをプレイしました。DLC もそのうち出るらしいので楽しみです。
今回はジョブスケジューラの導入をしたときの話をシェアします。
背景
エンタープライズ向けでは、サーバの監視とジョブの管理を行うツールとして、日○や富○通の製品が業界標準として選ばれることが多いように思います。 一方で OSS だと有名どころは Rundeck あたりが候補になるでしょうか。 弊社では AWS を利用しているためその中で見繕うことをまずは考えたのですが、それ専用に提供しているサービスはありません。
そこで、要求仕様を挙げ、最適なものを OSS から選定することにしました。
要求仕様
必要な要件としては以下で、cron を画面操作に置き換えられれば良いという簡単なものとなっています。
- 社内サーバで動作している cron を置き換えたい
- サーバにログインせず、GUI から実行や実行結果の確認がしたい
- ジョブのグルーピングはしたい
- ジョブ定義のバックアップができる
- 実際のサービス提供では利用しないため、特段 SLA は高くない
比較
今回は OSS のジョブスケジューラである、Rundeck, Dkron, Cronicle を比較してみました。
Rundeck | Dkron | Cronicle | |
---|---|---|---|
開発元 | PagerDuty | Distributed Works | PixlCore |
GitHub Stars | 5.2k | 4k | 3k |
WebUI | あり | あり | あり |
言語 | Java | Go | NodeJS |
グルーピング | あり | なし | あり |
ジョブ定義のエクスポート | あり | なし | あり |
Rundeck は開発元がメジャーなため長期のサポートが期待出来そうです。また、導入事例が多くありトラブルが発生した際の対応が比較的容易と考えられます。 ただ、導入してみた感想としては、とにかく機能が豊富で、ジョブの定期実行をしたいだけなのに設定する必要のある項目が多くあり、学習コストが高いなと感じました。 GUI のデザインも少々分かりにくく(個人の感想です)、動作もサクサクという感じではありませんでした。
Dkron については Go で作られている点や、This is the only job scheduler in the market with truly no SPOF
と謳っている部分が魅力に感じました。
しかし、求めているグルーピングやバックアップの機能が、商用サポートを購入しなければ利用できなかったり、そもそも存在していなかったので今回は見送りました。
高 SLA を求められる場合には選択肢に入るかもしれません。
Cronicle は、Dkron と同様に開発元があまり知られていないという懸念はあるものの、今回の要求仕様を満たしています。 それに GUI もシンプルで美しく(個人の感想です)、直感的に操作ができ、必要十分な情報を表示してくれていました。 機能性や拡張性、保守性はそれほど高い要求がされていないことから、今回は利便性の高い Cronicle を採用することにしました。
終わりに
Cronicle を導入してから数ヶ月経ちますが、特に問題なく動いています。 ジョブスケジューラって探してみると意外とこれってのが無いんですよね。 もし導入を検討していたら、Cronicle を選択肢に入れてみて下さい。
We're hiring!
弊社では、一緒に働いてくださるエンジニアを募集しています。
rarejob-tech.co.jp