インフラデザインパターン ── 安定稼動に導く127の設計方式

はじめに

この記事を読むのに必要な時間:およそ 1.5 分

『インフラデザインパターン─⁠─安定稼動に導く127の設計方式』より転載

はじめに

インフラデザインパターンは,インフラ開発における問題発生の抑制や生産性の向上,人材育成などを目的に,インフラ技術者たちが編み出した設計方式を概念化・抽象化して名前(パターン名)を付け,その特徴や留意点を記載したものです。特にインフラについて経験の浅い技術者(アプリケーション開発者も含む)や,システム構築に責任を持つプロジェクトマネージャ,企業の情報システム部門でシステムの企画や導入の意思決定を行う人,ベンダーの提案や設計を評価・比較する人に向けてまとめられています。

現在は,システムやインフラ開発の情報がたくさんあり,容易に入手できます。インフラのスキルがあまり高くない人でも,そういった情報を使えば簡単に開発ができそうに思われがちですが,多くの場合それほど簡単にはできません。インフラのスキルがあまり高くないと,たとえばユーザなど関係者間での意思疎通が十分にできずに運用しにくいシステムとなる(運用に多大なコストや手間がかかる)場合があります。その結果,過剰投資となるリスクや,過小要件により稼働後のトラブルが多発するリスクが高まります。

このような事態を防ぐためには,スキルが高い技術者が要件定義などの上流工程に参画することが有効です。スキルの高い技術者は,さまざまな要件に対し類似の設計を行ったことがあり,加えてさまざまな課題に対応した経験があります。スキルの高い技術者は多くの場合,それらの経験から得たノウハウを応用して効率的に検討を進めることができます。

どうしたらスキルの高い技術者のノウハウを効率的かつ俯瞰(ふかん)的に学ぶことができるのでしょうか。要件定義といった上流工程に参画できる人数は少なく,経験できる人は限られます。また単に経験を積むだけでスキルを向上させるには限界があります。システム化の対象範囲が飛躍的に広がり,複雑化や多様化が進む今,新しくインフラ開発に従事する人たちに,上流工程のノウハウを体系的に伝達することは課題です。

そういった課題を解決する方法の一つに「デザインパターン」があります。デザインパターンは,よくある課題をうまく解決するための典型的な方法です。デザインパターンで有名な本に『オブジェクト指向における再利用のためのデザインパターン』があります。この本で紹介されているデザインパターンをうまく使うことで,開発品質と生産性の向上を実現できます。このように主にソフトウェアで適用されてきたデザインパターンの手法をインフラに適用させたのが,本書で紹介するインフラデザインパターンです。

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

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

注)
Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides著/本位田真一,吉田和樹監訳『オブジェクト指向における再利用のためのデザインパターン 改訂版』SBクリエイティブクリエイティブ,1999年。4人の共著者の通称GoFGang of Fourから,⁠GoF本」⁠GoFのデザインパターン」などと呼ばれます。

本書の特徴

本書ならではのポイントとして次の点があります。

  • 全デザインパターンは特定の製品に依存していない
  • 要件定義といった上流工程で使うことを意識して構成している

1点目についてですが,本書ではインフラのデザインパターンをより概念的なものとしてまとめています。これによりインフラデザインパターンをもとにした設計は,さまざまなベンダー製品で実現できます。そのため純粋に中立的な立場で,提案や設計が要件に十分適合しているのかを検討もしくは評価・比較しやすくなります。さらに,システム業界ではさまざまな製品が移り変わりますが,そういった製品の移り変わりの影響をあまり受けず,長い間使い続けることができます。本書にはそういった特徴を持つ127のデザインパターン(119パターン+8タイプ)を紹介しています。

2点目についてですが,要件定義といった上流工程はシステムの品質に大きな影響を与えます。本書は,そういったシステム開発で重要となる要件定義工程を意識し,要件定義の品質を上げることを目指しています。

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

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

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

著者プロフィール

杉原健郎(すぎはらたけお)

1998年NTTデータ入社。10年以上にわたり,数多くの大規模ミッションクリティカルシステムのインフラ開発を担当。特命技術支援部隊を兼務した経験からノウハウの横展開の重要さを痛感。デスマーチなど不条理の撲滅を目指し,ものごとの本質と幸せを追求するようになる。好きな生き方はロック。2児のパパ,PMP(2004年~),理学修士(早稲田大学大学院卒)。


吉田一幸(よしだかずゆき)

2008年NTTデータ入社。金融機関や通信事業者向けの大規模システムにおいてインフラの設計・構築に従事。2012年より,インフラデザインパターンを始めとした,インフラの設計方法論およびパターンベース設計手法の整備・開発を担当する。


岩崎賢治(いわさきけんじ)

2010年NTTデータ入社。入社直後に担当したセキュリティシステムの構築・運用の経験から,ITILや情報セキュリティマネジメントの領域において一家言を持つ。2012年からはインフラデザインパターンを用いた設計手法の確立・整備を担当する。


三浦広志(みうらひろし)

1995年NTTデータ入社。2003年同社オープンソース開発センタ,2006年には独立行政法人情報処理推進機構(IPA)OSSセンターに非常勤研究員として参画。『Web Site Expert #31』(技術評論社)への寄稿のほか,訳書に『詳解Linuxカーネル 第1版』(オライリー・ジャパン)がある。LinuxカーネルなどのOSS開発に貢献し,2013年現在OpenStackに取り組んでいる。


吉田佐智男(よしださちお)

1987年NTT入社。オープン系システムによる基幹システム構築に黎明期より携わる。多くの成功とトラブルの経験に基づくノウハウを展開するべく,インフラデザインパターンの開発に当初から関わる。現在NTTデータ基盤システム事業本部にて先進技術調査,技術戦略策定を推進。