システム保守と運用の違いとは?

みずほ銀行のシステム障害が2週間で4回発生、その全てが別の要因ということで、銀行の勘定系システムとして、ちょっと信じられない品質となってしまっているようです。

みずほ銀行の頭取は会見で以下のようにコメントしています。

「今回、システムの運用面において、みずほとグループ会社に不十分なところがあった」

システムが悪いのではなく、運用に問題があったと言っています。これだけの短期間で障害が連続して発生しているわけですが、いったいどのような「システム運用」をしていたのでしょうか。顧客のお金を管理するシステムというのは信用がないと話になりません。その回答次第で銀行の信用度が大きく変わってくる気がします。

と、ここまでは前置きで、ここから今回の記事のテーマに入っていくわけですが、そもそも「システム運用」とは何でしょうか。また、「システム保守」という言葉もよく耳にすると思いますが、両者の違いは何でしょうか。

今回は、その辺りのことを考えていきます。

システム保守とは

「システム保守」とはシステムを改善・変更する作業のことです。
一般的に以下のような作業が挙げられます。

アプリケーション保守

  • プログラムやシステムの障害(バグやトラブル)の原因究明
  • プログラムやシステムの障害に伴うプログラムの改修およびデータの修正
  • 改善要望、仕様変更に伴うプログラムおよびデータの改修

ジョブスケジュール保守

  • バッチジョブの性能改善
  • 新規プログラムの導入

インフラ保守

  • サーバーやストレージの障害対応
  • ネットワーク環境の障害対応
  • サーバーやストレージの改善(ハードウエア、ソフトウエア、設定を含む)
  • ネットワーク環境の改善(ハードウエア、ソフトウエア、設定を含む)
  • 周辺機器のリプレース(プリンタ、外部記憶装置など)
  • サーバーのリプレース、ファームウェアアップデート
  • OSのリプレース、アップデート、セキュリティパッチ適用
  • ミドルウエア(RDBMS、Application Server等)のアップデート、セキュリティパッチ適用、ユーティリティなどの導入
  • 端末のリプレース、アップデート、セキュリティパッチ適用

システム運用とは

「システム運用」は現行のシステムを日々動かしていく作業のことです。システムの変更作業はおこないません。
一般的に以下のような作業が挙げられます。

運転(マシン・オペレーション)

  • マシンの起動、停止
  • アプリケーションの起動、停止
  • データやアプリケーションのバックアップ作成、保管
  • 入力作業
  • 出力装置(プリンタ、磁気テープ、DVDなど)への出力指示およびアウトプットの取り出し、保管、担当部署への配布
  • システム障害やシステム停止からの復旧作業 ※これはシステム保守担当も作業に参加します。
  • システム利用者からの問い合わせ対応

監視

  • マシンやネットワークの運転状況の監視
  • システム資源(メモリ、CPU、ディスク)の状態監視
  • バッチジョブなどの異常監視、およびシステム部門への連絡

システム保守・運用は楽ってホント?

「SEに徹夜はつきものだ」なんて風潮がこの界隈には令和という新しい時代になっても未だに存在します。それに輪をかけて、最後は力押しで一気に片付けろとばかりに徹夜徹夜の繰り返し。システム開発とは、納期までにシステムを仕上げないと家に帰れないのです。

しかし、システム保守・運用はそんなことはない!交代制で勤務時間が決まっているので残業なんてほとんどない。
システム保守・運用系の案件に入るといいぞ。

そんな書き込みをネット上で見かけましたし、実際にそんなことを言っている人に会ったこともあります。

それは本当なのでしょうか?

確かにそういう見方、考え方もあると思います。特にシステムが運用開始してからある程度時間が経っているものであれば、不具合も収束し、安定稼働に入っているかもしれません。

そうなると、本当にやることがなく、暇な日々を過ごすことになります。

ただ、いざ障害が起きると、状況が一変します。

顧客からはすぐに何とかしろとプレッシャーをかけ続けてきます。
顧客先やデータセンターでの作業の場合、インターネットへの接続環境がないのが普通なので、いつもみたいに調べる手段がなく、何か問題が起こった場合でもすぐにオペレーションできるスキルが求められます。もちろん、その場はあきらめて次回にまわすという手もありますが、それがいつも許されるとは限りません。特に最近はITの重要度が増しているので、速やかな復旧が求められます。

私も過去にジョブがアベンド(異常終了)して、深夜に呼び出されて、データセンターに駆けつけたことがあります。自分が開発担当のとこだったので、かなり焦って現地に向かって、着いたら着いたで、執務室内は騒然としていて、早く復旧しないと、と、冷や汗みたいなのが止まりませんでした。

復旧したらしたで、その後は原因を厳しく追及され、周りを巻き込んでの類似見直しを実施し、再発防止策を障害報告書にまとめて…。

本当に追い込まれたことがあるエンジニアはシステム保守・運用は「楽」とはあまり言わないのではないかと思います。

システム保守・運用の違いまとめ

保守は、開発が終わって運用しているシステムに対して、仕様変更やバグの修正、各種製品のパッチ適用などを行う作業のことです。

運用は、システム利用者からの問い合わせに回答したり、システムが問題なく動作しているかを監視し、システムを支障なく動かしていく作業のことです。

システム設計や開発に関係あるのが保守で、関係ないのが運用です。

そして、両者に共通することとして、トラブルがあれば深夜だろうと正月だろうと関係なく呼び出されるのがシステム保守・運用作業というわけです。スマホの着信音が怖くなります。

ここで最後にもう一度、冒頭のみずほ銀行の話に戻るのですが、システム運用という点で、メディアに出ている内容が事実であればちょっと信じられないほどずさんな運用をしているように思えます。

まず、月末のシステム繁忙期にわざわざ臨時の処理を被せた点。通常、銀行のシステムに限らず、そういった繁忙時期は避けてメンテナンスを行うものです。

例えば、深夜だったり、ゴールデンウイークだったり、年末だったり。

それを月末の日中に実施して、案の定、メモリ不足で障害を発生させる。これまでにシステム資源の使用状況を監視して、キャパシティ管理を適切に行っていたのか、ステージング環境(実際の運用環境と変わらない検証環境)ではどのようなテストシナリオを実施したのかどうか。
さらに停止時間も長すぎる。待機系のサーバーは用意しているはずなのに、なぜ切り替わらなったのか。

「運用の問題」とするには、あまりに初歩的な内容なように思えます。

当該システムの開発はこの界隈ではかなり有名で、色々あったことを知っていますが、その裏側については、利用者に関係なく、納得できる再発防止策と障害報告が出てこないと、ちょっとこの銀行には自分の大切なお金を預けらないですね。