PR

原則5 運用起点の全体設計
半正常、異常時の振る舞いを考慮する

 開発したシステムを運用するのは、プロジェクトライフサイクルにおける時間軸の上では最後になる。つまり、開発が先で運用が後である。しかし、設計上は順番が逆だ。「円滑に運用できるように開発する」ために設計する。つまり、運用フェーズで生じるであろう、さまざまな課題に思いを巡らせ、全体設計に取り込む。五つめの行動原則は、運用基点の全体設計だ(図6)。

図6●スムーズに運用できるように設計する
図6●スムーズに運用できるように設計する
[画像のクリックで拡大表示]

 意識すべきは、半正常系や異常系のシステムの挙動である。半正常系とは、例えばログイン認証が3回続けて失敗したらアカウントをロックするといったもの。アカウント単位の同期化(シンクロナイゼーション)をせずにパスワード認証を設計してしまうと、ログインに4回失敗するといった想定外の事態を招く恐れがある。また異常系とは、例えばアプリケーションでトランザクション制御を実装したにもかかわらず、通信路の異常でコミットパケットがデータベースに到達しない、あるいは到達してもリソースビジーなどで処理できないといったものだ。

持続可能な運用性を組み込む

 こうした半正常系、異常系への対応は、運用フェーズに入ってから気付いたのでは手遅れとなることが多い。一度本番運用に入ると、安定稼働が強く求められるために大きな設計変更が許容されにくいからだ。

 通常、システムの要求仕様は正常系を中心に定義される。ただし、ソースコード量で比べると、正常系よりも、半正常・異常系のほうが多いのが普通だ。後付けで、そこに手を入れると、ソースコードを汚すことになり、保守性の悪化を招く。本番運用開始後の保守開発で、新たな機能の追加や改修を施す際に、品質確保に苦慮することにつながる。

 ITアーキテクトの仕事の本質は、ビジネス上のゴールを見据えて、設計の奇麗な絵を描くことではない。描く絵の中に、リリース後の運用リスクや改修時の影響範囲調査の難しさを頭に浮かべつつ、持続可能な運用性をきっちり組み込むことにある。

これからITアーキテクトを目指す人へ

 これからITアーキテクトを目指す人は、どうしたら自らの経験則を培うことができるのだろうか。これは、極めて難しい問いである。筆者の場合は、“十分な時間”があった。筆者が仕事を始めたのはオープンシステムの黎明期だったので、参考にできるものが乏しく、「自らの頭で考え、試してみることが仕事」との姿勢を貫くしかなかった。技術の発達を横目にしながら、無数の失敗を繰り返す時間があった。しかし、これからITアーキテクトを目指す人達には、恐らくそうした機会はない。技術発展に伴う専門分化の進行で、グランドデザイン全体を1人で描く機会が失われた上に、短期開発に迫られて失敗する余裕もないからだ。

 そこで、これからITアーキテクトになる人には、先人が培ってきた経験則を踏み台とし、そこから上を目指して自身の頭を働かせることを勧めたい。つまり、すべてのアーキテクチャーには適用限界があることを見抜き、その限界を打ち破る独自の実現手法を見つけていくのである。