システム運用における本当の意味の「効率化」「高品質化」「コスト削減」
オペレーター領域のシステム化こそ21世紀型のシステム運用
「そうはいっても、システムでは気づけない部分に気づくことができるため、人による定型的な確認作業は重要である」と、よく言われることがある。
よく見受けられるのが、想定外のログが出力されるのを見つけることであったり、画面の見た目や、ユーザーが記事を投稿できるようなサイトでの内容の確認といった領域だ。確かにこういった判断は、人でないとわからない領域である。しかし、よく考えてみて欲しい。想定外の事象を見つけることが、そもそもオペレーションとして定義されていること自体、おかしくないだろうか。事前に想定できる障害に対しては、その対応をシステム化できるはずである。
それに対し、想定できないものの存在を理由にして、オペレーターという役割の人を置くことは、システム化できる部分に関しても人に依存していることになる、と言えるだろう。これでは、「効率化」や「コスト削減」は実現できない。
それでは、オペレーションのシステム化と人による対応の、境目の線引きはどこになるのだろうか。ここで例を見てみよう。
「監視システムの役割は障害を検知するまでであり、その先の判断は人」という、線引きがなされたシステムの運用設計をよく見かける。あくまでも、システム化されているのは「監視」までであり、その後の対応がシステム化されていない例は多い。
しかし、21世紀型のシステム運用においては、障害を検知してそれに対する決まった処理を行うまでが、監視・運用システムなのである。決まった処理のどれにも合致させることができなかった事象が発生したときに初めて、人へのエスカレーションとなる。
システム運用自体をシステム化するとき、単純に「監視システム」の導入を考えるのではなく、「監視・運用システム」を導入していくことが重要となる。そのイメージを図1に示す。これこそが、これからの時代のシステム運用にマッチした、「効率化」「高品質化」「コスト削減」を実現できる決め手となる。特に、オペレーター業務と呼ばれる体制がなくなることによる、コスト削減効果は大きいはずだ。オペレーター部分の24時間365日の体制を自前で作るとなると、最低でも4〜5人必要だ。仮にこの部分をアウトソースするにしても、月額数十万円のコストとなるはずである。このように考えてみても、オペレーター業務をシステム化することによるコスト削減メリットは、非常に大きいということが納得いただけるだろう。
技術者には関連付けを行った障害履歴や各種リソース情報が必要
オペレーションのシステム化が実現できたとすると、次にシステム運用の技術者に求められるのは、完全に非定型業務となる。これは、想定外の問題への対処や、システムの拡張、次期システムの設計といった業務である。
この部分において、「効率化」「高品質化」「コスト削減」を実現するには、技術者が非定型業務を行うにあたり、いかにシステムに関する多くのデータが揃っているかという点がポイントとなる。これは例えば、CPU負荷やメモリー使用量の推移といったサーバー個別のリソースデータであったり、よく障害が発生するポイントや時間帯といった障害発生傾向など、まさにシステムが動作している過去から現在に至るまでの、あらゆる履歴である(表2)。データの次への活用が実現できて初めて、システムの高品質化が実現するのだ。
項目 | 内容 |
---|---|
システムリソース | CPU負荷 |
メモリー使用量 | |
ディスク使用率 | |
ネットワークトラフィック | |
その他 | |
障害情報 | 発生日時 |
復旧日時 | |
障害内容(サーバーダウン、プロセスダウン、 各種閾値超過など) | |
その他 | システムログ |
アプリケーションログ | |
サービス応答時間 | |
その他 |
例えば、翌年にシステムのリプレースを予定しているとする。新システムでは、どの程度の処理能力を持った機器を導入すべきだろうか。それを考えるには、ユーザーの増加率やサービスの提供に現在システムの能力の何%を使っているのか、という情報が必要になるだろう。
また、既存のシステムでは、アクセス集中時に、応答遅延や障害が頻発していたとする。それを新システムでは根本解決したいと考えたとき、当然ながら原因が何であるかを明確にする必要がある。「WebサーバーやDBサーバーの能力不足なのか」「ミドルウェアの不具合なのか」、または「アプリケーションの不具合なのか」もしくは、「これらの組合わせによるものなのか」。このことから、関連付けを行った障害履歴や各種リソースの情報が必要になる、ということがわかるだろう。
技術者が情報を常に利用でき、フィードバックできる体制は非常に重要である。この点に関しては、ある程度のコストをかけるべき部分と言える。その結果として、システムに対して常に問題点のフィードバックがかけられ改善が進み、最終的には、システム全体の「効率化」「高品質化」、そして、かけたコスト以上の「コスト削減」が実現できる。
統合運用管理システムの重要性
この領域には、ネットワークの物理層からアプリケーション層に至るまでの幅広い知識を持った、高度な技術者を確保することが必要となる。もちろんこの技術者は、前段でシステム化すべきであると述べたオペレーターではない。また、プログラマーでもない。幅広く、しかしそれぞれの部分で深い知識を持った技術者のことである。第2章の「5つの間違い」でも触れたが、システム運用担当者は、システム開発者よりも優秀な技術者である必要がある。
「そんな簡単にはいかない」と思われる方も多いかもしれない。確かに、このような対応ができる技術者を確保することは、難しいかもしれない。その場合は、この領域に関して、外部のサービスやアウトソースを組み合わせていくことも、十分検討に値する。結果として、システム全体の品質向上や、コストダウンにつながるはずである。ただし、「5つの大間違い」でも触れたことであるが、ここでアウトソースする範囲の切り方を間違ってはいけない。
これまで、「効率化」「高品質化」「コスト削減」を行うためには、次の2点が重要であると述べてきた。1つはオペレーションのシステム化であり、もう1つは高度な技術者と、その技術者が必要とする情報の蓄積と提供である。
「監視」「オペレーション」「システム分析に有用な情報蓄積」の3つの機能に関しては、統合運用管理システムとしてシステム化すべきである(図2)。
これにより、システム運用の効率や品質を維持しながら、かかる人的リソースを必要以上に増大させない体制が実現できる。