インフラの定石を身につけよう

インフラの重要性

ITシステムにおいて、インフラはとても重要です。⁠インフラ」はインフラストラクチャの略語で、下部構造や基盤を意味します。つまりシステムにおけるインフラは、システムの下部構造や基盤といった「システムを支える部分」を指します。

同じようにインフラが使われている用語に「社会インフラ」があります。社会インフラは、道路や鉄道、バスなどの交通網や、水道、電気、ガスなどのライフラインを指します。社会インフラは我々の日々の活動を支える基盤で、我々が快適に生活できる環境を作り出しています。交通網が遮断される、ライフラインが止まるなど社会インフラに障害が発生すると、我々の日常生活は大きく支障をきたします。

システムのインフラも同様です。インフラの役割はアプリケーションを快適に利用できる環境を作り出すことであり、インフラに障害が発生するとシステムは大きな支障をきたします。チケットの予約ができない、ATMを利用できない、メールを送信できない、個人情報が漏洩した……。

インフラ設計の難しさ

現在は、システムやインフラ開発の情報がたくさんあり、容易に入手できます。インフラのスキルがあまり高くない人でも、そういった情報を使えば簡単にインフラ設計ができそうに思われがちですが、それほど簡単にはできません。インフラのスキルがあまり高くないと、運用しにくいシステムになったり、稼働後のトラブルが多発するリスクが高まります。

このような事態を防ぐためには、スキルが高い技術者が設計を行う必要があります。では、どうしたらスキルの高い技術者になれるのでしょうか。つまり、どうしたらスキルの高い技術者のノウハウを効率的に学ぶことができるのでしょうか。システム化の対象範囲が飛躍的に広がり、複雑化や多様化が進む今、新しくインフラ開発に従事する人たちに、インフラ設計のノウハウを体系的に伝達することは課題です。

インフラデザインパターンの必要性と効果

そこでインフラデザインパターンの出番です。インフラデザインパターンは、インフラ技術者たちが編み出した設計方式を概念化・抽象化して名前(パターン名)を付け、その特徴や留意点を記載したものです。特にインフラについて経験の浅い技術者や、システム構築に責任を持つプロジェクトマネージャ、企業の情報システム部門でシステムの企画や導入の意思決定を行う人、ベンダーの提案や設計を評価・比較する人に向けてまとめられています。

インフラデザインパターンは、本書インフラデザインパターンの著者らが所属するNTTデータでの経験をもとにまとめられました。NTTデータでは、毎年100以上のシステムのノウハウを調査・研究してインフラデザインパターンの開発を行っており、インフラデザインパターンはこれまでに数百のプロジェクトで幅広く利用されています。実際に、⁠一般的なインフラ構成としてどんな選択肢があるのかがわかりやすかった」⁠設計の妥当性を確認することに役立った」⁠検討漏れの防止に利用することで品質を上げることができた」⁠設計検討のスピードアップに貢献した」などの声があり、約90%以上のユーザから品質向上やリスク回避、検討工数の削減などの効果があったと報告されています。

本書の特徴

本書では、要件定義において非機能要件検討などで利用できるよう、可用性、性能・拡張性、セキュリティ、運用・保守性といった非機能要件別や、クラウドコンピューティング、ネットワーク構成、ストレージ構成などのインフラ構成別にデザインパターンを解説しています。

すべてのデザインパターンには、特徴を把握しやすいように簡潔なイメージ図を掲載しました。システムに関する用語は似て非なるものが多いなか、本書を「会話ツール」として利用することで、異なるバックグラウンドを持つユーザやベンダーなどの多くの関係者が参画する要件定義において、全員が同じ認識を持ちやすくなります。関係者が同じ認識を持つことで、要件に対し適切な設計を議論でき、最適な構成を検討しやすくなります。要件定義後に環境変化などにより要件自体が変更になった場合も、要件と設計方式の関係が明確であるため、迅速に対策を検討しやすくなるでしょう。

さらに、各デザインパターンの「できること」だけでなく、⁠できないこと」「留意点」も掲載しました。これにより、要件定義といった上流工程で早期にリスクを整理しやすくなり、早期に対策を打てるようになります。また、本書を使って要件定義の結果をレビューすることで、検討結果の妥当性や検討漏れの確認にも利用できます。


囲碁や将棋では「定石」を、空手や柔道では「型」を学ぶことで、状況に応じた基本的な対応をとることができます。インフラ開発においても、インフラデザインパターンをベースとして設計することで、スキルのあるインフラ技術者が行う検討に近づくことができるでしょう。