IT用語の基礎の基礎を、初学者や非エンジニアにも分かりやすく解説する本連載、第3回は「システム運用」です。ITエンジニアの自学用、エンジニアと協業する業務部門の仲間や経営層への解説用にご活用ください。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
システム運用とは、「システムを安定して稼働させるための活動」のことです。一般的なシステムの開発期間は、小規模なもので数カ月〜1年程度、大規模なものでは2年程度ですが、システム運用はそのシステムによって提供するサービスが終了するまで続きます。社会的に影響が大きいシステムや、企業活動に大きな影響を及ぼすようなシステムでは、稼働率や応答時間といったSLA(Service Level Agreement)を設定し、SLAを満たすように運用します。
システムの運用では、主に以下の業務があります。
システムの異常にいち早く気付くためには、システムを日々監視する必要があります。監視業務では、サーバなどの機器の死活確認や、CPUやディスクの使用率などのリソース監視、アプリケーションのプロセス監視、製品ログの監視などを行います。例えば、サーバのCPU使用率が90%を超えた際に、運用管理ソフトウェアに異常を通知する仕組みなどを導入します。このような監視業務は一般的に、人の手では行わず、監視ソフトウェアを使用し自動化しています。
システムを安定稼働させるため、定期的にサーバやソフトウェアを再起動しリフレッシュするなどの業務が発生します。特にシステム開発時の設計に不具合があると、メンテナンスの回数は増えてしまいます。このような業務では、日次や週次、月次といった頻度で定期的に同様の作業が発生するため、ジョブスケジューラなどのジョブ管理ソフトウェアにより自動化することが一般的です。ジョブ管理ソフトウェアを使用すると、あらかじめ定義した処理を指定した時間、指定した順番通りに実行できます。また、これまで述べたようなシステム基盤観点のメンテナンス業務のみならず、業務アプリケーションのバッチ処理(※1)なども実装します。
システムの拡張や製品のアップデート作業、また障害が発生した際にはリカバリー作業が発生します。システムを運用しているとさまざまな障害に遭遇します。システムにとって障害はつきもので、それはたとえクラウドのような実体が見えないサービスであっても、システムが物理的な機器の上で稼働している以上、必ず発生します。また、ハードウェアの故障のみならず、製品のバグや人為的なミスなど、障害の原因はさまざまです。
上述した業務以外にも、システムの稼働状況のレポート作成や、ユーザーからの問い合わせに対応するヘルプデスク、アプリケーションの改修など、運用にはさまざまな業務があります。広範にわたる業務に対応するため、システムの開発フェーズと同様に、運用フェーズにおいてもアプリケーションチームやインフラチームなど、担当する業務に応じてチームが分かれていることもあります。
冒頭で述べた通り、システム運用の目的はシステムの安定稼働です。そのためには、業務データのバックアップや障害対応手順の整理など、多くの準備をしてさまざまなトラブルに備えることが必要です。例えば、業務データがなければハードウェアが復旧しても業務を再開できず、障害対応手順が整理されていなければいざ障害が発生した際にSLAで定められた時間内に復旧させることは難しいでしょう。
障害は必ず発生するものと考え、想定されるトラブルに対しあらかじめ準備をしておくことが大切です。また、ハードウェアの障害以外に、人為的な障害も避けては通れません。人為的な障害を減らすためには、システムに対する作業を自動化し、人が関わる部分を減らすことが重要です。現在人が行っている作業でも、プログラム化できるものはジョブ管理ソフトウェアによって自動化できます。
上図のような作業を、深夜1時に人の手で実施するのは非常に危険です。再起動の対象ではないサーバを停止してしまう、またはサーバの停止起動順序を間違えるなど、多くのリスクがあります。自動化によりこれらのリスクを回避すると同時に、人件費などの運用コストの削減も可能です。当然、自動化にはプログラムの作り込みなどが必要ですが、自動化により得られる安定運用や運用コストの削減は、長くシステムを運用していく上で大きなメリットとなるでしょう。
従来、商用システムといえばオンプレミスが中心でしたが、現在はクラウドサービスを利用するシステムが増加しています。マルチクラウドやハイブリッドクラウドの採用など、システム基盤の多様化に伴う運用の複雑化は大きな課題の一つです。
このような課題に対しては、クラウドに適した運用管理ソフトウェアの導入や、統合管理の仕組みの導入、運用エンジニアのスキル向上、もしくは既に卓越したスキルを持った運用エンジニアの採用などが必要です。また、クラウドサービスの台頭や自動化の推進に伴い、単純な運用作業は今後減少していくことが予想されます。そのような状況から、今後のシステム運用の現場では、運用エンジニアに求められるスキルが上がっていくものと思われます。
BFT インフラエンジニア
主に金融系、公共系情報システムの設計、構築、運用、チームマネジメントを経験。
現在はこれまでのエンジニア経験を生かし、ITインフラ教育サービス「BFT道場」を運営。
「現場で使える技術」をテーマに、インフラエンジニアの育成に力を注いでいる。
Copyright © ITmedia, Inc. All Rights Reserved.