SlideShare a Scribd company logo
1 of 21
Download to read offline
ぶいてく流
スケーラブルアプリの作り方
    2012(前編)	




 2012/8/18 有限会社バーチャルテクノロジー	

        1	
                    Copyright © Virtual Technology, Inc
•  竹嵜伸一郎 (たけざき しんいちろう)
•  寺田典子(てらだ のりこ)

•  (有)バーチャルテクノロジー
 –  分散KVSのミドルウェア開発(ReflexWorks)




            2	
               Copyright © Virtual Technology, Inc
Agenda	

1.なんでスケーラブルにするのか
2.どうすればスケーラブルになるか
  2−1.アプリの観点
  2−2.システムの観点
3.ReflexWorksの概要
4.スケーラブルアプリの設計
5.データの一貫性
6.アクセス制御とソーシャル化
7.大規模Web帳票システムの事例(LT)

          3	
                Copyright © Virtual Technology, Inc
1. なんでスケーラブルにするのか	




       4	
      Copyright © Virtual Technology, Inc
パフォーマンスと全体最適化の問題	

•  パフォーマンスの問題
 –  データが増えると遅くなる
 –  アクセスが多くなると遅くなる


•  全体最適化の問題
 –  VMの全体最適化では不十分	



          5	
         Copyright © Virtual Technology, Inc
Scale-up vs Scale-Out
    Scale-Up             Scale-Out
性能の高いサーバは、極端に高くなる
性能の頭打ち(ムーアの法則)	
       性能は、価格に比例	




                        廉価サーバ	




               6	
                   Copyright © Virtual Technology, Inc
2−1.どうすればスケーラブルにな
     るか(アプリの観点)	




      7	
     Copyright © Virtual Technology, Inc
論点	
•    集中 vs 分散
•    密結合 vs 疎結合
•    同期 vs 非同期	
•    ステートフル vs ステートレス

     –  分散で疎結合で非同期でステートレスなシステム
        (つまり、メール)が最強。しかし、それだけでは済
        まないのが世の中。➡ オンラインWebアプリ
     –  スケールアウト性を損なわずに、どこをどう妥協し
        ていくか	
              8	
            Copyright © Virtual Technology, Inc
集中 vs 分散	
•  集中化で運用管理は楽になるが・・
     –  RDBに負荷が集中することでパフォーマンス劣化
     –  MemcachedではRDBとの整合性確保が困難になる
     –  障害になるとシステム全体に影響を及ぼす
•  分散化でスケーラブルになるが・・
     –  運用管理が複雑になる
     –  厳密なデータの一貫性の確保が困難
        一貫性確保などの課題を克服して	
  
        分散化でいくことができるか(これが命題)	
	
             9	
           Copyright © Virtual Technology, Inc
密結合 vs 疎結合	
•  密結合で高速な動作が可能になるが・・
     –  分散化(スケールアウト)しにくい
     –  例) JSP(APに負荷)とHTML+JS(Webに負荷)
•  疎結合で分散化しやすくなるが・・
     –  高速処理に向かないケースがある。
     –  個々のコンポーネントの独立性が高く相互依存性
        が低い。また分散化しやすい。

         可能な限り疎結合とする(異論はないはず)	
  
          ブラウザ、サービス、DBの間は少なくとも	
  
	
       	
                10	
              Copyright © Virtual Technology, Inc
同期 vs 非同期	
•  同期だと処理(トランザクションや実行順序)が
   保証されるが・・
     –  他の処理をブロックさせてしまう
     –  1つのリソースに処理が集中するとスケールしない
•  非同期だとスケールするが・・
     –  データの一貫性は確保できない
     –  遅延が発生する
	
       一貫性は重要であり、同期処理をやらざるを	
  
       得ないケースがある。トランザクション処理など	
             11	
          Copyright © Virtual Technology, Inc
ステートフル vs ステートレス	
•  ステートフルだと高速になるが・・
     –  メモリ、DBなどを介すためスケールさせにくい
     –  セッションオブジェクトに中間データを保存すること
        で処理(再送、再計算など)を省略できる
•  ステートレスだとスケールするが・・
     –  必要な情報を毎回送信する必要があり冗長になる。
     –  認証、データチェックなどは都度実行となり、パ
        フォーマンスは悪くなる
     ステートフルにせざるを得ないケースがある	
  
	
   Webアプリの認証、WebSocket、・・	
  
     	
       12	
            Copyright © Virtual Technology, Inc
2−2.どうすればスケーラブルに
  なるか(システムの観点)	



      13	
     Copyright © Virtual Technology, Inc
これまでの3階層システム	
                        トランザクション	
  
                        はDBMSの機能で実現	




WEB	
            AP	
       DB	




        14	
                       Copyright © Virtual Technology, Inc
DBとボトルネック	
    単にWEBやAPを増やしてもスケールしない	

                          DBがボトルネックとなり	
  
WEB	
              AP	
   スケールしない	




WEB	
              AP	
        DB	



WEB	
              AP	

          15	
                    Copyright © Virtual Technology, Inc
分散キャッシュ	
             読込性能は上がるが・・	
  
                          整合性はどうする?	



WEB	
            AP	



WEB	
            AP	
   Cache	
   DB	



WEB	
            AP	


        16	
                        Copyright © Virtual Technology, Inc
PaaS(パブリッククラウド)の例	
DBにKVSを採用、AP,DBともにオートスケール、規模の経済性	




  AP	
          AP	
                AP	
                                           AppEngine	
  Datastore	
  
             DB(KVS)	
                     AWS	
  Dynamo	
  
  OS	
   OS	
          OS	
         OS	

     H/W	
                      H/W	


                       17	
                              Copyright © Virtual Technology, Inc
プライベートクラウドの課題	
VMで全体最適化が図れるもスケーラビリティに課題	
  
かといって、PaaSのような大規模なDB構築は容易ではない	




 AP	
   AP	
   AP	
      AP	
                                スケールしない	
 DB	
   DB	
   DB	
      DB	

 OS	
   OS	
   OS	
      OS	

    H/W	
           H/W	


                18	
                 Copyright © Virtual Technology, Inc
(解決案)AP統合、一方でシャーディング	
APは論理的には1つだが実際はそれぞれの担当ノードに別れる	
                (困難は分割せよ	
  by	
  デカルト)	



   #1	
       #2	
   AP	
    #3	
        #4	
   Consistent	
  Hashing	
  
                                                シャーディング	
  DB	
        DB	
          DB	
       DB	

  OS	
        OS	
          OS	
       OS	

          H/W	
                  H/W	


                              19	
                        Copyright © Virtual Technology, Inc
シャーディングの考え方	
•  お互いに干渉しないような分割キーを見つける
 –  ユーザIDなど
•  SalesForceのマルチテナントアーキテクチャー
 –  テナント別の「組織ID」で物理分割
   •  http://www.publickey1.jp/blog/09/2id.html


 –  ユーザー企業が増えた場合でも、データが増えた場合でも、
    パーティションを増やし、そのパーティションを処理するイン
    スタンスを追加することでスケーラブルな対応をする	




                       20	
                       Copyright © Virtual Technology, Inc
1、2章のまとめ	
•    集中 vs 分散
•    密結合 vs 疎結合
•    同期 vs 非同期	
•    ステートフル vs ステートレス

     –  分散で疎結合とすべきなのは異論がないところ。
     –  さらに非同期でステートレスにできればよいがそれ
        だけで済まない現実がある。
     –  APをシャーディングで分割する案	
	
              21	
        Copyright © Virtual Technology, Inc

More Related Content

What's hot

Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計de:code 2017
 
Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係Kazuyuki Miyake
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMShotaro Suzuki
 
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説Kimihiko Kitase
 
2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要Kimihiko Kitase
 
Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926Ayako Omori
 
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかたJAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかたYutaro Ono
 
さくらのクラウド サービス開発とデータセンター運用
さくらのクラウド サービス開発とデータセンター運用さくらのクラウド サービス開発とデータセンター運用
さくらのクラウド サービス開発とデータセンター運用SAKURA Internet Inc.
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発Junji Imaoka
 
パブリッククラウド動向とIBMの取り組み
パブリッククラウド動向とIBMの取り組みパブリッククラウド動向とIBMの取り組み
パブリッククラウド動向とIBMの取り組みKimihiko Kitase
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンKazuyuki Miyake
 
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0Kazuhiko Isaji
 
VMware SDDC on IBM SoftLayer Cloud
VMware SDDC on IBM SoftLayer CloudVMware SDDC on IBM SoftLayer Cloud
VMware SDDC on IBM SoftLayer Cloudwatarukatsurashima
 
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計Toru Makabe
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331Ayako Omori
 
[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...
[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...
[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...Naoki (Neo) SATO
 
Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Ayako Omori
 

What's hot (20)

Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
 
Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASM
 
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
 
2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要
 
Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926
 
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかたJAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
 
さくらのクラウド サービス開発とデータセンター運用
さくらのクラウド サービス開発とデータセンター運用さくらのクラウド サービス開発とデータセンター運用
さくらのクラウド サービス開発とデータセンター運用
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発
 
パブリッククラウド動向とIBMの取り組み
パブリッククラウド動向とIBMの取り組みパブリッククラウド動向とIBMの取り組み
パブリッククラウド動向とIBMの取り組み
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
 
VMware SDDC on IBM SoftLayer Cloud
VMware SDDC on IBM SoftLayer CloudVMware SDDC on IBM SoftLayer Cloud
VMware SDDC on IBM SoftLayer Cloud
 
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
 
Azure Data Platform
Azure Data PlatformAzure Data Platform
Azure Data Platform
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
 
[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...
[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...
[Microsoft Tech Summit 2017] マイクロサービスだけじゃない! コンテナー オーケストレーターとしての「Azure Servic...
 
Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Microsoft Azure Update 20151112
Microsoft Azure Update 20151112
 

Viewers also liked

Swiftのスピードについて
SwiftのスピードについてSwiftのスピードについて
SwiftのスピードについてRyo Kasama
 
<年代別>年末年始の旅行に関する動向調査
<年代別>年末年始の旅行に関する動向調査<年代別>年末年始の旅行に関する動向調査
<年代別>年末年始の旅行に関する動向調査Yahoo! JAPAN Marketing Solution
 
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Kazuyuki Sato
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門sandai
 
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...SolarisJP
 
Swiftから考えるアプリ開発のこれから
Swiftから考えるアプリ開発のこれからSwiftから考えるアプリ開発のこれから
Swiftから考えるアプリ開発のこれからRyo Kasama
 
Spark Summit 2015 参加報告
Spark Summit 2015 参加報告Spark Summit 2015 参加報告
Spark Summit 2015 参加報告Katsunori Kanda
 
Socialmediaaroundtheworld2011日本語版(PDFファイル)
Socialmediaaroundtheworld2011日本語版(PDFファイル)Socialmediaaroundtheworld2011日本語版(PDFファイル)
Socialmediaaroundtheworld2011日本語版(PDFファイル)明穂 足立
 
水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析
水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析
水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析Takanobu Mizuta
 
Facebookページで商売へ誘導のリンクはクリックされない
Facebookページで商売へ誘導のリンクはクリックされないFacebookページで商売へ誘導のリンクはクリックされない
Facebookページで商売へ誘導のリンクはクリックされない新潟コンサルタント横田秀珠
 
博士論文本審査スライド
博士論文本審査スライド博士論文本審査スライド
博士論文本審査スライドRyuichi Ueda
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料Masatoshi Itoh
 
Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)
Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)
Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)明穂 足立
 

Viewers also liked (15)

Swiftのスピードについて
SwiftのスピードについてSwiftのスピードについて
Swiftのスピードについて
 
<年代別>年末年始の旅行に関する動向調査
<年代別>年末年始の旅行に関する動向調査<年代別>年末年始の旅行に関する動向調査
<年代別>年末年始の旅行に関する動向調査
 
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
 
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
 
Swiftから考えるアプリ開発のこれから
Swiftから考えるアプリ開発のこれからSwiftから考えるアプリ開発のこれから
Swiftから考えるアプリ開発のこれから
 
Spark Summit 2015 参加報告
Spark Summit 2015 参加報告Spark Summit 2015 参加報告
Spark Summit 2015 参加報告
 
Socialmediaaroundtheworld2011日本語版(PDFファイル)
Socialmediaaroundtheworld2011日本語版(PDFファイル)Socialmediaaroundtheworld2011日本語版(PDFファイル)
Socialmediaaroundtheworld2011日本語版(PDFファイル)
 
水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析
水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析
水田孝信:博士論文審査会発表資料2014年8月6日:人工市場シミュレーションを用いた金融市場の規制・制度の分析
 
兵庫県高砂市Facebookセミナーin高砂商工会議所
兵庫県高砂市Facebookセミナーin高砂商工会議所兵庫県高砂市Facebookセミナーin高砂商工会議所
兵庫県高砂市Facebookセミナーin高砂商工会議所
 
Facebookページで商売へ誘導のリンクはクリックされない
Facebookページで商売へ誘導のリンクはクリックされないFacebookページで商売へ誘導のリンクはクリックされない
Facebookページで商売へ誘導のリンクはクリックされない
 
博士論文本審査スライド
博士論文本審査スライド博士論文本審査スライド
博士論文本審査スライド
 
Congoleum
CongoleumCongoleum
Congoleum
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)
Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)
Socialmediaaroundtheworld2011日本語版(文字がずれるのでPDF版をおすすめします)
 

Similar to Reflex works20120818 1

C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章Insight Technology, Inc.
 
いよいよ SAP Business Suite 正式サポート! SAP on AWS
いよいよ SAP Business Suite 正式サポート!  SAP on AWSいよいよ SAP Business Suite 正式サポート!  SAP on AWS
いよいよ SAP Business Suite 正式サポート! SAP on AWSMasaru Hiroki
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5Osamu Shimoda
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows AzureKeiichi Hashimoto
 
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明Insight Technology, Inc.
 
CUPA Cafe #18 ~Enterpriseのためのクラウド~
CUPA Cafe #18 ~Enterpriseのためのクラウド~CUPA Cafe #18 ~Enterpriseのためのクラウド~
CUPA Cafe #18 ~Enterpriseのためのクラウド~Toru Makabe
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~KLab株式会社
 
RWC2012(ワコムアイティ&テクノプロジェクト)
RWC2012(ワコムアイティ&テクノプロジェクト)RWC2012(ワコムアイティ&テクノプロジェクト)
RWC2012(ワコムアイティ&テクノプロジェクト)Techno Project Co., Ltd.
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssTakahiro Iwase
 
JAWS熊本で使用したSWX社内用AWS初心者向け資料
JAWS熊本で使用したSWX社内用AWS初心者向け資料JAWS熊本で使用したSWX社内用AWS初心者向け資料
JAWS熊本で使用したSWX社内用AWS初心者向け資料Aya Komuro
 
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料Serverworks Co.,Ltd.
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11MapR Technologies Japan
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AzareaCluster
 
非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室Daisuke Masubuchi
 
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップAmazon Web Services Japan
 
2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会Koichiro Doi
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2オラクルエンジニア通信
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...Funada Yasunobu
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...Funada Yasunobu
 

Similar to Reflex works20120818 1 (20)

C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章
 
いよいよ SAP Business Suite 正式サポート! SAP on AWS
いよいよ SAP Business Suite 正式サポート!  SAP on AWSいよいよ SAP Business Suite 正式サポート!  SAP on AWS
いよいよ SAP Business Suite 正式サポート! SAP on AWS
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure
 
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
 
CUPA Cafe #18 ~Enterpriseのためのクラウド~
CUPA Cafe #18 ~Enterpriseのためのクラウド~CUPA Cafe #18 ~Enterpriseのためのクラウド~
CUPA Cafe #18 ~Enterpriseのためのクラウド~
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
 
RWC2012(ワコムアイティ&テクノプロジェクト)
RWC2012(ワコムアイティ&テクノプロジェクト)RWC2012(ワコムアイティ&テクノプロジェクト)
RWC2012(ワコムアイティ&テクノプロジェクト)
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
 
JAWS熊本で使用したSWX社内用AWS初心者向け資料
JAWS熊本で使用したSWX社内用AWS初心者向け資料JAWS熊本で使用したSWX社内用AWS初心者向け資料
JAWS熊本で使用したSWX社内用AWS初心者向け資料
 
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
 
非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室
 
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
 
2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
 

More from Shinichiro Takezaki (16)

Vtecx solution
Vtecx solutionVtecx solution
Vtecx solution
 
Lt20190129
Lt20190129Lt20190129
Lt20190129
 
Real techlt20180829
Real techlt20180829Real techlt20180829
Real techlt20180829
 
Bpstudy20180725
Bpstudy20180725Bpstudy20180725
Bpstudy20180725
 
11 29プレゼン資料
11 29プレゼン資料11 29プレゼン資料
11 29プレゼン資料
 
React vtecx20171129
React vtecx20171129React vtecx20171129
React vtecx20171129
 
20171025 date picker説明資料
20171025 date picker説明資料20171025 date picker説明資料
20171025 date picker説明資料
 
React vtecx20171025
React vtecx20171025React vtecx20171025
React vtecx20171025
 
Web study20171007
Web study20171007Web study20171007
Web study20171007
 
React vtecx20170920
React vtecx20170920React vtecx20170920
React vtecx20170920
 
React vtecx20170822
React vtecx20170822React vtecx20170822
React vtecx20170822
 
Vtecx20151216 2
Vtecx20151216 2Vtecx20151216 2
Vtecx20151216 2
 
Vtecxlt20151201
Vtecxlt20151201Vtecxlt20151201
Vtecxlt20151201
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
No nosql20130424
No nosql20130424No nosql20130424
No nosql20130424
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 

Reflex works20120818 1

  • 1. ぶいてく流 スケーラブルアプリの作り方 2012(前編) 2012/8/18 有限会社バーチャルテクノロジー 1   Copyright © Virtual Technology, Inc
  • 2. •  竹嵜伸一郎 (たけざき しんいちろう) •  寺田典子(てらだ のりこ) •  (有)バーチャルテクノロジー –  分散KVSのミドルウェア開発(ReflexWorks) 2   Copyright © Virtual Technology, Inc
  • 3. Agenda 1.なんでスケーラブルにするのか 2.どうすればスケーラブルになるか 2−1.アプリの観点 2−2.システムの観点 3.ReflexWorksの概要 4.スケーラブルアプリの設計 5.データの一貫性 6.アクセス制御とソーシャル化 7.大規模Web帳票システムの事例(LT) 3   Copyright © Virtual Technology, Inc
  • 4. 1. なんでスケーラブルにするのか 4   Copyright © Virtual Technology, Inc
  • 5. パフォーマンスと全体最適化の問題 •  パフォーマンスの問題 –  データが増えると遅くなる –  アクセスが多くなると遅くなる •  全体最適化の問題 –  VMの全体最適化では不十分 5   Copyright © Virtual Technology, Inc
  • 6. Scale-up vs Scale-Out Scale-Up Scale-Out 性能の高いサーバは、極端に高くなる 性能の頭打ち(ムーアの法則) 性能は、価格に比例 廉価サーバ 6   Copyright © Virtual Technology, Inc
  • 7. 2−1.どうすればスケーラブルにな るか(アプリの観点) 7   Copyright © Virtual Technology, Inc
  • 8. 論点 •  集中 vs 分散 •  密結合 vs 疎結合 •  同期 vs 非同期 •  ステートフル vs ステートレス –  分散で疎結合で非同期でステートレスなシステム (つまり、メール)が最強。しかし、それだけでは済 まないのが世の中。➡ オンラインWebアプリ –  スケールアウト性を損なわずに、どこをどう妥協し ていくか 8   Copyright © Virtual Technology, Inc
  • 9. 集中 vs 分散 •  集中化で運用管理は楽になるが・・ –  RDBに負荷が集中することでパフォーマンス劣化 –  MemcachedではRDBとの整合性確保が困難になる –  障害になるとシステム全体に影響を及ぼす •  分散化でスケーラブルになるが・・ –  運用管理が複雑になる –  厳密なデータの一貫性の確保が困難 一貫性確保などの課題を克服して   分散化でいくことができるか(これが命題) 9   Copyright © Virtual Technology, Inc
  • 10. 密結合 vs 疎結合 •  密結合で高速な動作が可能になるが・・ –  分散化(スケールアウト)しにくい –  例) JSP(APに負荷)とHTML+JS(Webに負荷) •  疎結合で分散化しやすくなるが・・ –  高速処理に向かないケースがある。 –  個々のコンポーネントの独立性が高く相互依存性 が低い。また分散化しやすい。 可能な限り疎結合とする(異論はないはず)    ブラウザ、サービス、DBの間は少なくとも   10   Copyright © Virtual Technology, Inc
  • 11. 同期 vs 非同期 •  同期だと処理(トランザクションや実行順序)が 保証されるが・・ –  他の処理をブロックさせてしまう –  1つのリソースに処理が集中するとスケールしない •  非同期だとスケールするが・・ –  データの一貫性は確保できない –  遅延が発生する 一貫性は重要であり、同期処理をやらざるを   得ないケースがある。トランザクション処理など 11   Copyright © Virtual Technology, Inc
  • 12. ステートフル vs ステートレス •  ステートフルだと高速になるが・・ –  メモリ、DBなどを介すためスケールさせにくい –  セッションオブジェクトに中間データを保存すること で処理(再送、再計算など)を省略できる •  ステートレスだとスケールするが・・ –  必要な情報を毎回送信する必要があり冗長になる。 –  認証、データチェックなどは都度実行となり、パ フォーマンスは悪くなる ステートフルにせざるを得ないケースがある   Webアプリの認証、WebSocket、・・   12   Copyright © Virtual Technology, Inc
  • 14. これまでの3階層システム トランザクション   はDBMSの機能で実現 WEB AP DB 14   Copyright © Virtual Technology, Inc
  • 15. DBとボトルネック 単にWEBやAPを増やしてもスケールしない DBがボトルネックとなり   WEB AP スケールしない WEB AP DB WEB AP 15   Copyright © Virtual Technology, Inc
  • 16. 分散キャッシュ 読込性能は上がるが・・   整合性はどうする? WEB AP WEB AP Cache DB WEB AP 16   Copyright © Virtual Technology, Inc
  • 17. PaaS(パブリッククラウド)の例 DBにKVSを採用、AP,DBともにオートスケール、規模の経済性 AP AP AP AppEngine  Datastore   DB(KVS) AWS  Dynamo   OS OS OS OS H/W H/W 17   Copyright © Virtual Technology, Inc
  • 19. (解決案)AP統合、一方でシャーディング APは論理的には1つだが実際はそれぞれの担当ノードに別れる (困難は分割せよ  by  デカルト) #1 #2 AP #3 #4 Consistent  Hashing   シャーディング DB DB DB DB OS OS OS OS H/W H/W 19   Copyright © Virtual Technology, Inc
  • 20. シャーディングの考え方 •  お互いに干渉しないような分割キーを見つける –  ユーザIDなど •  SalesForceのマルチテナントアーキテクチャー –  テナント別の「組織ID」で物理分割 •  http://www.publickey1.jp/blog/09/2id.html –  ユーザー企業が増えた場合でも、データが増えた場合でも、 パーティションを増やし、そのパーティションを処理するイン スタンスを追加することでスケーラブルな対応をする 20   Copyright © Virtual Technology, Inc
  • 21. 1、2章のまとめ •  集中 vs 分散 •  密結合 vs 疎結合 •  同期 vs 非同期 •  ステートフル vs ステートレス –  分散で疎結合とすべきなのは異論がないところ。 –  さらに非同期でステートレスにできればよいがそれ だけで済まない現実がある。 –  APをシャーディングで分割する案 21   Copyright © Virtual Technology, Inc