2015年1月14日水曜日

cronで実行するジョブとそうすべきでないジョブを考える

こんにちは、渡辺です。

今回は、cronについて考えてみます。

Linuxマシンを運用するにあたり、バックアップやログファイルのスウィッチなど、定期的に実施する作業が必要ですが、一般的には、cronを利用していると思います。
Windowsであればタスクスケジューラを利用しているように、Linuxであればcronを利用するという感じで当たり前に使われています。

では、cronを利用してどんなことを行っているかを考えると、大きく以下のようなことで利用されているのではないかと考えます。

  ① システムに関するジョブ実行
    ファイル類の定期的なバックアップ処理、ログファイルの定期的なローテート
  ② 監視用途
    常駐プロセスの死活監視を行う
  ③ アプリケーションのジョブ実行
    業務アプリケーションを
  ④ その他
    特定日時を指定して1回のみ実行させる
    (ex)リマインドメールや、Webページの更新・公開・削除など

また、それぞれの処理を実行した際にメールを送信することで処理が実施されたかどうかを確認したりしていると思います。



このように、cronでは日付や曜日、時刻を用いたサイクリックなジョブ実行や、一度だけ実行するジョブを予約して実行することができ非常に便利ですね。

しかしながら、cronを用いて実行しているジョブの中には、リスクや無駄といった課題を抱えて実行しているものが存在するのも確かです。
例えば、以下のようなリスクや無駄があると思います。

  1. 先行業務の完了を待って実行する必要がある
    cronでは、先行業務が正常に実行終了するのを待って実行させることはできません。このため、『この時刻には先行業務が終了しているだろう十分な間隔を空けた時刻』を指定して実行します。
    これには、“リスクを回避するために十分な間隔を空けることで、ジョブが実行されるタイミングが遅くなる『無駄』”と、それでも“先行業務が異常終了している『リスク』”が存在していることになります。

    また、データ量が増加して処理時間が長くなる、前の業務が異常終了しているため誤ったデータをインプットにしてしまう、リカバリに時間が掛かるといったリスクもあると考えます。
  2. コンピュータを跨る業務連携を行いたい
    cronでは、コンピュータを跨るジョブ実行が行えないといった課題があり、1.同様に十分な間隔を空けることで対応します。
  3. 個別管理である
    コンピュータ毎に実行するジョブを登録するため、ジョブの実行情報が分散されることとなります。分散した情報は、個人に依存しやすくメンテナンスビリティと言う点でリスクがあると考えます。
  4. 実行予定・実績を自分で確認す必要がある
    今日実行されるべきものは何であるのか。また、その実行状況がどうなっているのかを俯瞰的に確認することができません。このため、『期待どおり処理されているか?』『問題が発生していないか?』など、個別に確認する必要があり、人手による管理を必要とします。
    実際に、処理が正常に行われていないことに気付きにくく、発見が遅れる、どこからどうリカバリするべきかの切り分けに時間が掛かるといった経験をなされている方も多いのではないかと思います。


ここまでで、cronで実行してよいジョブと、そうすべきではないジョブが見えてくるのではないでしょうか。
もちろん、コンピュータの数が少なく人手を使って十分まかなえるので今のままで問題ないとの考えもあると考えます。
しかしながら、企業活動にIT利用が必須である現在において、企業の成長と伴にシステムも大きくなっていくことが容易に想像できます。
先ずは、早い段階で検討する機会だけでも設けてみては如何でしょうか。



検討にあたり、私たちが提供させていただいているA-AUTO 50では、ここまで述べたような無駄やリスクといった課題解決のお手伝いができると考えています。
例えば、以下のようなことが可能です。
  1. cronではできない実行順序の制御が行えます
  2. Linux間、Windows、Linux間など、複数コンピュータを跨った業務連携を簡単に実装していただけます
  3. サイクリックな実行だけでなく、ファイルの生成・更新、syslogやテキストログファイルに記録された特定の文字列をトリガーに各種シェルスクリプトを実行することが出来ます
  4. コンピュータ毎に個別に管理なければならなかった業務を一括で管理でき、すべて業務の実行状況を視覚的に確認していただけます
  5. 異常を検知したときだけ、メールで通知することもできます


小規模なシステムをご利用されている企業様においては、『商用のソフトウェアはハードルが高い』と考えられがちですが、A-AUTO 50は、先ず簡単に試していただけるよう以下のようになっています。 
  • 試使用にあたり、面倒なお客様情報の登録無しにダウンロード&インストール可能です
  • 数クリックでインストールが完了します
  • インストール後動作イメージを掴んでいただけるよう確認用ジョブを用意しています
  • すぐに運用を始めていただけるよう予め運用ジョブを自動実行するようになっています

ちょっと試してみようかと思っていただけたら、A-AUTO 50 公式サイトからダウンロードして下さい。


以上

0 件のコメント:

コメントを投稿