a lap alound cloud computing @oow tokyo 2009
DESCRIPTION
Oracle出身 Windows Azure エバンジェリストが30分で語る「丸山先生の話を聞く前におさえておきたいクラウドの基礎」 Oracle Open World 2009会場内で行う セッションの資料ですTRANSCRIPT
Shinichiro Isago, Architect Evangelist, Microsoft
“ Oracle出身 Windows Azure エバンジェリストが30分で語る
丸山先生の話を聞く前におさえておきたいクラウドの基礎
”
2009年4月24日 12:20-12:50 @OTNラウンジ
この場をお借りして30分でお話する内容
3
2
1
4
5
SaaS / PaaS / HaaS ?
クラウドOSの内部構造
Key Value ストア 対 RDBMS
設計原則のパラダイムシフト
最後にちょっとだけAzureの話
1 言葉の定義:「クラウド・コンピューティング」…といってもベンダー都合でいろいろありますが、ここでは PaaS の話に絞ります
HaaSハードウェアを提供
(CPU貸し、ディスク貸し)
PaaS開発・実行環境となるプラットフォームを提供
SaaS完成品の
ソフトウェアを提供
2 クラウドOSの基本構造:分散・仮想化技術が随所にちりばめられています
Q
u
e
u
e
ハードウェアは「ファブリックコントローラー」で仮想化し、冗長性を持たせている
Table
ロ
ード
バ
ラ
ン
サ
ー
BLOB
Key Value形式のストレージ領域。パーティションキーで分割することで高い拡張性を実現
バイナリファイルを格納する領域。分割したブロック単位で管理するためほぼ無限に拡張可能
Map Reduce的な処理用の大量一括バッチ用VM
外部からのアクセスを担うアプリケーションサーバーVM
Web Role
Worker Role
Queueを介した通信でボトルネックをつくらない
例)Windows Azure の場合
2 Elastic:簡単な設定で伸縮自在にリソースを確保できます
例)Windows Azureの環境設定ファイルで <Instances count=“4”/>とした場合の開発・デバッグ環境
2 Map Reduce:大規模分散処理に適した仕組み。状態の概念をもたない関数型言語と組み合わせが適しています
inp
ut
ou
tpu
t
Map Task1
Map Task2
Map Task3
.....
Map Task N
Reduce Task1
....
Reduce Task N
ユーザー プログラム
Map フェーズ Reduce フェーズ
出所:Google OSDI2004
2 冗長故の可用性:壊れて当然。障害を前提としたフェイルオーバーの機構をOSが持っています
データの読み出しはプライマリのみ
セカンダリノードに非同期で書き込みを行う
プライマリ障害時に昇格するセカンダリは多数決で決定
P
S
S
S
SWriteWrite
WriteWrite
AckAckAck
Ack
ReadValue Write
Ack
64
210
2
3090
135
180
225
5076
120
151
103
200
83
98
174 218
250
4046
17
r-6
r-5
r-4
r6
r5
r4
r7
数万台のサーバーとなると、それぞれのサーバーは全ノードの管理領域を把握しにくい
ノードの離脱、追加を行った際に、管理領域の変更の影響をおさえる仕組みが必要
例)Windows Azureにおけるデータ冗長化のイメージ
構造化オーバーレイ
3 Key Valueストア:分割キーによる分散が前提。スキーマを必要とせず、クラウド上のストレージとして広まりつつあります
という割り切りのもと…
CAP定理(Consistency、Availability、Partition が同時に並び立たない)において、クラウドでは拡張性と可用性を優先させる
キーと値の組を格納
キーを与えて値を得る
キーで分散
分割キーを指定しないと遅い
値の方は何を入れてもよい
スキーマを必要としない
データは正規化しない
JOINは行わない
メモリでの操作が主体
キャッシュなどにも使われる
整合性重視の利用には不向き
イベンチュアルコンシステンシー
クラウドで広まりつつあるKey Valueストアの代表的な特長
3 Key ValueストアとRDBMSは、しばらくの間クラウド側で共存することになりそうです
オンプレミスのRDBMS
クラウド上のRDBMS
クラウド上のKey Valueストア
マイクロソフトの製品ポートフォリオに見る移行シナリオの例
資産・スキルを活かしつつクラウド移行で管理を自動化
スケーラビリティが重視される部分からKey Valueに変更
一足飛びにクラウド風に移行するのは大変
1
2
SQL Server互換のインタフェース
TSQLにも対応し、整合性も重視
初期は拡張性に若干の制約
3 参考)Windows Azureのテーブルにおけるデータ格納のイメージ
PartitioningKey
Row Key
Primary Key
Rowgroup
Rowgroup
ConfId
TrackId
SessionId
ConfTitle
TrackSubject
SessionSubject
1 Null Null PDC Null Null
1 1 Null Null Cloud Compute
Null
1 1 1 Null Null Live Meeting
2 Null Null TechReady
Null Null
2 1 Null Null SQLServer 2008
Null
2 2 1 Null Null SQL Server FILESTREAM
CId ConfTitle
1 PDC
2 Tech Ready
従来のリレーショナルテーブル
Windows Azure テーブル
TId CId Track Title
1 1 Cloud Compute
1 2 SQL Server 2008
SId CId TId Session Subject
1 1 1 Live Meeting
1 2 1 SQL Server FILESTREAM
4 設計原則:クラウドの特長を活かしたスケールアウト重視の開発手法が必要とされています
ロー
ドバ
ラン
サ
ビジネスロジック
データベース
機能分割
•SOAに基づくサービス単位化
データ設計
•保守用データ定義、論理データ配置
データ分割
•パーティションスキームに従う水平分割
分散トランザクション回避
•分割したデータ間の一貫性の確保
非同期による機能分割
•分割したデータ間の一貫性の確保
キャッシュの設計
•おもに読み取りデータ向け
一貫性モデルの提供
•イベンチュアルコンシステンシーなど
その他
• RESTリソース、ドメインモデルとの対応付け
Webサーバ
N階層モデルにおけるデータベースのボトルネック
スケールアウト重視の開発手法
※詳細はアーキテクトの審美眼(萩原正義 著)参照
5 マイクロソフトは、ソフトウェア+サービスの考え方に基づき、お客様目線で現実的なクラウドの利用法をご提案しています
既存のスキルやIT資産を活用しクラウドへの拡張・連携が可能
5 使い慣れたツールやスキルをクラウドでもそのまま活かせる開発エクスペリエンスをご提供しています
5 .NETだけでなくPHPなどインターオペラビリティを重視したプラットフォームを目指しています
http://tweval.cloudapp.net/index.php↑ phpinfo() の内容が表示される
http://tweval.cloudapp.net/mix09-smarx
Azure上で動いているPHPアプリの例
5 関連情報:ご興味お持ちいただいた方は、下記リソースをあわせてご活用ください
• Azure Services Platform デベロッパーセンターhttp://msdn.microsoft.com/ja-jp/azure/
• TechDays 資料ダウンロード、ストリーミングhttp://www.microsoft.com/japan/powerpro/techdays/
• .NET未来展望台http://www.atmarkit.co.jp/fdotnet/dnfuture/
• エバンジェリストコラム@Tech Fieldershttp://www.microsoft.com/japan/powerpro/TF/column/fs_01_1.mspx
• EnterpriseZine 0からわかるWindows Azure入門講座http://enterprisezine.jp/article/detail/1306/
• Fumio Sekita’s Bloghttp://blogs.msdn.com/fumios/
• Azureの鼓動http://blogs.itmedia.co.jp/isago/
Shinichiro Isago, Architect Evangelist, Microsoft
“ Oracle出身 Windows Azure エバンジェリストが30分で語る
丸山先生の話を聞く前におさえておきたいクラウドの基礎
”