狠狠撸

狠狠撸Share a Scribd company logo
2009年4月24日 12:20-12:50 @OTNラウンジ




                               “   Oracle出身 Windows Azure

                                                             ”
                                   エバンジェリストが30分で語る

                                   丸山先生の話を聞く前に
                                   おさえておきたい
                                   クラウドの基礎


         Shinichiro Isago, Architect Evangelist, Microsoft
この场をお借りして30分でお话する内容

      SaaS / PaaS / HaaS ?
  1

          2 クラウドOSの内部構造



             3 Key Value ストア 対 RDBMS



           4 設計原則のパラダイムシフト


      最後にちょっとだけAzureの話
  5
1 言葉の定義:「クラウド?コンピューティング」
 …といってもベンダー都合でいろいろありますが、
 ここでは PaaS の話に絞ります



     SaaS
    完成品の
  ソフトウェアを提供

     PaaS
  開発?実行環境となる
  プラットフォームを提供


     HaaS
   ハードウェアを提供
 (CPU貸し、ディスク貸し)
2 クラウドOSの基本構造:分散?仮想化技術が
 随所にちりばめられています
 例)Windows Azure の場合          Queueを介した通信で
                              ボトルネックをつくらない
   ロ
   ー
            Web Role
   ド
   バ
                                       Key Value形式のスト
                          Q
       外部からのアクセス
   ラ
                                       レージ領域。パーティ
       を担うアプリケー
   ン
                                       ションキーで分割する
                          u    Table
       ションサーバーVM
   サ
                                       ことで高い拡張性を実現
   ー
                          e
                          u
            Worker Role
                          e            バイナリファイルを格納
       Map Reduce的な
                                       する領域。分割したブ
       処理用の大量一括
                                       ロック単位で管理するた
                               BLOB
       バッチ用VM
                                       めほぼ無限に拡張可能

       ハードウェアは「ファブリックコントローラー」で
           仮想化し、冗長性を持たせている
2 Elastic:簡単な設定で伸縮自在にリソースを
 確保できます
  例)Windows Azureの環境設定ファイルで <Instances count=“4”/>
  とした場合の開発?デバッグ環境
2 Map Reduce:大規模分散処理に適した仕組み。
 状態の概念をもたない関数型言語と組み合わせが
 適しています
                               ユーザー プログラム

             Map フェーズ                 Reduce フェーズ

                Map Task1
                                       Reduce Task1
                Map Task2




                                                       output
  input




                                            ....
                Map Task3

                       .....           Reduce Task N

                Map Task N


  出所:Google OSDI2004
2 冗長故の可用性:壊れて当然。障害を前提とした
 フェイルオーバーの機構をOSが持っています
 例)Windows Azureにおける                                     構造化オーバーレイ
   データ冗長化のイメージ
         データの読み出しはプライマリのみ                                数万台のサーバーとなると、
 ?                                                   ?
                                                         それぞれのサーバーは全ノード
         セカンダリノードに非同期で
 ?
                                                         の管理領域を把握しにくい
         書き込みを行う
                                                         ノードの離脱、追加を行った際に、
                                                     ?
         プライマリ障害時に昇格する
 ?
                                                         管理領域の変更の影響をおさえる仕
         セカンダリは多数決で決定
                                                         組みが必要
                     Ack Read
                     Value Write                                                  200
                                                                       180               210
                                                                 174                               218
                                                           151                                       225
         Ack                                                                      r7                      250
                             P                 Ack       135
               Ack                       Ack                           r6                    r-6          2
                                                         120
               S                                                                                         17
                                 Write S                           r5                        r-5
                                                          103
                     Write                                  98                                       30
                                                              90 r4                    r-4
                                                                                               40
                                                                83                           46
     S                                                              76
                                                S                                       50
                                                                             64
                   Write         Write
Key Valueストア:分割キーによる分散が前提。
3
    スキーマを必要とせず、クラウド上のストレージ
    として広まりつつあります
    CAP定理(Consistency、        クラウドで広まりつつある
                              Key Valueストアの代表的な特長
     Availability、Partition
    が同時に並び立たない)に               キーと値の組を格納
    おいて、クラウドでは拡張               キーを与えて値を得る
     性と可用性を優先させる               キーで分散
                               分割キーを指定しないと遅い
                               値の方は何を入れてもよい
                               スキーマを必要としない
                               データは正規化しない
                               JOINは行わない
                               メモリでの操作が主体
                               キャッシュなどにも使われる
                               整合性重視の利用には不向き
                               イベンチュアルコンシステンシー
     という割り切りのもと…
Key ValueストアとRDBMSは、しばらくの間
3
    クラウド側で共存することになりそうです

    マイクロソフトの製品ポートフォリオに見る移行シナリオの例



    一足飛びにクラウド風に
                       クラウド上の
     移行するのは大変
                                       2
                      Key Valueストア
                                スケーラビリティが重視される
                                 部分からKey Valueに変更

                                     SQL Server互換の
                                     インタフェース
      オンプレミスの          クラウド上の
                                     TSQLにも対応し、
        RDBMS           RDBMS
                  1                  整合性も重視
          資産?スキルを活かしつつ               初期は拡張性に
         クラウド移行で管理を自動化               若干の制約
参考)Windows Azureのテーブルにおける
3
        データ格納のイメージ

    従来のリレーショナル                                                Windows Azure テーブル
    テーブル
                                                       Partitioning       Row Key
        CId       Conf
                                                       Key
                  Title
        1         PDC
                                                              Conf    Track   Session   Conf    Track     Session
        2         Tech Ready                                  Id      Id      Id        Title   Subject   Subject
                                                              1       Null    Null      PDC     Null      Null

                                                      Row     1       1       Null      Null    Cloud     Null
              TId         CId       Track Title
                                                                                                Compute
                                                      group
                                                              1       1       1         Null    Null      Live
              1           1         Cloud Compute
                                                                                                          Meeting
                                                              2       Null    Null      Tech    Null      Null
              1           2         SQL Server 2008
                                                                                        Ready
                                                              2       1       Null      Null    SQL       Null
                                                      Row                                       Server
                                                      group                                     2008
    SId       CId             TId   Session Subject
                                                              2       2       1         Null    Null      SQL Server
                                                                                                          FILESTREAM
    1         1               1     Live Meeting
    1         2               1     SQL Server
                                    FILESTREAM
                                                                  Primary Key
4 設計原則:クラウドの特長を活かしたスケール
  アウト重視の開発手法が必要とされています

   N階層モデルにおける                  スケールアウト重視の開発手法
 データベースのボトルネック                 機能分割
                               ? SOAに基づくサービス単位化
            Web   ビジネス
            サーバ   ロジック         データ設計
                               ? 保守用データ定義、論理データ配置
                               データ分割
                         データ
                               ? パーティションスキームに従う水平分割
                         ベース
                               分散トランザクション回避
  ロードバランサ




                               ? 分割したデータ間の一貫性の確保
                               非同期による機能分割
                               ? 分割したデータ間の一貫性の確保
                               キャッシュの設計
                               ? おもに読み取りデータ向け
                               一貫性モデルの提供
                               ? イベンチュアルコンシステンシーなど
                               その他
                               ? RESTリソース、ドメインモデルとの対応付け
※詳細はアーキテクトの審美眼(萩原正義 著)参照
5 マイクロソフトは、ソフトウェア+サービスの
 考え方に基づき、お客様目線で現実的な
 クラウドの利用法をご提案しています




         既存のスキルやIT資産を活用し
         クラウドへの拡張?連携が可能
5 使い慣れたツールやスキルをクラウドでも
 そのまま活かせる開発エクスペリエンスを
 ご提供しています
5 .NETだけでなくPHPなどインターオペラビリティ
 を重視したプラットフォームを目指しています

     Azure上で動いているPHPアプリの例




 http://tweval.cloudapp.net/mix09-smarx

                                          http://tweval.cloudapp.net/index.php
                                          ↑ phpinfo() の内容が表示される
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 Fielders
   http://www.microsoft.com/japan/powerpro/TF/column/fs_01_1.mspx
 ? EnterpriseZine 0からわかるWindows Azure入門講座
   http://enterprisezine.jp/article/detail/1306/
 ? Fumio Sekita’s Blog
   http://blogs.msdn.com/fumios/
 ? Azureの鼓動
   http://blogs.itmedia.co.jp/isago/
“   Oracle出身 Windows Azure

                                                    ”
                          エバンジェリストが30分で語る

                          丸山先生の話を聞く前に
                          おさえておきたい
                          クラウドの基礎


Shinichiro Isago, Architect Evangelist, Microsoft

More Related Content

A Lap alound Cloud Computing @OOW Tokyo 2009

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