SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
クラウドの原理とパラダイム
- Cloud Principles and Paradigms -

     クラウドDay - 2010/04/24 –
     @kimtea & @normalian
     マイクロソフト 新宿オフィス


          わんくま同盟 東京勉強会 #46
自己紹介
• ハンドルネーム:(・∀・)キムティ♪
 – 荒浪一城(アラナミカズキ)
 – 1983年生まれ、静岡県島田市出身
 – 丸山先生が社会人を対象としたリカレント教育を目的に東京・市ヶ谷
   に設置した、稚内北星学園大学東京サテライト校を卒業
 – http://twitter.com/kimtea
• はてなダイアリー
 – 404 ないわー (・∀・)キムティ♪ Not Foundの日記
 – http://d.hatena.ne.jp/kazuki-aranami/




                  わんくま同盟 東京勉強会 #46
アジェンダ
• はじめに
 – このセッションの対象・目的、そしてスピーカーの立場
 – スタンド・アローン・コンプレックス
• クラウドの原理とパラダイム
 –   Windows Azure Platformの概要
 –   クラウドの定義
 –   クラウドをクラウドたらしめるもの
 –   データセンター間の地理的レプリケーション(Geo-Replication)
 –   CAP定理とBASE、ACIDの呪縛
 –   分散システムにおける同期(クロック)
 –   P2P技術を適用した分散相互排他アルゴリズム




                 わんくま同盟 東京勉強会 #46
このセッションの対象となる方々
• クラウド・コンピューティング
 – 一般のビジネス誌や経済誌で取り上げられるバズワード
   に関心のある方
 – その実態としてレンタルサーバーや既存のサービスのラベ
   ルを張り替えたものと、どこが違うのか疑問に感じている
   方




 ちょっと違う世界もありました!

          わんくま同盟 東京勉強会 #46
このセッションの目的
• クラウド・コンピューティング
 – あらゆる文脈で語ることができる抽象的な概念
 – 尐なくともGoogleや米・NIST(国立標準技術研究所)が、
   定義するクラウドは、スケーラブルな分散システムである
 – スケーラブルな分散システムを実現できる、その背景には
   様々な理論的な裏付けがある。
 – とりあえず動かして、それから裏側の仕組みを理解するこ
   とが重要!


    理論的な裏付けが重要

           わんくま同盟 東京勉強会 #46
スピーカーの立場
• Twitter
   – 新しい情報ネットワークによるコミュニケーション形態のひとつ
• アニメ「攻殻機動隊」の世界観の実現
   –   人間と機械        人の体が機械化したとき、自分とは何か
   –   自我同一性        ルネ・デカルト「我思う、ゆえに我あり 」
   –   スタンド・アローン・コンプレックス
   –   Twitterを「ハブ電脳」と見立てる
   –   クラウド = 分散システムである、との認識(イメージ・先入観)を、プ
       ロデュースすることができるか実験中。



       クラウド = 分散システム

                 わんくま同盟 東京勉強会 #46
スタンド・アローン・コンプレックスとは
• アニメ「攻殻機動隊」の世界
 – 攻殻機動隊の影響を映画「マトリックス」が強く受けている
 – 脳の機械化という「電脳技術」により、人の脳と脳がコン
   ピューターのように交信できる世界
 – 新たな情報ネットワークにより、独立した個人が、結果とし
   て集団的総意に基づく行動を見せる社会現象を「スタンド・
   アローン・コンプレックス」と言う
 – 孤立した個人、つまりスタンドアローン(単一ノード)であり
   ながらも、全体(複数ノード)として集団的な行動(コンプ
   レックス)をとることから、こう呼ばれる
 – まさに分散合意問題!


          わんくま同盟 東京勉強会 #46
社会での具体的な実例
• いわゆる「模倣犯」と呼ばれるもの
 – オレオレ詐欺・振り込め詐欺・連続放火
 – バタフライナイフ・ダガーナイフ
• ウェルテル効果による連鎖自殺
 – 有名人の死の直後に発生する後追い自殺
 – 練炭自殺・硫化水素自殺
• 個人に内包されている問題意識(好奇心)を刺激する
 – 情報操作や印象操作、プロパガンダ「7つの方策」
 – 満州事変、トンキン湾事件、油まみれの水鳥、精密誘導兵器、ボスニア紛争、
   ルワンダ内戦など



         行動を誘発する
             わんくま同盟 東京勉強会 #46
クラウドの原理とパラダイム
• クラウドの原理とパラダイム
 – Windows Azure Platformの概要
 – クラウドの定義と、クラウドをクラウドたらしめるもの
 – データセンター間の地理的レプリケーション(Geo-
   Replication)
 – CAP定理とBASE、ACIDの呪縛
 – 分散システムにおける同期(クロック)
 – P2P技術を適用した分散相互排他アルゴリズム




           わんくま同盟 東京勉強会 #46
Windows Azure Platformの
         概要




       わんくま同盟 東京勉強会 #46
ひとくちに「Azure(アジュール)」と言っても・・・
                                      Web Role
Windows Azure   Windows Azure コン
   Platform      ピュートサービス
                                     Worker Role

                SQL Azure データベース
                      サービス

                Windows Azure ストレー
                                        BLOB
                     ジサービス

                                        Table

                                       Queue

                                        Drive


                 わんくま同盟 東京勉強会 #46
Windows Azure コンピュートサービス
– Web Role サーバー
  • インターネットから直接アクセス可能
  • .NET FrameworkとIISがインストールされたタイプの
    Webサーバー
– Worker Role サーバー
  • インターネットから基本的には直接アクセスできない
  • .NET Frameworkのみがインストールされたタイプの
    バッチアプリケーション向けのサーバー




            わんくま同盟 東京勉強会 #46
SQL Azure データベースサービス
– オンプレミス型SQL Server 2008の改良版
– 従来のリレーショナルデータベースと同じ表形式
– スケーラブルなリレーショナルデータベース
– 見せてもらおうか、あずにゃんの性能とやらを。

Microsoft Tech・Days 2010 セッション資料&ビデオ
http://www.microsoft.com/japan/events/techdays/2010/
tech Days 2010 Japanの資料一括ダウンローダ
http://techbank.jp/Community/blogs/nora/archive/2010/04/11/26227.a
spx



                      わんくま同盟 東京勉強会 #46
Windows Azure ストレージサービス
• Windows Azure BLOB ストレージ
  – 映像や音声、文章、圧縮ファイルなど巨大なバイナリデータの格納に
    最適、よくあるFTPプロトコルではなくHTTP RESTプロトコルを用いて
    ファイルをアップロードする
• Windows Azure Table ストレージ
  – 典型的なKey-Value Store(KVS)のひとつ。複数のノード間をまたぐ
    ような処理を行うと著しく性能が务化するためPartitionKeyの設計が
    重要
• Windows Azure Queue ストレージ
  – Web Role サーバーと Worker Role サーバー間をキューにより非同
    期通信を行う場合に用いる
• Windows Azure Drive ストレージ
  – ローカルのストレージに比べ速度が遅いものの、アプリケーションから
    NTFSドライブのように見せることで、通常のAPIでアクセスが可能

                 わんくま同盟 東京勉強会 #46
それなんてAzure?
• 単に「Azure(アジュール)」だけでは、Windows Azure
  Platform全体を指しているのか、個別のサービスを指し示し
  ているのか、わかりにくく混乱を招きやすい。
• 情報が錯綜する黎明期においては、「それなんてAzure?」と
  無用な混乱を避けるためにも、Windows Azure用語の表記
  には、その正確性について最大限の配慮をした方が良い
• 例えば、公式サイトでもWindows Azure PlatformとWindows
  Azure platformと、大文字の「P」と小文字の「p」で表記が異
  なる。果たして、どちらが正しいのか?こまけぇことだが気に
  なるお・・・




               わんくま同盟 東京勉強会 #46
クラウドの定義と、クラウドを
 クラウドたらしめるもの




    わんくま同盟 東京勉強会 #46
クラウドの定義
• クラウド・コンピューティング
 – コモディティ化した廉価なコンピューターリソース
 – スケールアウトの技術を使って並列化し、規模の
   経済性を確保
 – 動的なリソースの割り当てという、プロビジョニン
   グの仕組み
 – 保守運用の手間を省く
• これら「クラウドの要件」が揃うことで、はじめ
  て圧倒的なコスト削減が実現可能となる。

         わんくま同盟 東京勉強会 #46
スケールアウトの技術(分散データベース)
•   Google BigTable
•   Amazon Dynamo / SimpleDB
•   Oracle Coherence
•   IBM WebSphere eXtreme Scale
•   Windows Azure Table ストレージ(Microsoft)
•   Yahoo! Research PNUTS/Sherpa
•   Apache Cassandra(Facebook、Twitter、RackSpace)
•   kumofs(えとらぼ)
•   ROMA(楽天)
•   Tokyo Cabinet / Tokyo Tyrant(mixi)
•   Flare(グリー)
•   Kai(NTT未来ねっと研究所)
                       わんくま同盟 東京勉強会 #46
クラウドをクラウドたらしめるもの
• ファブリックコントローラー(Fabric Controller)
  – Windows Azure Platformでのプロビジョニングを担当
• プロビジョニング
  – トラフィックの流量によって、キャパシティー(受け入れ可能
    な能力)にあわせてインスタンスを動的に増減させること。
  – Elastic(エラスティック):伸縮性のある・弾力性のある
• スケールアウトの技術でコモディティ化したサーバー
  を並列化できても、その運用管理が大変に。
• これらの前提条件として、「仮想化」がある!!



               わんくま同盟 東京勉強会 #46
ファブリックコントローラーの仕組み
• ノードの配置というプロビジョニングの部分
 – 分散ハッシュテーブル(DHT)
• ノードの存在をネットワーク上に通知し、分散化した
  ディレクトリサービスを実現
 – Decentralized Object Location and Routing (DOLR)
• P2Pクラスタ(首藤先生とか、そのあたり)に期待!
 – 動的に増減させるファブリックコントローラーの謎解きが、
   仮想化(自動化や効率化)の文脈において重要
 – Towards a Common API for Structured Peer-to-Peer
   Overlays
 – http://oceanstore.cs.berkeley.edu/publications/papers/pdf/iptps03-
   api.pdf
                       わんくま同盟 東京勉強会 #46
クラウドをクラウドたらしめるプロビジョニング
• AppFabric
  – プロビジョニングを司るファブリックコントローラー
    と、Webアプリケーション基盤である.NET
    Servicesを統合したもの
  – Windows Azure AppFabricとWindows Server
    AppFabricの2つ




               わんくま同盟 東京勉強会 #46
AppFabric
• Windows Azure AppFabric
  – オンプレミスシステムやWindows Azure Platform上のシ
    ステムに接続するための機能を提供
• Windows Server AppFabric
  – Windows Server 2008 RC2向けに提供されるIIS上の
    ファブリックコントローラー
• AppFabricの綴りを間違えやすいので、注意が必要。
• しかし、このようにプロビジョニングの仕組みまで兹
  ね備えたプラットフォームは尐ないのが実情。



                わんくま同盟 東京勉強会 #46
データセンター間の地理的
 レプリケーション(Geo-
   Replication)



    わんくま同盟 東京勉強会 #46
データセンター間の地理的レプリケーション(Geo-Replication)

• Windows Azure ストレージサービス
 – データセンター間の地理的レプリケーション(Geo-
   Replication)
 – ユーザーの位置情報(Geo-Location)により実現
• 災害やテロなどの不測の事態により、事業の継続が
  困難に陥る可能性があり、それらの予防的措置とし
  て「ディザスタリカバリー」がある。




             わんくま同盟 東京勉強会 #46
ディザスタリカバリー
• Windows Azure ストレージサービスでは、CDNサー
  ビスにより北米・アジア・EUなどの各地域ごとのデー
  タセンター間で「地理的レプリケーション(Geo-
  Replication)」を提供している。




とあるコンサルタントのつぶやき : Part 2. Windows Azure Platform 概要 その1
http://blogs.msdn.com/nakama/archive/2010/01/14/windows-azure-platform-1.aspx


                                  わんくま同盟 東京勉強会 #46
継続企業(ゴーイングコンサーン)
• 一般的に企業は、その企業が継続するという
  基礎的前提の上に成り立っている
• 情報を提供された者が適切な判断と意志決
  定ができるように、経済活動を記録・伝達する
  「会計」の世界においては、これら要請とも言
  うべき基礎的前提を「会計公準」と呼ぶ。
• 公準=形式的または実質的な前提



        わんくま同盟 東京勉強会 #46
継続企業とBCP(業務継続計画)
• 会計公準は、企業実体・継続企業・貨幣的評価の3
  つ公準(前提)によって構成される
• このうち「継続企業の公準」では、企業は永遠に継続
  するもの、すなわち「継続企業(ゴーイングコンサー
  ン)」であると仮定している
• このような考えから、企業は事業を継続する社会的
  使命と責任を帯びているとされ、いわゆる「BCP(業
  務継続計画)」を策定する動きがある




         わんくま同盟 東京勉強会 #46
CAP定理とBASE、ACIDの
      呪縛




     わんくま同盟 東京勉強会 #46
CAP定理とBASE、ACIDの呪縛
• トランザクションとは、「取引」を意味し、相手とのやりとりを通
  じて、最終的に「合意」に至るまでの一連のプロセス(処理単
  位)を指す
• また、トランザクションは、そのプロセスがやりとりする範囲
  (処理単位)が、成功または失敗のどちらか一方で終わる、と
  いうオールオアナッシングの考えに基づいている
• 典型的なトランザクションは、リレーショナルデータベースにお
  ける銀行口座やオークションなどの事例モデルである
• これらは、即時応答性の要求される「ACIDトランザクション
  (フラットトランザクション)」と呼ばれるタイプのトランザクショ
  ンである



            わんくま同盟 東京勉強会 #46
ACIDトランザクション
• 即時応答性の要求されるACIDトランザクションは、銀行口座
  やオークションなどの事例モデルでは有効だが、インターネッ
  トの商取引モデルを描くには限界がある
• ショッピングサイトでの買い物も「取引」であり、最終的に商品
  が消費者の手元に到着するまで数日かかるという「合意」に
  至るまでの、一連のプロセスもまたトランザクションである
• Eric Brewer(エリック・ブリューワー)のCAP定理
 –   数学的に証明された「定理」ではない
 –   Consistency(一貫性、コンシステンシー)
 –   Availability(可用性、アベイラビリティー)
 –   Partition-tolerance(分割または分散耐性、パーティショントレランス)
 –   ACIDな共有システムでは、上記のうち2つを選択する必要がある


                  わんくま同盟 東京勉強会 #46
BASEトランザクション
• インターネットの商取引のような事例をモデルにすると、トラン
  ザクションの処理単位が数日に渡ることがある。これのような
  トランザクションを「BASEトランザクション(分散トランザクショ
  ン)」と呼ぶ。
• Eric Brewer(エリック・ブリューワー)のBASE
   – Basically Available(ベイシカリーアベイラブル)
   – Soft-state(ソフトステイト)
   – Eventual Consistency(イベンチュアルコンシステンシー)
       • 結果整合性、いつか整合性がとれる
   – Towards Robust Distributed Systems
  –   http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf




                                わんくま同盟 東京勉強会 #46
トランザクションモデル
• グローバルトランザクション
  – 複数のリソースにまたがるトランザクション
• ローカルトランザクション
  – 単一リソース内のトランザクション
• グローバルトランザクションのさらなる分類
  – 2つの異なる独立したデータベースにそれぞれサブトラン
    ザクションがはしるトランザクションを「入れ子トランザク
    ション」
  – 同一の分散データベース内の論理的に分割不可能なサブ
    トランザクションがはしるトランザクションを「分散トランザク
    ション」


            わんくま同盟 東京勉強会 #46
入れ子トランザクション
• 2つの異なる独立したデータベースとは?
• 例えば、海外旅行の際に、航空機のチケットとホテ
  ルの部屋を同時に予約した場合に、航空会社の
  データベースとホテル会社はそれぞれデータベース
  を有している
• これら個別の独立したデータベースが連携している
  際に、それぞれのデータベースごとに、サブトランザ
  クションがはしることになる




         わんくま同盟 東京勉強会 #46
分散トランザクション
• Google App Engineでの分散トランザクション
  – 複数のEntity Groupをまたぐ処理、論理的に分割不可能な処理単位
  – 冪等(べきとう、 idempotent)な処理
     • 何度繰り返し処理を行っても結果が同じである
     • ユニーク制約とトランザクションの合成
  – Exactly Once
     • 最大一回だけ成功する処理を無限に繰り返す、いずれ成功する
     • 冪等(べきとう、 idempotent)な処理とTask Queue
  – BASE Transaction
     • 自分を変更後、相手の変更を確実に一度だけ適用
     • read-modify-writeとExactly Onceのトランザクションを合成する
  – Transaction Puzzlers(@ashigeru)
    http://ashigeru.com/ajn-source/ajn4-arakawa.ppt




                                      わんくま同盟 東京勉強会 #46
入れ子と分散トランザクションの違い
• 入れ子トランザクションと分散トランザクションの差異
  は微妙であると思われがちであるが、重要である。
• 分散トランザクションの問題は、データのロック、トラ
  ンザクション全体のコミット、そして分散相互排他ア
  ルゴリズムが必要となる点
• ローカルトランザクションとは、従来までのリレーショ
  ナルデータベースなどの即時応答性の要求される
  ACIDトランザクションのこと




          わんくま同盟 東京勉強会 #46
分散システムにおける同期(クロック)
• 分散システムでは、各ノード(個別サーバー)間で内
  部的な一貫性を保ち、外部に対しては整合性を保た
  なければならない
• 何らかの方法でシステムが「グローバルな状態」を把
  握しておく必要がある。これら各ノード間の協調、す
  なわち「同期」の問題が生ずる




         わんくま同盟 東京勉強会 #46
論理クロックと物理クロック
• これら同期アルゴリズムを慣習として、「論理
  クロック(logical clock)」と呼ぶ。
• クロックには、論理クロックと物理クロックがあ
  り、物理クロックとは、腕時計や壁掛け時計の
  ような日常生活で用いる「時計」のことである。




         わんくま同盟 東京勉強会 #46
レスリー・ランポートの論理クロック
• コンピューターシステムにおける「時間」は、内部的
  な一貫性、すなわち「同期」が保たれていれば良い
  のであって、必ずしも物理クロックと同じ時を刻んで
  いる必要性はない
• 分散システムにおいては、各ノード間の「同期」が本
  質ではなく、メッセージをやり取りする、一連の協調
  活動の「全順序性」であることを、レスリー・ランポー
  トは1978年のクロック同期に関する論文で示した。




          わんくま同盟 東京勉強会 #46
Vector Clock
• 分散システムにおける「グローバルな状態」すなわち、
  内部的な一貫性を知るための「論理クロック」は、各
  ノード間の因果性(結びつき)を把握できないために
  「Vector Clock」が提案される
• このVector Clockのひとつである「Interval Tree
  Clocks」をApache Cassandraでは実装しようと試み
  ている
• 多くの分散ファイルシステムが苦手とする削除にお
  いて、「廃棄(Tombstones)の有効期間」を設定し、
  Gossipプロトコルにより伝播させる


             わんくま同盟 東京勉強会 #46
P2P技術を適用した分散
相互排他アルゴリズム




   わんくま同盟 東京勉強会 #46
P2Pと複雑ネットワーク
• Vector ClockからP2Pへ
  – Vector Clockは、因果性の制約が守られている(お互いに
    結びついている)ときのみに、メッセージの配信(やりとり)
    ができる。このため、これらは次第に通信の問題へと変化
    していき、P2Pのモデルが提起される。
• 複雑ネットワーク
  – 六次の隔たり:人は自分の知り合いを6人以上介
    すと世界中の人々と間接的な知り合いになれる、
    という仮説。P2Pにおける「経路長」に相当
  – ランダムグラフによる複雑ネットワークを応用した
    理論。

              わんくま同盟 東京勉強会 #46
分散相互排他アルゴリズム
• 分散システムにおいて、「グローバルな状態」を知るための同
  期アルゴリズムには、ブリー選任アルゴリズム、障害性に考
  慮した円形状のリングアルゴリズム、そして単一障害点
  (SPOF)をなくすという観点の分散相互排他アルゴリズムな
  どが考案されている
• 分散相互排他アルゴリズムでは、整合性モデルとしてBASE
  に基づくEventually Consistency(イベンチュアルコンシステ
  ンシー、結果整合性)を適用し、遅延を許容する
• この考えを適用した、クラウド基盤ではレイテンシーが問題に
  なる。このため、高速な光ファイバー、距離の近いデータセン
  ター、そしてキャッシュを取り入れたCDNサービスを組み合わ
  せなければ解決することはできない
• 例:Google Public DNS、Google Fiber for Communities、Akamai

                      わんくま同盟 東京勉強会 #46
P2P技術を適用した分散相互排他アルゴリズム
• Google
  –   Paxosプロトコル
  –   分散トランザクションマネージャー「Chubby」と「Google Megastore」
  –   Microsoftのレスリー・ランポートがPaxosのオリジナル特許を保持
  –   Google App Engineで2009年9月22日にGoogle Megastoreへ移行
• Oracle Coherence
  – TCMPプロトコル
• Apache Hadoopファミリー
   – Zookeeper:Zabプロトコル (同一のデータセンター内に限る)
• Windows Azure
  – ChordプロトコルとPastryプロトコルを掛け合わせた
  – 両方向版Chordプロトコルとでも呼ぶべき改良版


                     わんくま同盟 東京勉強会 #46
分散コンピューティングの落とし穴
        (Fallacies of Distributed Computing)
• ネットワークは信頼できる(The network is reliable)
• レイテンシーはゼロである(Latency is zero)
• 帯域幅は無限である(Bandwidth is infinite)
• ネットワークはセキュアである(The network is secure)
• ネットワーク構成は変化せず一定である(Topology doesn‘t
  change)
• 管理者は1人である(There is one administrator)
• トランスポートコストはゼロである(Transport cost is zero)
• ネットワークは均質である(The network is homogeneous)

     分散システムは、ネットワークが課題

                  わんくま同盟 東京勉強会 #46
参加者募集のお知らせ
• Apache CassandraのWiki翻訳中
 – 金銭的な報酬とか一切ないけど、参加者募集
 – 興味のある分野を翻訳ついでに勉強する感じ
 – http://wiki.apache.org/cassandra/FrontPage_JP
• 同時に募集中
 – nosql-ja
 – http://groups.google.com/group/nosql-ja
 – Hadoopユーザー会
 – http://groups.google.co.jp/group/hadoop-jp


                   わんくま同盟 東京勉強会 #46
参考文献
• とあるコンサルタントのつぶやき
  – http://blogs.msdn.com/nakama/
• 財務会計論
  – http://www.amazon.co.jp/dp/4495141937/
• 分散システム 原理とパラダイム
  – http://www.amazon.co.jp/dp/4894714981




                 わんくま同盟 東京勉強会 #46
ご静聴、Azaas!タイムラインのみんなに感謝!




    http://twitter.com/kimtea/status/10012523378

                   わんくま同盟 東京勉強会 #46

Weitere ähnliche Inhalte

Was ist angesagt?

2014 01-11-tdc-6th-anniversary
2014 01-11-tdc-6th-anniversary2014 01-11-tdc-6th-anniversary
2014 01-11-tdc-6th-anniversary
Chieko Aihara
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
Yoshinori Matsunobu
 
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
Shin Takeuchi
 
とあるアプリの開発運用(トラブルシュート)
とあるアプリの開発運用(トラブルシュート)とあるアプリの開発運用(トラブルシュート)
とあるアプリの開発運用(トラブルシュート)
Takafumi ONAKA
 

Was ist angesagt? (20)

MongoDB
MongoDBMongoDB
MongoDB
 
Unityのバックエンドに
ConoHaオブジェクトストレージ を使う
Unityのバックエンドに
ConoHaオブジェクトストレージ を使うUnityのバックエンドに
ConoHaオブジェクトストレージ を使う
Unityのバックエンドに
ConoHaオブジェクトストレージ を使う
 
2014 01-11-tdc-6th-anniversary
2014 01-11-tdc-6th-anniversary2014 01-11-tdc-6th-anniversary
2014 01-11-tdc-6th-anniversary
 
Kof2017 シラサギ導入
Kof2017 シラサギ導入Kof2017 シラサギ導入
Kof2017 シラサギ導入
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
//publish/ MSPTutorial 応用編
//publish/ MSPTutorial 応用編//publish/ MSPTutorial 応用編
//publish/ MSPTutorial 応用編
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
利益はデータベースの中にあった!
利益はデータベースの中にあった!利益はデータベースの中にあった!
利益はデータベースの中にあった!
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
ActiveRecord::Enumのススメ
ActiveRecord::EnumのススメActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
 
便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips
 
とあるアプリの開発運用(トラブルシュート)
とあるアプリの開発運用(トラブルシュート)とあるアプリの開発運用(トラブルシュート)
とあるアプリの開発運用(トラブルシュート)
 
職場で使用しているOSSの開発に参加してみた!
職場で使用しているOSSの開発に参加してみた!職場で使用しているOSSの開発に参加してみた!
職場で使用しているOSSの開発に参加してみた!
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
 

Ähnlich wie Cloud principles and paradigms kimtea-2010-04-24

Intro jazuggirls 20120125
Intro jazuggirls 20120125Intro jazuggirls 20120125
Intro jazuggirls 20120125
Saori Ando
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
Masao Takaku
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
Microsoft
 
Windows Azure for PHP Developers
Windows Azure for PHP DevelopersWindows Azure for PHP Developers
Windows Azure for PHP Developers
fumios
 
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようVsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
mizusawa
 
インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!
インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!
インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!
満徳 関
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 

Ähnlich wie Cloud principles and paradigms kimtea-2010-04-24 (20)

わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
Fcp
FcpFcp
Fcp
 
はじめての Azure 開発
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発
 
エンジニア勉強会20140424
エンジニア勉強会20140424エンジニア勉強会20140424
エンジニア勉強会20140424
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
Intro jazuggirls 20120125
Intro jazuggirls 20120125Intro jazuggirls 20120125
Intro jazuggirls 20120125
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
Windows Azure for PHP Developers
Windows Azure for PHP DevelopersWindows Azure for PHP Developers
Windows Azure for PHP Developers
 
クラウドことはじめ
クラウドことはじめクラウドことはじめ
クラウドことはじめ
 
クラウド座談会資料
クラウド座談会資料クラウド座談会資料
クラウド座談会資料
 
XDev2010 WindowsAzure
XDev2010 WindowsAzureXDev2010 WindowsAzure
XDev2010 WindowsAzure
 
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようVsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
 
インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!
インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!
インストールマニアックス5中間セミナー Windows Azureって何? インストールする前に相手を知ろう!
 
くまあず Nchikita 140628-2
くまあず Nchikita 140628-2くまあず Nchikita 140628-2
くまあず Nchikita 140628-2
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 

Mehr von Kazuki Aranami

ソフトウェア開発法3
ソフトウェア開発法3ソフトウェア開発法3
ソフトウェア開発法3
Kazuki Aranami
 
ソフトウェア開発法2
ソフトウェア開発法2ソフトウェア開発法2
ソフトウェア開発法2
Kazuki Aranami
 
Ns総合演習 ソフトウェア開発概論
Ns総合演習 ソフトウェア開発概論Ns総合演習 ソフトウェア開発概論
Ns総合演習 ソフトウェア開発概論
Kazuki Aranami
 
分散システムにおけるUUID(汎用一意識別子)の利用拡大
分散システムにおけるUUID(汎用一意識別子)の利用拡大分散システムにおけるUUID(汎用一意識別子)の利用拡大
分散システムにおけるUUID(汎用一意識別子)の利用拡大
Kazuki Aranami
 
法学入門 資金決済法
法学入門 資金決済法法学入門 資金決済法
法学入門 資金決済法
Kazuki Aranami
 
法学入門 日本経済新聞電子版 免責規定編
法学入門 日本経済新聞電子版 免責規定編法学入門 日本経済新聞電子版 免責規定編
法学入門 日本経済新聞電子版 免責規定編
Kazuki Aranami
 
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudクラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloud
Kazuki Aranami
 
20110924静岡イベント
20110924静岡イベント20110924静岡イベント
20110924静岡イベント
Kazuki Aranami
 
20110926 クラウドカンファレンス静岡
20110926 クラウドカンファレンス静岡20110926 クラウドカンファレンス静岡
20110926 クラウドカンファレンス静岡
Kazuki Aranami
 
20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing
Kazuki Aranami
 
情報処理の高度化等に対処するための刑法等の一部を改正する法律案
情報処理の高度化等に対処するための刑法等の一部を改正する法律案情報処理の高度化等に対処するための刑法等の一部を改正する法律案
情報処理の高度化等に対処するための刑法等の一部を改正する法律案
Kazuki Aranami
 
クラウドの原理とパラダイム 第一章
クラウドの原理とパラダイム 第一章クラウドの原理とパラダイム 第一章
クラウドの原理とパラダイム 第一章
Kazuki Aranami
 

Mehr von Kazuki Aranami (17)

ソフトウェア開発法3
ソフトウェア開発法3ソフトウェア開発法3
ソフトウェア開発法3
 
ソフトウェア開発法2
ソフトウェア開発法2ソフトウェア開発法2
ソフトウェア開発法2
 
Project erp
Project erpProject erp
Project erp
 
Project erp
Project erpProject erp
Project erp
 
Ns総合演習 ソフトウェア開発概論
Ns総合演習 ソフトウェア開発概論Ns総合演習 ソフトウェア開発概論
Ns総合演習 ソフトウェア開発概論
 
ERP FAS DESIGN
ERP FAS DESIGNERP FAS DESIGN
ERP FAS DESIGN
 
分散システムにおけるUUID(汎用一意識別子)の利用拡大
分散システムにおけるUUID(汎用一意識別子)の利用拡大分散システムにおけるUUID(汎用一意識別子)の利用拡大
分散システムにおけるUUID(汎用一意識別子)の利用拡大
 
法学入門 資金決済法
法学入門 資金決済法法学入門 資金決済法
法学入門 資金決済法
 
法学入門 日本経済新聞電子版 免責規定編
法学入門 日本経済新聞電子版 免責規定編法学入門 日本経済新聞電子版 免責規定編
法学入門 日本経済新聞電子版 免責規定編
 
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudクラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloud
 
20110924静岡イベント
20110924静岡イベント20110924静岡イベント
20110924静岡イベント
 
20110926 クラウドカンファレンス静岡
20110926 クラウドカンファレンス静岡20110926 クラウドカンファレンス静岡
20110926 クラウドカンファレンス静岡
 
20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing
 
情報処理の高度化等に対処するための刑法等の一部を改正する法律案
情報処理の高度化等に対処するための刑法等の一部を改正する法律案情報処理の高度化等に対処するための刑法等の一部を改正する法律案
情報処理の高度化等に対処するための刑法等の一部を改正する法律案
 
複雑ネットワークとP2Pネットワーク
複雑ネットワークとP2Pネットワーク複雑ネットワークとP2Pネットワーク
複雑ネットワークとP2Pネットワーク
 
クラウドの原理とパラダイム 第一章
クラウドの原理とパラダイム 第一章クラウドの原理とパラダイム 第一章
クラウドの原理とパラダイム 第一章
 
CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Cloud principles and paradigms kimtea-2010-04-24

  • 1. クラウドの原理とパラダイム - Cloud Principles and Paradigms - クラウドDay - 2010/04/24 – @kimtea & @normalian マイクロソフト 新宿オフィス わんくま同盟 東京勉強会 #46
  • 2. 自己紹介 • ハンドルネーム:(・∀・)キムティ♪ – 荒浪一城(アラナミカズキ) – 1983年生まれ、静岡県島田市出身 – 丸山先生が社会人を対象としたリカレント教育を目的に東京・市ヶ谷 に設置した、稚内北星学園大学東京サテライト校を卒業 – http://twitter.com/kimtea • はてなダイアリー – 404 ないわー (・∀・)キムティ♪ Not Foundの日記 – http://d.hatena.ne.jp/kazuki-aranami/ わんくま同盟 東京勉強会 #46
  • 3. アジェンダ • はじめに – このセッションの対象・目的、そしてスピーカーの立場 – スタンド・アローン・コンプレックス • クラウドの原理とパラダイム – Windows Azure Platformの概要 – クラウドの定義 – クラウドをクラウドたらしめるもの – データセンター間の地理的レプリケーション(Geo-Replication) – CAP定理とBASE、ACIDの呪縛 – 分散システムにおける同期(クロック) – P2P技術を適用した分散相互排他アルゴリズム わんくま同盟 東京勉強会 #46
  • 4. このセッションの対象となる方々 • クラウド・コンピューティング – 一般のビジネス誌や経済誌で取り上げられるバズワード に関心のある方 – その実態としてレンタルサーバーや既存のサービスのラベ ルを張り替えたものと、どこが違うのか疑問に感じている 方 ちょっと違う世界もありました! わんくま同盟 東京勉強会 #46
  • 5. このセッションの目的 • クラウド・コンピューティング – あらゆる文脈で語ることができる抽象的な概念 – 尐なくともGoogleや米・NIST(国立標準技術研究所)が、 定義するクラウドは、スケーラブルな分散システムである – スケーラブルな分散システムを実現できる、その背景には 様々な理論的な裏付けがある。 – とりあえず動かして、それから裏側の仕組みを理解するこ とが重要! 理論的な裏付けが重要 わんくま同盟 東京勉強会 #46
  • 6. スピーカーの立場 • Twitter – 新しい情報ネットワークによるコミュニケーション形態のひとつ • アニメ「攻殻機動隊」の世界観の実現 – 人間と機械 人の体が機械化したとき、自分とは何か – 自我同一性 ルネ・デカルト「我思う、ゆえに我あり 」 – スタンド・アローン・コンプレックス – Twitterを「ハブ電脳」と見立てる – クラウド = 分散システムである、との認識(イメージ・先入観)を、プ ロデュースすることができるか実験中。 クラウド = 分散システム わんくま同盟 東京勉強会 #46
  • 7. スタンド・アローン・コンプレックスとは • アニメ「攻殻機動隊」の世界 – 攻殻機動隊の影響を映画「マトリックス」が強く受けている – 脳の機械化という「電脳技術」により、人の脳と脳がコン ピューターのように交信できる世界 – 新たな情報ネットワークにより、独立した個人が、結果とし て集団的総意に基づく行動を見せる社会現象を「スタンド・ アローン・コンプレックス」と言う – 孤立した個人、つまりスタンドアローン(単一ノード)であり ながらも、全体(複数ノード)として集団的な行動(コンプ レックス)をとることから、こう呼ばれる – まさに分散合意問題! わんくま同盟 東京勉強会 #46
  • 8. 社会での具体的な実例 • いわゆる「模倣犯」と呼ばれるもの – オレオレ詐欺・振り込め詐欺・連続放火 – バタフライナイフ・ダガーナイフ • ウェルテル効果による連鎖自殺 – 有名人の死の直後に発生する後追い自殺 – 練炭自殺・硫化水素自殺 • 個人に内包されている問題意識(好奇心)を刺激する – 情報操作や印象操作、プロパガンダ「7つの方策」 – 満州事変、トンキン湾事件、油まみれの水鳥、精密誘導兵器、ボスニア紛争、 ルワンダ内戦など 行動を誘発する わんくま同盟 東京勉強会 #46
  • 9. クラウドの原理とパラダイム • クラウドの原理とパラダイム – Windows Azure Platformの概要 – クラウドの定義と、クラウドをクラウドたらしめるもの – データセンター間の地理的レプリケーション(Geo- Replication) – CAP定理とBASE、ACIDの呪縛 – 分散システムにおける同期(クロック) – P2P技術を適用した分散相互排他アルゴリズム わんくま同盟 東京勉強会 #46
  • 10. Windows Azure Platformの 概要 わんくま同盟 東京勉強会 #46
  • 11. ひとくちに「Azure(アジュール)」と言っても・・・ Web Role Windows Azure Windows Azure コン Platform ピュートサービス Worker Role SQL Azure データベース サービス Windows Azure ストレー BLOB ジサービス Table Queue Drive わんくま同盟 東京勉強会 #46
  • 12. Windows Azure コンピュートサービス – Web Role サーバー • インターネットから直接アクセス可能 • .NET FrameworkとIISがインストールされたタイプの Webサーバー – Worker Role サーバー • インターネットから基本的には直接アクセスできない • .NET Frameworkのみがインストールされたタイプの バッチアプリケーション向けのサーバー わんくま同盟 東京勉強会 #46
  • 13. SQL Azure データベースサービス – オンプレミス型SQL Server 2008の改良版 – 従来のリレーショナルデータベースと同じ表形式 – スケーラブルなリレーショナルデータベース – 見せてもらおうか、あずにゃんの性能とやらを。 Microsoft Tech・Days 2010 セッション資料&ビデオ http://www.microsoft.com/japan/events/techdays/2010/ tech Days 2010 Japanの資料一括ダウンローダ http://techbank.jp/Community/blogs/nora/archive/2010/04/11/26227.a spx わんくま同盟 東京勉強会 #46
  • 14. Windows Azure ストレージサービス • Windows Azure BLOB ストレージ – 映像や音声、文章、圧縮ファイルなど巨大なバイナリデータの格納に 最適、よくあるFTPプロトコルではなくHTTP RESTプロトコルを用いて ファイルをアップロードする • Windows Azure Table ストレージ – 典型的なKey-Value Store(KVS)のひとつ。複数のノード間をまたぐ ような処理を行うと著しく性能が务化するためPartitionKeyの設計が 重要 • Windows Azure Queue ストレージ – Web Role サーバーと Worker Role サーバー間をキューにより非同 期通信を行う場合に用いる • Windows Azure Drive ストレージ – ローカルのストレージに比べ速度が遅いものの、アプリケーションから NTFSドライブのように見せることで、通常のAPIでアクセスが可能 わんくま同盟 東京勉強会 #46
  • 15. それなんてAzure? • 単に「Azure(アジュール)」だけでは、Windows Azure Platform全体を指しているのか、個別のサービスを指し示し ているのか、わかりにくく混乱を招きやすい。 • 情報が錯綜する黎明期においては、「それなんてAzure?」と 無用な混乱を避けるためにも、Windows Azure用語の表記 には、その正確性について最大限の配慮をした方が良い • 例えば、公式サイトでもWindows Azure PlatformとWindows Azure platformと、大文字の「P」と小文字の「p」で表記が異 なる。果たして、どちらが正しいのか?こまけぇことだが気に なるお・・・ わんくま同盟 東京勉強会 #46
  • 17. クラウドの定義 • クラウド・コンピューティング – コモディティ化した廉価なコンピューターリソース – スケールアウトの技術を使って並列化し、規模の 経済性を確保 – 動的なリソースの割り当てという、プロビジョニン グの仕組み – 保守運用の手間を省く • これら「クラウドの要件」が揃うことで、はじめ て圧倒的なコスト削減が実現可能となる。 わんくま同盟 東京勉強会 #46
  • 18. スケールアウトの技術(分散データベース) • Google BigTable • Amazon Dynamo / SimpleDB • Oracle Coherence • IBM WebSphere eXtreme Scale • Windows Azure Table ストレージ(Microsoft) • Yahoo! Research PNUTS/Sherpa • Apache Cassandra(Facebook、Twitter、RackSpace) • kumofs(えとらぼ) • ROMA(楽天) • Tokyo Cabinet / Tokyo Tyrant(mixi) • Flare(グリー) • Kai(NTT未来ねっと研究所) わんくま同盟 東京勉強会 #46
  • 19. クラウドをクラウドたらしめるもの • ファブリックコントローラー(Fabric Controller) – Windows Azure Platformでのプロビジョニングを担当 • プロビジョニング – トラフィックの流量によって、キャパシティー(受け入れ可能 な能力)にあわせてインスタンスを動的に増減させること。 – Elastic(エラスティック):伸縮性のある・弾力性のある • スケールアウトの技術でコモディティ化したサーバー を並列化できても、その運用管理が大変に。 • これらの前提条件として、「仮想化」がある!! わんくま同盟 東京勉強会 #46
  • 20. ファブリックコントローラーの仕組み • ノードの配置というプロビジョニングの部分 – 分散ハッシュテーブル(DHT) • ノードの存在をネットワーク上に通知し、分散化した ディレクトリサービスを実現 – Decentralized Object Location and Routing (DOLR) • P2Pクラスタ(首藤先生とか、そのあたり)に期待! – 動的に増減させるファブリックコントローラーの謎解きが、 仮想化(自動化や効率化)の文脈において重要 – Towards a Common API for Structured Peer-to-Peer Overlays – http://oceanstore.cs.berkeley.edu/publications/papers/pdf/iptps03- api.pdf わんくま同盟 東京勉強会 #46
  • 21. クラウドをクラウドたらしめるプロビジョニング • AppFabric – プロビジョニングを司るファブリックコントローラー と、Webアプリケーション基盤である.NET Servicesを統合したもの – Windows Azure AppFabricとWindows Server AppFabricの2つ わんくま同盟 東京勉強会 #46
  • 22. AppFabric • Windows Azure AppFabric – オンプレミスシステムやWindows Azure Platform上のシ ステムに接続するための機能を提供 • Windows Server AppFabric – Windows Server 2008 RC2向けに提供されるIIS上の ファブリックコントローラー • AppFabricの綴りを間違えやすいので、注意が必要。 • しかし、このようにプロビジョニングの仕組みまで兹 ね備えたプラットフォームは尐ないのが実情。 わんくま同盟 東京勉強会 #46
  • 23. データセンター間の地理的 レプリケーション(Geo- Replication) わんくま同盟 東京勉強会 #46
  • 24. データセンター間の地理的レプリケーション(Geo-Replication) • Windows Azure ストレージサービス – データセンター間の地理的レプリケーション(Geo- Replication) – ユーザーの位置情報(Geo-Location)により実現 • 災害やテロなどの不測の事態により、事業の継続が 困難に陥る可能性があり、それらの予防的措置とし て「ディザスタリカバリー」がある。 わんくま同盟 東京勉強会 #46
  • 25. ディザスタリカバリー • Windows Azure ストレージサービスでは、CDNサー ビスにより北米・アジア・EUなどの各地域ごとのデー タセンター間で「地理的レプリケーション(Geo- Replication)」を提供している。 とあるコンサルタントのつぶやき : Part 2. Windows Azure Platform 概要 その1 http://blogs.msdn.com/nakama/archive/2010/01/14/windows-azure-platform-1.aspx わんくま同盟 東京勉強会 #46
  • 26. 継続企業(ゴーイングコンサーン) • 一般的に企業は、その企業が継続するという 基礎的前提の上に成り立っている • 情報を提供された者が適切な判断と意志決 定ができるように、経済活動を記録・伝達する 「会計」の世界においては、これら要請とも言 うべき基礎的前提を「会計公準」と呼ぶ。 • 公準=形式的または実質的な前提 わんくま同盟 東京勉強会 #46
  • 27. 継続企業とBCP(業務継続計画) • 会計公準は、企業実体・継続企業・貨幣的評価の3 つ公準(前提)によって構成される • このうち「継続企業の公準」では、企業は永遠に継続 するもの、すなわち「継続企業(ゴーイングコンサー ン)」であると仮定している • このような考えから、企業は事業を継続する社会的 使命と責任を帯びているとされ、いわゆる「BCP(業 務継続計画)」を策定する動きがある わんくま同盟 東京勉強会 #46
  • 28. CAP定理とBASE、ACIDの 呪縛 わんくま同盟 東京勉強会 #46
  • 29. CAP定理とBASE、ACIDの呪縛 • トランザクションとは、「取引」を意味し、相手とのやりとりを通 じて、最終的に「合意」に至るまでの一連のプロセス(処理単 位)を指す • また、トランザクションは、そのプロセスがやりとりする範囲 (処理単位)が、成功または失敗のどちらか一方で終わる、と いうオールオアナッシングの考えに基づいている • 典型的なトランザクションは、リレーショナルデータベースにお ける銀行口座やオークションなどの事例モデルである • これらは、即時応答性の要求される「ACIDトランザクション (フラットトランザクション)」と呼ばれるタイプのトランザクショ ンである わんくま同盟 東京勉強会 #46
  • 30. ACIDトランザクション • 即時応答性の要求されるACIDトランザクションは、銀行口座 やオークションなどの事例モデルでは有効だが、インターネッ トの商取引モデルを描くには限界がある • ショッピングサイトでの買い物も「取引」であり、最終的に商品 が消費者の手元に到着するまで数日かかるという「合意」に 至るまでの、一連のプロセスもまたトランザクションである • Eric Brewer(エリック・ブリューワー)のCAP定理 – 数学的に証明された「定理」ではない – Consistency(一貫性、コンシステンシー) – Availability(可用性、アベイラビリティー) – Partition-tolerance(分割または分散耐性、パーティショントレランス) – ACIDな共有システムでは、上記のうち2つを選択する必要がある わんくま同盟 東京勉強会 #46
  • 31. BASEトランザクション • インターネットの商取引のような事例をモデルにすると、トラン ザクションの処理単位が数日に渡ることがある。これのような トランザクションを「BASEトランザクション(分散トランザクショ ン)」と呼ぶ。 • Eric Brewer(エリック・ブリューワー)のBASE – Basically Available(ベイシカリーアベイラブル) – Soft-state(ソフトステイト) – Eventual Consistency(イベンチュアルコンシステンシー) • 結果整合性、いつか整合性がとれる – Towards Robust Distributed Systems – http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf わんくま同盟 東京勉強会 #46
  • 32. トランザクションモデル • グローバルトランザクション – 複数のリソースにまたがるトランザクション • ローカルトランザクション – 単一リソース内のトランザクション • グローバルトランザクションのさらなる分類 – 2つの異なる独立したデータベースにそれぞれサブトラン ザクションがはしるトランザクションを「入れ子トランザク ション」 – 同一の分散データベース内の論理的に分割不可能なサブ トランザクションがはしるトランザクションを「分散トランザク ション」 わんくま同盟 東京勉強会 #46
  • 33. 入れ子トランザクション • 2つの異なる独立したデータベースとは? • 例えば、海外旅行の際に、航空機のチケットとホテ ルの部屋を同時に予約した場合に、航空会社の データベースとホテル会社はそれぞれデータベース を有している • これら個別の独立したデータベースが連携している 際に、それぞれのデータベースごとに、サブトランザ クションがはしることになる わんくま同盟 東京勉強会 #46
  • 34. 分散トランザクション • Google App Engineでの分散トランザクション – 複数のEntity Groupをまたぐ処理、論理的に分割不可能な処理単位 – 冪等(べきとう、 idempotent)な処理 • 何度繰り返し処理を行っても結果が同じである • ユニーク制約とトランザクションの合成 – Exactly Once • 最大一回だけ成功する処理を無限に繰り返す、いずれ成功する • 冪等(べきとう、 idempotent)な処理とTask Queue – BASE Transaction • 自分を変更後、相手の変更を確実に一度だけ適用 • read-modify-writeとExactly Onceのトランザクションを合成する – Transaction Puzzlers(@ashigeru) http://ashigeru.com/ajn-source/ajn4-arakawa.ppt わんくま同盟 東京勉強会 #46
  • 35. 入れ子と分散トランザクションの違い • 入れ子トランザクションと分散トランザクションの差異 は微妙であると思われがちであるが、重要である。 • 分散トランザクションの問題は、データのロック、トラ ンザクション全体のコミット、そして分散相互排他ア ルゴリズムが必要となる点 • ローカルトランザクションとは、従来までのリレーショ ナルデータベースなどの即時応答性の要求される ACIDトランザクションのこと わんくま同盟 東京勉強会 #46
  • 36. 分散システムにおける同期(クロック) • 分散システムでは、各ノード(個別サーバー)間で内 部的な一貫性を保ち、外部に対しては整合性を保た なければならない • 何らかの方法でシステムが「グローバルな状態」を把 握しておく必要がある。これら各ノード間の協調、す なわち「同期」の問題が生ずる わんくま同盟 東京勉強会 #46
  • 37. 論理クロックと物理クロック • これら同期アルゴリズムを慣習として、「論理 クロック(logical clock)」と呼ぶ。 • クロックには、論理クロックと物理クロックがあ り、物理クロックとは、腕時計や壁掛け時計の ような日常生活で用いる「時計」のことである。 わんくま同盟 東京勉強会 #46
  • 38. レスリー・ランポートの論理クロック • コンピューターシステムにおける「時間」は、内部的 な一貫性、すなわち「同期」が保たれていれば良い のであって、必ずしも物理クロックと同じ時を刻んで いる必要性はない • 分散システムにおいては、各ノード間の「同期」が本 質ではなく、メッセージをやり取りする、一連の協調 活動の「全順序性」であることを、レスリー・ランポー トは1978年のクロック同期に関する論文で示した。 わんくま同盟 東京勉強会 #46
  • 39. Vector Clock • 分散システムにおける「グローバルな状態」すなわち、 内部的な一貫性を知るための「論理クロック」は、各 ノード間の因果性(結びつき)を把握できないために 「Vector Clock」が提案される • このVector Clockのひとつである「Interval Tree Clocks」をApache Cassandraでは実装しようと試み ている • 多くの分散ファイルシステムが苦手とする削除にお いて、「廃棄(Tombstones)の有効期間」を設定し、 Gossipプロトコルにより伝播させる わんくま同盟 東京勉強会 #46
  • 40. P2P技術を適用した分散 相互排他アルゴリズム わんくま同盟 東京勉強会 #46
  • 41. P2Pと複雑ネットワーク • Vector ClockからP2Pへ – Vector Clockは、因果性の制約が守られている(お互いに 結びついている)ときのみに、メッセージの配信(やりとり) ができる。このため、これらは次第に通信の問題へと変化 していき、P2Pのモデルが提起される。 • 複雑ネットワーク – 六次の隔たり:人は自分の知り合いを6人以上介 すと世界中の人々と間接的な知り合いになれる、 という仮説。P2Pにおける「経路長」に相当 – ランダムグラフによる複雑ネットワークを応用した 理論。 わんくま同盟 東京勉強会 #46
  • 42. 分散相互排他アルゴリズム • 分散システムにおいて、「グローバルな状態」を知るための同 期アルゴリズムには、ブリー選任アルゴリズム、障害性に考 慮した円形状のリングアルゴリズム、そして単一障害点 (SPOF)をなくすという観点の分散相互排他アルゴリズムな どが考案されている • 分散相互排他アルゴリズムでは、整合性モデルとしてBASE に基づくEventually Consistency(イベンチュアルコンシステ ンシー、結果整合性)を適用し、遅延を許容する • この考えを適用した、クラウド基盤ではレイテンシーが問題に なる。このため、高速な光ファイバー、距離の近いデータセン ター、そしてキャッシュを取り入れたCDNサービスを組み合わ せなければ解決することはできない • 例:Google Public DNS、Google Fiber for Communities、Akamai わんくま同盟 東京勉強会 #46
  • 43. P2P技術を適用した分散相互排他アルゴリズム • Google – Paxosプロトコル – 分散トランザクションマネージャー「Chubby」と「Google Megastore」 – Microsoftのレスリー・ランポートがPaxosのオリジナル特許を保持 – Google App Engineで2009年9月22日にGoogle Megastoreへ移行 • Oracle Coherence – TCMPプロトコル • Apache Hadoopファミリー – Zookeeper:Zabプロトコル (同一のデータセンター内に限る) • Windows Azure – ChordプロトコルとPastryプロトコルを掛け合わせた – 両方向版Chordプロトコルとでも呼ぶべき改良版 わんくま同盟 東京勉強会 #46
  • 44. 分散コンピューティングの落とし穴 (Fallacies of Distributed Computing) • ネットワークは信頼できる(The network is reliable) • レイテンシーはゼロである(Latency is zero) • 帯域幅は無限である(Bandwidth is infinite) • ネットワークはセキュアである(The network is secure) • ネットワーク構成は変化せず一定である(Topology doesn‘t change) • 管理者は1人である(There is one administrator) • トランスポートコストはゼロである(Transport cost is zero) • ネットワークは均質である(The network is homogeneous) 分散システムは、ネットワークが課題 わんくま同盟 東京勉強会 #46
  • 45. 参加者募集のお知らせ • Apache CassandraのWiki翻訳中 – 金銭的な報酬とか一切ないけど、参加者募集 – 興味のある分野を翻訳ついでに勉強する感じ – http://wiki.apache.org/cassandra/FrontPage_JP • 同時に募集中 – nosql-ja – http://groups.google.com/group/nosql-ja – Hadoopユーザー会 – http://groups.google.co.jp/group/hadoop-jp わんくま同盟 東京勉強会 #46
  • 46. 参考文献 • とあるコンサルタントのつぶやき – http://blogs.msdn.com/nakama/ • 財務会計論 – http://www.amazon.co.jp/dp/4495141937/ • 分散システム 原理とパラダイム – http://www.amazon.co.jp/dp/4894714981 わんくま同盟 東京勉強会 #46
  • 47. ご静聴、Azaas!タイムラインのみんなに感謝! http://twitter.com/kimtea/status/10012523378 わんくま同盟 東京勉強会 #46