現状の課題
ジョブ管理の目的はビジネスに影響を与えないようにジョブを実行し、想定の時間以内に完了させることである。そのためには、単にジョブをスケジュール通りに実行させるだけでなく、ジョブが異常終了した場合の対応も重要になる。ジョブ障害への対応には、スキップやリトライなどがある。適切に対応するには、「どこまでジョブネットが進んでいるか」「どこで障害が発生したか」「いつ障害が発生したか」など、ジョブの稼働状況を正確に把握する必要がある。
しかし、ジョブネット数の拡大、個々のジョブネットが扱う情報量の増大に伴い、夜間バッチなどの処理時間は増大している。さらに、目的に応じたジョブ管理ツールを採用するシステム同士が、それぞれのジョブ管理ツールの管理範囲外で連携するケースも増えている。このような環境下では、「いつまでに復旧が必要か」「どこに影響があるのか」といった網羅的な状況が分かりにくくなる。
例えば、翌朝9時までにバッチ処理を終了させなければならない環境で、ジョブに障害が発生したとする。その場合、障害が発生したジョブをスキップさせるべきか、再ランさせるべきかの判断を行うには、ジョブを再ランした場合の稼働予想時間を把握する必要がある。だが、日々変化するジョブ稼働時間を予測するのは難しい。さらに、対策を行うには影響範囲を把握する必要があるが、システムごとに異なるオペレーションエンジニアが複雑にからみ合った後続ジョブの影響範囲を正しく把握することは困難である。
解決策
ジョブの稼働時間は、過去の稼働履歴を基に予想時間を算出することができる。障害や再ランによる影響範囲は、ジョブの先行関係情報(フロー図)があれば把握できる。具体的には、過去の稼働履歴(起動時間、終了時間)に、異常が発生している先行ジョブが復旧するまでの時間を足し合わせた結果を、後続ジョブのフロー図に反映することで影響範囲の可視化が可能となる。
複雑なジョブフローにおける障害対応を瞬時に判断するには、分かりやすいGUIのフロー図で可視化することが必要である。また、後続ジョブは、トリガー待ちや起動時間待ちなど、先行ジョブ以外の先行条件を持っているケースがあるため、そのような先行条件を考慮した影響範囲を把握する必要がある。
Senju Familyでの実践方法
Senju DevOperation Conductorではジョブの異常終了などで終了遅延が起きた場合や、ジョブの構成変更時に、後続ジョブネットへの影響範囲(影響パス)を把握することができる。トリガー待ちや起動時間待ちなどの待ち時間を考慮した過去の実行実績から算出しているため、より正確な状況が把握できる。また、ジョブモニタと同様のインタフェースでジョブフロー図上に影響範囲と影響を受ける時間をグラフィカルに表示できるため、視覚的に全体の状況が把握できる。