Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

クラウド教育における動的スケーリング演習のための仮想負荷シミュレートフレームワーク

  • Be the first to comment

  • Be the first to like this

クラウド教育における動的スケーリング演習のための仮想負荷シミュレートフレームワーク

  1. 1. SIGSC 2014/01/14 @NII クラウド教育における 動的スケーリング演習のための 仮想負荷シミュレートフレームワーク 神戸大学 柗本 真佑 佐伯 幸郎 中村 匡秀
  2. 2. スケーリングの教育
  3. 3. クラウド • 様々なサービスをネットワーク越しに利用するコンピュー ティングパラダイム • Amazon Web Services, Windows Azure, Google Drive, Apple iCloud, Dropbox, Salesforce, Flickr, Twitter, MySpace, Facebook, GitHub, ・・・ • クラウドを用いた情報システムが当たり前に 2
  4. 4. クラウド教育 • IT人材だけでなくクラウド人材の育成が必須 • 「クラウド」=アンブレラターム • 様々な要素技術を理解しなければならない IaaS/PaaS/SaaS マイグレーション QoS SLA 仮想化 スケーリング DevOps SOA Web API HTML5 モバイルファースト NoSQL ビッグデータ MapReduce 3
  5. 5. スケーリング • 負荷に応じて処理能力を動的に増減させる方法 • クラウド運用・保守で重要な技術 クラウド環境 http://… Webサーバ ロードバランサ Webサーバ 物理マシン 監視・制御サーバ 4
  6. 6. スケーリング • 負荷に応じて処理能力を動的に増減させる方法 • クラウド運用・保守で重要な技術 http://… クラウド環境 Webサーバ ロードバランサ Webサーバ 物理マシン 監視・制御サーバ 5
  7. 7. スケーリング • 負荷に応じて処理能力を動的に増減させる方法 • クラウド運用・保守で重要な技術 クラウド環境 http://… Webサーバ ロードバランサ 設定 Webサーバ 物理マシン VM起動 Webサーバ 監視・制御サーバ 6
  8. 8. スケーリング • 負荷に応じて処理能力を動的に増減させる方法 • クラウド運用・保守で重要な技術 http://… クラウド環境 Webサーバ ロードバランサ Webサーバ 物理マシン Webサーバ 監視・制御サーバ 7
  9. 9. スケーリング教育 • 様々な要素技術の修得が必須 ・ 負荷試験方法 ・ HTTPプロトコル ・ リクエスト振り分け アルゴリズム ・ スケール可能なアプリ開発 ・ ステートレスなAPI設計 クラウド環境 ・ 仮想化 Webサーバ ロードバランサ Webサーバ 物理マシン ・ 状態監視API ・ VM制御API Webサーバ 監視・制御サーバ ・ ネットワークの知識 ・ サーバ管理 8
  10. 10. スケーリング演習 • 百聞は一見にしかず • 詳細は座学で行い,スケーリングの本質を演習を通じて体験させたい • スケーリングの本質とは? • 動的に負荷分散する・できること • 本質を体験するためには? 1. 2. 3. 4. 5. 6. (スケーリング環境のセットアップ) 大量のリクエストを発行 (Webサーバの負荷増大) レスポンス時間が低下 (新規Webサーバを動的に追加) レスポンス時間が改善 http://… http://… http://… Cloud 9
  11. 11. スケーリング演習の難しさ • 様々な要因によって負荷分散が期待通りに動かない • ルータ,ロードバランサ,DBサーバなどがボトルネックに • 特定の物理マシンに負荷が集中するケースも クラウド環境 Webサーバ ロードバランサ Webサーバ 物理マシン Webサーバ 監視・制御サーバ DBサーバ NAS 10
  12. 12. 初学者への教育アプローチ • 現実的で正しく理解すべきではあるが・・・ • 特にデータベースのスケーリング • 初学者への理解の妨げに • まずは事象を単純化して体験させたい • 理論と実践 11
  13. 13. 目的とアイデア • 効果的なスケーリング教育 • 特にスケーリング演習の支援 • アイデア • Webサーバに対して仮想的に高負荷時の振る舞いを模倣させる • VirtualLoadService ( VLS ) • 仕事をしているフリをするサービス Disk read … Process … Disk write … Data transfer … App. http://.../translate?text=“hello world” こんにちは世界 12
  14. 14. 目的とアイデア • 効果的なスケーリング教育 • 特にスケーリング演習の支援 • アイデア • Webサーバに対して仮想的に高負荷時の振る舞いを模倣させる • VirtualLoadService ( VLS ) • 仕事をしているフリをするサービス Zzz VLS http://.../translate?text=“hello world” null 13
  15. 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. 16. VirtualLoadService (VLS) • Webサーバ上で動くサーブレット • 仮想計算機リソース と 負荷応答モデル を持つ • リクエストを受けたら… • 仮想リソース を食べる → 負荷時の状態を模倣 • 負荷モデル に応じてsleep時間を調整する → 応答時間の低下を模倣 状態取得リクエストの場合 仮想リソース 実リソース http://.../get_cpu_usage http://.../get_disk_usage VLS http://.../get_peak_transactions 負荷モデル 15
  17. 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
  18. 18. 教育現場への適用事例 • CloudSpiral • 大阪大・神戸大主導のクラウド教育プログラム • 計9大学が参加.対象は修士1年生 • 5コマのスケーリング講義を実施 (演習2コマ) 17
  19. 19. 演習設定 現在,多言語翻訳サービスをクラウド環境上で運用している. 最近サービスの応答時間が遅いという苦情が発生している. 多言語翻訳サービスには手を加えずQoS(応答時間) を改善したい. • 演習手順: A1. 環境セットアップ クラウド環境 A3. 状態確認 VLS A2. 負荷試験 Webサーバ VLS • 設定: Webサーバ ロードバランサ B2. 設定更新 B3. 効果の確認 物理マシン Webサーバ B1. VM追加 18
  20. 20. 受講者のコメント • Pros • 「 今日の演習内容は直感的に理解しやすくとても分かりやすかった」 • 「 演習を通じてスケーリングを体感できたのは面白かった」 • 「 実際にVMを増やして効果を確認するような体験は初めてであり, 非常に面白かった」 • より高度な質問も • 「 ロードバランサへの負荷が増大した場合にスケーリング可能なのか」 • 「 数千台規模でスケールアウトを行った場合に性能は得られるのか」 • 「 自動的なスケーリングはどのように実現するのか」 19
  21. 21. 考察: ボトルネックの解決度合い • ロードバランサのボトルネック以外は解決可能 VPN接続により解決 VLSにより解決 VLS Webサーバ VLS クラウド環境 Webサーバ VLS ロードバランサ 物理マシン Webサーバ 監視・制御サーバ DBサーバ NAS 20
  22. 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

×