人手によるシステム運用保守作業を最小化する「運用レス」を目指すNoOps。技術的には、クラウドやサーバーレス、自動化ツールなどを組み合わせることで、実現する環境が整ってきた。ただしNoOpsは、システムに運用レスのための機能を組み込むことだけを指しているわけではない。システムの稼働後も、継続的に運用保守の改善サイクルを回す活動である。

 ここでは、NoOpsの活動で実践するプロセスと、運用レスのためにシステムをどのように設計すればよいのかを見ていこう。

回復性はシステムの基本設計で組み込む

 NoOpsでは、システム開発時の基本設計段階での回復性設計によってシステムに自律運用を可能にする能力を持たせる。そして、システムの稼働開始後は、継続的な運用保守のエンジニアリング活動を実践する。システムへの機能追加やアーキテクチャーの変更など、変化するシステムに適応しながら自動化・自律化を維持促進する。

NoOpsの活動ライフサイクル
[画像のクリックで拡大表示]

 システムのリリース後に非機能要求を追加することは難しい。そして運用保守要件は代表的な非機能要求である。例えば「サービス無停止でシステム内の全てのOSをアップデートする」という能力は後から追加することはほぼ不可能だ。システムの基本設計の時点で想定し設計しておく必要がある。回復性設計は、運用保守観点でのアーキテクチャー設計であり、システムが自律運用能力を得るために不可欠である。

 もちろん最初から全ての運用保守業務を自動化することはできないし、目指す必要もない。運用開始前に全てを設計することは費用対効果の面で割に合わないし、継続的に行われるシステム改修に対して、継続的な運用エンジニアリングによる改善を実施していけばよい。

 NoOpsの最終的な目標は、リリース、予防保守、障害対応という全ての運用保守業務を、可能な限り人間の手を煩わせることなく遂行することだ。ハードウエアが壊れようが、ミドルウエアがハングしようが、突然トラフィックが1000倍に跳ね上がろうが、平然と動き続ける。サーバーの交換やOSのアップデートぐらいでシステムが停止することはない。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。