ジョブ管理ツール「Rundeck」を導入した話

はじめに

こんにちは!インフラチームの高畑です!

梅雨で空気がジメッとしていて気持ちも落ち込んでくるそんな季節ですが、これからやってくる夏に思いを馳せて気持ちを切り替えていきたいと思っています。

さて、今回はジョブ管理ツールである「Rundeck」を導入してみたお話をします!

What is Rundeck?

Rundeck とは、OSS のジョブ管理ツールで、エージェントを別途用意する必要がなく手軽に利用ができるツールです。

LDAPと連携することにより、細かいアクセス制御やログイン連携を行うことも可能です。

また、ジョブ管理ツールを使う上で欠かせないものである Slack 通知もできる優れものです。

github.com

これまでの問題

ウィルゲートではどのサービスのバッチも全て cron で実行を行ってきており、バッチの実行がちゃんと行われているのかが不透明であったり、実行ログをテキストファイルに出力してログ転送を行っていたりと、運用管理の面などで色々と問題を抱えていました。

その他にもバッチの実行時間を DB 負荷などをみてなんとなく予測したり、サーバに直接入って確認したりとわりと辛い状況に置かれており、これらを解決すべくジョブ管理ツールの導入に踏み切ることになりました。

Rundeck の導入を進めるために行ったこと

導入するにあたりまず初めに行なったことは、インフラチーム内で導入してみることです。

インフラチームでもバックアップスクリプトを実行する君や、テスト環境を夜落とす君など様々なバッチを動かしています。 それらも例外なく cron に仕込んで実行しており、ちゃんと実行できているのかがなかなか不透明な状態であったため、これらを Rundeck 上に載せ替えていきました。

結果、ジョブの数が 23 個まで増え今も動き続けています。

f:id:tkhttty:20190712142409p:plain

Rundeck 上にジョブを設置することにより、スクリプトが吐いた標準出力をログとして貯めることができ、またジョブの実行時間が一目で分かるのでちゃんと動いている安心感を持つことができました。

f:id:tkhttty:20190712143048p:plain

次に、社内で 「WILLGATE Infra Day 2019」といった情報共有会を実施しました。

↓当日使用した資料

speakerdeck.com

この会では、インフラチームで実際に導入した際の話を交えながら社内に情報共有を行い、各チームの心に訴えかける取り組みを行いました。

Rundeck を実際のプロダクトに導入!

このような会を開いて布教した結果、とあるチームから Rundeck を導入したい!というお気持ち表明が上がり、実際にプロダクトへ導入されることになりました。 (ご発注いただきありがとうございます!)

↓Rundeck 導入前 f:id:tkhttty:20190712185211j:plain f:id:tkhttty:20190712184136j:plain

↓Rundeck 導入後 f:id:tkhttty:20190712185326j:plain f:id:tkhttty:20190712184204j:plain

f:id:tkhttty:20190716094329j:plain

今後このように導入し、喜んで貰えるように日々取り組んでいきたいと思っています。

おわりに

cron というものは便利ですがやはり不安な気持ちにもなります。 そこで、Rundeck のようなジョブ管理ツールを導入することにより不安な気持ちを払拭できると思いながら日々業務に当たっていこうという気持ちです!

今後、cron でバッチを実行しているチームにどんどん広げられたら良いと思っています。