OSCの仮想化の話で、仮想化の設計フェーズとして、
(以下斜体は、OSCの
「仮想化環境の設計手法~プロのテクニック教えます~」
講師:日本仮想化技術株式会社 代表取締役兼CEO 宮原氏
の発表資料から引用)
論理設計
・要求仕様を論理システムでマッピング
・システムを機能単位で捉える
仮想化設計
・論理システムを仮想化にマッピング
・システムを仮想マシン単位で捉える
物理設計
・仮想システムを物理H/Wにマッピング
・システムのサイジングや冗長化など
とあって、とくに、目標は見える化して、1つないし2つ
(いっぱいあると、その目標間でトレードオフが起こり、
矛盾してくる)
っていう話だったけど、仮想化も、システム開発のはじめから考えると、
以下のようになってくるんだろうか・・・
■開発手法に仮想化も混ぜると・・・
(1)要求仕様
まず、機能要件を決める。
そして、非機能要件を決める際、
「機能要件のこの機能は、仮想化」という感じで、非機能要件に仮想化関連項目も設ける
(2)外部設計/構造設計
画面上の外部設計を行い、DB設計に入るが、まず、このとき、DBの配置などは、
論理的に捉えておく。
また、画面設計から、サービス設計ができ、構造設計にはいっていくが、
そのサービスは、仮想的にどこにあるかをわりふる。
こうすると、サービスが、仮想マシン単位で捉えられる
(3)詳細設計
その仮想マシン単位で捉えたものを、実際、どのマシンで行うかというのをきめる。
この時点で、外部設計と要求設計から、どのくらいの量、どのDBにアクセスするかという
トランザクション量はわかることになる。
それをもとに、マシンスペック、使用量が決められることになる。
また、DBの分散化についても、ここで考え、実施していくことになる。
つまり、外部設計フェーズでは、論理的に、論理プールの状態で考え、
詳細で物理に落とすというかんじかなあ
論理プールの大きさ、つまり、論理的にどれくらいのデータ量、トランザクションがあるのか?という部分が決まらないと、物理的に、どんなマシンをどのように割り振るかきまらない。
この「プール」→具体化というのが、今後の開発で、大きな役割を占めてくると思う
トランザクションプール→ロードバランシング
セッションプール
データベースプール
などなど。。