1分で分かる!システム開発における運用・保守とは?
ジャバ―ド先生おはよう!
ことりん君おはよう!
ジャバ―ド先生、もうボクはさ、提案~構築までを熟知しちゃってるんだよね…。ってことは、もう「ことりん先生」って呼んでもらっても構わないんだけどどうだろうか?
提案 > 要件定義 > 基本設計 > 詳細設計 > 製造 > 結合テスト > 総合テスト > 構築
ことりん君、まさか提案から構築までがエンジニアの仕事だと思ってない?
えっ!まだほかにも仕事があるの??
ふっ、ふっ、ふっ…。まだまだ先生になるには早いようだね!ことりん君にはまだ教えてなかったけど、もう1つ大事な仕事があるんだよ。
でもさ、提案から構築までの工程で、システムを考えて、つくって、テストして、構築したんだよね。システムって構築したら完了だと思うんだけど、他に何をするの?
ことりん君、システムっていうのは作って終わりじゃないんだ。むしろ、システムの目的って困っている誰かを助けることだよね。そういう意味では構築してユーザーが使い始めてからが本当のスタートなんだよ。
あ、そっか。エンジニア目線で見ると開発が完了したら終わりだけど、実際はそれから使っていくんだもんね。ということは、システムが動いているときにやるお仕事があるってことかなぁ?
そう!そのとおりだよ、ことりん君!システムが動いているときに、安定して動くようにする仕事を「運用」っていうんだ。
新しい工程だね!
あと、もう1つ!どんなにテストをしても、バグが0件っていうのは結構難しいんだよ。で、実際に本番でシステムを動かしているときに気付くバグもあるんだ。そういったバグを調査したり、修正する仕事もあるよ。そのほかにも、機能を追加することもあるよね。こういった仕事を「保守」っていうんだ。
運用と保守か…!
そう!運用と保守は仕事自体は違うことをやるんだけど、システム稼働後に行うエンジニアの作業として「運用・保守」とひとまとめにして呼ばれることが多いよ!
システムを安定稼働させるためのお仕事が「運用」で、何があった場合の調査や対応を行うお仕事が「保守」か…。たしかにどちらも無くなったら大変なことになりそうだね。
そうなんだ。もちろん、システムによるんだけど、大規模なシステムになるほど、システムが止まることは許されないんだ。たまに、航空会社とか鉄道会社のシステム、あとは銀行のシステムが止まると、ニュースでも大きく取り上げられるよね。
あぁ、たまにあるよね!大変そうだなぁと思ってみてたよ!
現代社会にとって、ITを用いたシステムはすでにインフラといっても過言ではないからね。こういったことが起きないためにも、そして万が一トラブルが発生してしまった場合は最小限の被害に食い止めるためにも、運用・保守という仕事が重要なんだ。
開発ってほんと気が抜けないね…。ジャバ―ド先生ありがとう!
運用と保守とは?システム開発における運用・保守の基礎知識
運用・保守の業務内容
運用・保守はシステムが本番稼働後に安定的に稼働するための作業を行う工程です。運用・保守と一括りで表されることが多いですが、実際の作業は異なるものです。
運用は、システムが安定して稼働しているかを監視し、異常を検知した場合は関係各署へアラートを行います。基本的に本番稼働したシステムは開発エンジニアが本番のシステムに対して直接何か作業することはありません。すべて運用が行います。運用の具体的な作業は下記の通りです。
- バッチ処理(予め定められた時間にデータの入力・出力などを行う)
- システムの監視
- 異常検知時のトラブル対応
- データベースやファイルなどシステムが扱うデータのバックアップ
また、保守はシステムの不具合調査・改修や機能追加などを行います。保守としては下記のような作業を行います。
- 不具合の調査・修正
- 機能追加
システム開発は高額な開発費が必要となります。エンジニア1人80万円、開発に1年間かかるとして、約1,000万円はかかります。もちろん規模にもよりますが、某メガバンクのシステムは約4,000億円以上かかったとも言われています。そのため、一度開発したシステムは数年~十数年は使い続けることになります。その間にもビジネス状況は刻々と変化するため、保守として機能追加などを行い、ビジネスに活かしていくのです。
運用・保守に対するエンジニアの関わり方
前述したとおり、運用と保守というのは作業自体異なります。大規模な企業であれば「運用チーム」と「保守チーム」はそれぞれ独立しているケースが多いです。
なお、運用エンジニアはプログラミングをするケースはあまり多くありません。監視、バックアップ、バッチ処理などは、予め決められた手順に基づいて実行します。そのため、どちらかというとインフラエンジニアよりの業務となります。
一方、保守については、不具合の調査や修正などがメインとなるため、プログラミングのスキルが必要となります。
なお、「開発」と「運用・保守」は、立場の違うため、時にぶつかることがあります。開発は新規機能を追加していくのが仕事であり、運用・保守はできるだけシステムを安定稼働したい(変更を加えたくない)からです。ただ本来は開発も運用・保守も、目的は「ユーザーの困った事を解決する」という1つのゴールのはずです。そのため最近では、開発と運用・保守を1つとして考えるDevOpsという手法が注目されています。
インフラエンジニアとは
- インフラ(サーバー)エンジニア
- インフラ基盤(データベース)エンジニア
- インフラ(ネットワーク)エンジニア