More Related Content Similar to クラウド教育における動的スケーリング演習のための仮想負荷シミュレートフレームワーク Similar to クラウド教育における動的スケーリング演習のための仮想負荷シミュレートフレームワーク (20) More from Shin Matsumoto (7) クラウド教育における動的スケーリング演習のための仮想負荷シミュレートフレームワーク3. クラウド
• 様々なサービスをネットワーク越しに利用するコンピュー
ティングパラダイム
• Amazon Web Services, Windows Azure, Google Drive, Apple iCloud,
Dropbox, Salesforce, Flickr, Twitter, MySpace, Facebook, GitHub, ・・・
• クラウドを用いた情報システムが当たり前に
2
9. スケーリング教育
• 様々な要素技術の修得が必須
・ 負荷試験方法
・ HTTPプロトコル
・ リクエスト振り分け
アルゴリズム
・ スケール可能なアプリ開発
・ ステートレスなAPI設計
クラウド環境
・ 仮想化
Webサーバ
ロードバランサ
Webサーバ
物理マシン
・ 状態監視API
・ VM制御API
Webサーバ
監視・制御サーバ
・ ネットワークの知識
・ サーバ管理
8
13. 目的とアイデア
• 効果的なスケーリング教育
• 特にスケーリング演習の支援
• アイデア
• Webサーバに対して仮想的に高負荷時の振る舞いを模倣させる
• VirtualLoadService (
VLS
)
• 仕事をしているフリをするサービス
Disk read …
Process …
Disk write …
Data transfer …
App.
http://.../translate?text=“hello world”
こんにちは世界
12
15. VirtualLoadService (VLS)
• Webサーバ上で動くサーブレット
• 仮想計算機リソース と 負荷応答モデル を持つ
• リクエストを受けたら…
• 仮想リソース を食べる → 負荷時の状態を模倣
• 負荷モデル に応じてsleep時間を調整する → 応答時間の低下を模倣
翻訳リクエストの場合
仮想リソース
http://.../translate?text=“hello world”
負荷モデル
VLS
http://.../translate?text=“It is a period
of evil war. Rebel spaceships, striking
from a hiden base, have won their …”
14
16. VirtualLoadService (VLS)
• Webサーバ上で動くサーブレット
• 仮想計算機リソース と 負荷応答モデル を持つ
• リクエストを受けたら…
• 仮想リソース を食べる → 負荷時の状態を模倣
• 負荷モデル に応じてsleep時間を調整する → 応答時間の低下を模倣
状態取得リクエストの場合
仮想リソース
実リソース
http://.../get_cpu_usage
http://.../get_disk_usage
VLS
http://.../get_peak_transactions
負荷モデル
15
17. VLSの実装例
• 仮想CPUリソース と CPU負荷モデル の実装例
1
2
3
4
VLS.CPULoadModel(workload)
CPU.threads++;
sleep(CPU.threads*workload*10);
CPU.threads--;
Zzz
• 仮想translateAPIへの適用
1
2
3
4
VLS.translate(text)
VLS.CPULoadModel(length(text));
VLS.DiskReadLoadModel(・・・);
・・・
• 仮想CPUの利用状況取得API
1
2
VLS.getCpuUsage()
return CPU.threads/CPU.maxThreads;
16
20. 受講者のコメント
• Pros
• 「 今日の演習内容は直感的に理解しやすくとても分かりやすかった」
• 「 演習を通じてスケーリングを体感できたのは面白かった」
• 「 実際にVMを増やして効果を確認するような体験は初めてであり,
非常に面白かった」
• より高度な質問も
• 「 ロードバランサへの負荷が増大した場合にスケーリング可能なのか」
• 「 数千台規模でスケールアウトを行った場合に性能は得られるのか」
• 「 自動的なスケーリングはどのように実現するのか」
19
22. 初学者への教育アプローチ
スケーリング演習の難しさ
• 現実的で正しく理解すべきではあるが・・・
• 様々な要因によって負荷分散が期待通りに動かない
• 特にデータベースのスケーリング
• ルータ,ロードバランサ,DBサーバなどがボトルネックに
• 特定の物理マシンに負荷が集中するケースも
• 初学者への理解の妨げに
• まずは事象を単純化して体験させたい
• 理論と実践
クラウド環境
Webサーバ
ロードバランサ
Webサーバ
物理マシン
Webサーバ
監視・制御サーバ
DBサーバ
NAS
22
20
教育現場への適用事例
VirtualLoadService (VLS)
• CloudSpiral
• Webサーバ上で動くサーブレット
• 大阪大・神戸大主導のクラウド教育プログラム
• 計9大学が参加.対象は修士1年生
• 仮想計算機リソース と 負荷応答モデル を持つ
• リクエストを受けたら…
• 5コマのスケーリング講義を実施 (演習2コマ)
• 仮想リソース を食べる → 負荷時の状態を模倣
• 負荷モデル に応じてsleep時間を調整する → 応答時間の低下を模倣
翻訳リクエストの場合
仮想リソース
http://.../translate?text=“hello world”
負荷モデル
VLS
http://.../translate?text=“It is a period
of evil war. Rebel spaceships, striking
from a hiden base, have won their …”
28
34