「障害は起こる」前提で「信頼性」を重視して品質を確保する

「サービス活用型」のシステム構築を推進する場合に、重要度が増す品質管理の視点としては「信頼性」が挙げられます。

「個別開発型」では、機能や性能の要件を重視し、そのうえで「原則として障害が発生しない」ことを目指して品質管理のスキームを作っていました。一方で「サービス活用型」では、品質のコントローラビリティが相対的に低くなります。

このことをあらかじめ織り込んでおき、「障害は起こる」という前提で「どのくらいの時間で、どこまで復旧できるか」を基準にした品質管理の方法論を取り入れていく必要があります。これは「信頼性」を軸にした品質管理と言えます。

信頼性を構成する指標としては「最大許容停止時間(MTPD)」「目標復旧時間(RTO)」「目標復旧レベル(RLO)」「目標復旧ポイント(RPO)」などが挙げられるでしょう。「サービス活用型」でのシステム構築では、用途に応じて「信頼性」の基準を設定し、クラウド事業者のSLAを考慮しながら設計を行います。必要に応じてオプションの導入や運用プロセスの改善なども行いながら基準の実現を目指します。

特に業務への影響が大きい重要なシステムでは、障害が発生する可能性を極小化するために「冗長構成」を取ることがあります。オンプレミスで冗長構成をとる場合には、事前にシステムやハードウェアを複数用意しておく必要があるため、基本的に倍以上のコストが掛かり、構成も複雑になります。

現在では、基幹システムのインフラとしてクラウドを採用するケースも増えていますが、クラウドではクラウド事業者とのSLAを前提にシステムを設計します。その場合「障害が発生しない」ことを前提とするのではなく、SLAの範囲内でシステムが停止した場合の影響を局所化し、「短時間に復旧する」ことで信頼性を確保する方法をとることが推奨されます。

また、クラウドの場合には、冗長構成のような可用性、信頼性の高いシステムを、オンプレミスと比べて安価に構築できます。クラウド事業者が運用する異なる地域のデータセンターに、仮想マシンベースのシステムを複製して配置するといったことが極めて迅速に行えます。システムを監視し、障害が発生した際に自動で接続先を切り替えるといった運用もマネージドサービスとして実現可能です。求める要件やコストに応じた「信頼性」を容易に実現できる環境があります。

「必要なときに必要な期間だけ利用できる」というクラウドのメリットを開発時にもフルに活用することで、オンプレミス環境では主にコスト面で実現が難しかった「本番と同じ環境でのワークロード、シナリオの検証」も現実的になります。

その際には、本番構成においてどのようにシステム障害が発生するか、どのように復旧すべきかの手順も検証できます。つまり、実際の障害発生に先駆けて、本番と同じ環境でのテストや修正の検討が可能になるわけです。開発時にこうしたプロセスを組み込んでおくことで、リリース後のサービスの信頼性をさらに高めることができます。

  • 図2:従来のサービス品質確保プロセスから「信頼性」を軸としたプロセスへの変化 出典:Ridgelinez

運用プロセスの自動化と改善を推進する

「サービス活用型」でシステムを開発、拡張していくと、ひとつのシステムに連携するサービスの数は次々と増えていきます。そうした状況において「障害が起こる」前提で早期復旧を実現するということは、決して容易ではありません。

このような環境下でシステムの「信頼性」を維持するためには、これまでのように運用・保守設計で定められた作業を「運用手順書」に沿って実施するだけではなく、運用後も継続して品質管理のプロセスを改善していく必要があります。

運用開始後のプロセス改善にあたっては、監視やアラートに基づいた障害の「予兆検知」や「早期検知」が、短時間での復旧に役立つシグナルになります。また、定型的な運用作業の「自動化」を積極的に進めていくことも、品質上のリスクを低減し、運用属人化のリスクや人手による制約を排除するうえで役立ちます。

障害が発生してしまった場合には、根本原因の分析と、それを固定化しないような運用プロセスの再構築を行う必要があります。システムに求められる役割が増え、運用開始後に機能拡張が行われることも多い状況では、リリース直後に問題が発生した場合の自動ロールバックなど、リスクを低減するリリースプロセスの採用も検討するべきでしょう。こうした領域は「SRE:Site Reliability Engineering」や「DevOps」といったトピックとして、近年注目されています。

  • 図3:運用におけるサービス品質確保のベストプラクティス 出典:Ridgelinez

古い手法や組織文化の改革にリーダーシップを発揮する

今回紹介したような「信頼性」を軸にしたサービス品質確保のためのアプローチやプロセスと、それを実現するための技術は現在も進化が続いています。

「個別開発型」では難しかった、本番稼働後の新たな業務要件の追加も「サービス活用型」では比較的容易になっており、その品質を高く維持することも技術の面では可能になってきています。これまで「人海戦術」で行わざるを得なかったような運用作業も急速に自動化が進んでいます。こうした動きは世界的な潮流となっていると言えるでしょう。

日本企業において、特に「システム運用」は旧来の手法や文化が支配的なケースが多く見受けられます。確かに、新しい手法を取り入れたり、現在分業で固定化されている業務の枠組みを根本から変えたりすることには、多くの抵抗が予想され、実現には膨大なエネルギーが必要になるでしょう。

本連載では、DX推進にあたって、テクノロジーやプロセスだけでなく、そこに関わる人々の意識や組織文化も併せて変えていく必要があると繰り返し述べてきました。情報システムが生み出す価値を最大化することを仕事にしている人々にとって、今がリーダーシップを発揮し、改革を主導する時機ではないでしょうか。

著者:松浦幹典
Ridgelinez株式会社 Consultant