スケーラビリティと耐障害性を両立する
Web アプリケーション
日本マイクロソフト株式会社
アーキテクト
萩原正義
@masayh
2
セッションのゴール
• 分散システムで耐障害性とスケーラビリティを
両立にはどうすべきか?
• 現在の(閉域の)分散システム
• Web サイト、Hadoop、NoSQL
• 地球規模の広域分散システム
3
低レイテンシーの重要性
• Amazon 社
• 1秒の遅延で 7% が離脱、11% の page views が失われる
• 100ms の遅延減少で 1% 売り上げ増大、Amazon では合計で年
$480M 増加
• Microsoft 社
• 2秒の遅延でユーザ当たりの売り上げ -4.3%
• Google 社
• 検索結果ページを10から30項目にすると、ロード時間が 400ms
から 900ms となり、25% が離脱
4
Web のスケールアウトでの耐障害性
• セッション状態の複製の課
題: 一貫性の保証
• NoSQL、RDB に永続化?
• その他の課題:
• グループメンバーの障害監視
• 状態の排他制御
• Master/slave での master
の障害、フェイルオーバー
Web
Servers
Database
Servers
Memcached
Servers
Shard
(G-O)
Shard
(P-Z)
Shard
(A-F)
Read Only
Slaves
5
ZooKeeper
• Apache プロジェクト
• HDFS、Hbase、Hadoop ...
• 分散合意プロトコル
• リーダーの選出
• グループメンバーシップ
• 共有ロック
• 分散キュー、バリアー、...
• プロトコルをデータモデルと
API で提供
• 分散合意プロトコルの機構は知
らなくていい
6
ZooKeeper プログラミングモデル
• API
• 死活監視(Ephemeral Node)
• 逐次化(Sequence Node)
• 変更通知(Watch)
• Recipe と Apache Curator
ライブラリー
• http://curator.incubator.apac
he.org/index.html
7
分散システムの耐障害性の保証
8
Hadoop のアーキテクチャー
datanode daemon
Linux file system
…
tasktracker
slave node
datanode daemon
Linux file system
…
tasktracker
slave node
datanode daemon
Linux file system
…
tasktracker
slave node
namenode
namenode
daemon
job submission node
jobtracker
9
地球規模の広域分散システム
• 次世代の大規模 Web サービスの方向性
• ハイブリッドクラウドの進展
• Geo-replication の課題とは?
• 可用性のための複製とその一貫性の両立
• ネットワークの障害、遅延
• いわゆる CAP 定理の克服
• Consistency: すべてのクライアントは変更があって
も同一のビューを見る
• Availability: すべてのクライアントは障害が発生して
も、データのいくつかの複製を発見することができる
• Partition-tolerance: (分散)システムはネット
ワークが切断されても、その特性を維持する
10
Web サービス操作の特徴
• CRUD  Read/Write 操作の4種類の組み合わせ
• Write-Write:
• Write-Read:
• Read-Read:
• Read-Write:
• 多くの NoSQL で採用される Eventual consistency
• セッションから Causal consistency へ
11
広域分散システムの複製の一貫性モデル
• Causality(因果関係) とは
• Causal consistency では不可能な一貫性の制約
• トランザクショナルな操作: 銀行送金、注文と決済など
• 参照整合性、ユニーク性などの integrity constraints
Causal consistency の保証 現在のセッションの操作 新たなセッションの操作
Read Your Writes Write Read
Monotonic Reads Read Read
Writes Follow Reads Read Write
Monotonic Writes Write Write
12
ソーシャルにおける相互作用の例
ユーザ 操作 操作の説明
A さん w1 プラン1の挿入
B さん r2 A さんのプラン1の読み取り
B さん w3 プラン2の挿入
A さん r4 B さんのプラン2の読み取り
C さん w5 プラン3の挿入
A さん w6 プラン1の修正を挿入
A さん r7 C さんのプラン3の読み取り
A さん w8 C さんのプラン3を参考にプラン1を修正
13
Causal 依存関係の表現
操作 依存関係
w1 -
w3 w1
w5 -
w6 w3 w1
w8 w6 w5 w3 w1
論
理
時
間
C さんB さんA さん
ポイント:
• Web クライアントが Write トランザクションに
causal 依存関係を含ませる
• スレッドやリプライ数は高々 100 程度
14
Causal 依存関係の読み取りトランザクション
Causal 依存関係にある write を複製データに反映させるには
広域データの配置による遅延を考慮しなければならない
Causal 依存関係にある
すべてのデータの Write が
読み取り時のタイミングと
重なるか
15
まとめ
• 低レイテンシーと可用性のサービス提供での重要性
• 複製は可用性と性能を高める
• 閉域の分散システムでの耐障害性技術
• ZooKeeper、Paxos、Vector clock など選択肢は多い
• 今後は広域の分散システムでの耐障害性
• Google 社の Megastore、Spanner
• Paxos の改良版、Causality を利用した新しいトランザクション
モデル(+ broadcast プロトコル)
16
参考文献
「分散システム ~ 概念とアーキテクチャー」(仮称)
• CAP 定理
• 合意問題
• アトミックブロードキャスト
• ZooKeeper
• クォーラムシステム
• 複製でのトランザクション(OLTP とメッセージングの融合)
• Snapshot isolation による複製の問題
• レプリケーションシステムの実装法
• Paxos
• Byzantine 障害対応合意プロトコル
• 複製を隠ぺいする仮想リソース管理
• レプリケーションの安全性評価方法
• システム設計の原則
RM0
Commit
Leader
RM0…N
Acceptors
0…2F
スケーラビリティと耐障害性を両立するWeb アプリケーション

More Related Content

PDF
PWA for beginner#2
PPTX
Wagby R9.1 ReleaseNote
PDF
20130330 JAWS-UG広島 美人CDP
PDF
WP Booster WordBench Tokyo 20120701
PDF
Build Insider OFFLINE vol.01 スマートフォンサイトのこれから ~ レスポンシブ・Webデザインは救世主となり得るか
PDF
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
PDF
よりよい開発を目指すための、プロセス&ツール活用
PDF
レスポンシブ+α 第12回WordBench大阪
PWA for beginner#2
Wagby R9.1 ReleaseNote
20130330 JAWS-UG広島 美人CDP
WP Booster WordBench Tokyo 20120701
Build Insider OFFLINE vol.01 スマートフォンサイトのこれから ~ レスポンシブ・Webデザインは救世主となり得るか
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
よりよい開発を目指すための、プロセス&ツール活用
レスポンシブ+α 第12回WordBench大阪

Viewers also liked (20)

PDF
スマートフォン対応とレスポンシブWebデザイン
PDF
Css nite fukuoka8 suenaga
PPTX
HTML5とWeb開発に関する最新動向
PDF
一生食える強みの作り方 まとめ
PPTX
Node.js Hands-On
PPTX
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
PDF
レスポンシブWebデザインの実践ワークフロー(WDS)
PDF
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
PDF
レスポンシブWebデザイン ワークフロー
PDF
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
PDF
短期間でのスマホ向けWeb開発
PPTX
「Googleを支える技術」の解説 2010.08.23
PDF
スマホアプリ開発-プロモーション・集客・サポート・広告収入-
PDF
Ajax非同期通信によるサーバー通信
PDF
NoSQLとビックデータ入門編Update版
PDF
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
PDF
JavaScriptによるgoogle maps apiの使い方
PPTX
スマホフロントエンド最速化手法
PPTX
NoSQL勉強会
PDF
デブサミ2010 これからのアーキテクチャを見通す
スマートフォン対応とレスポンシブWebデザイン
Css nite fukuoka8 suenaga
HTML5とWeb開発に関する最新動向
一生食える強みの作り方 まとめ
Node.js Hands-On
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
レスポンシブWebデザインの実践ワークフロー(WDS)
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
レスポンシブWebデザイン ワークフロー
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
短期間でのスマホ向けWeb開発
「Googleを支える技術」の解説 2010.08.23
スマホアプリ開発-プロモーション・集客・サポート・広告収入-
Ajax非同期通信によるサーバー通信
NoSQLとビックデータ入門編Update版
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
JavaScriptによるgoogle maps apiの使い方
スマホフロントエンド最速化手法
NoSQL勉強会
デブサミ2010 これからのアーキテクチャを見通す
Ad

Similar to スケーラビリティと耐障害性を両立するWeb アプリケーション (20)

PDF
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
PDF
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
PPTX
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
PPTX
ITpro EXPO 2011 クラウド上での業務アプリ開発
PDF
Gmo media.inc 第9回西日本ossの普及を考える会
PDF
MySQL最新動向と便利ツールMySQL Workbench
PDF
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
PDF
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
PDF
AWSでアプリ開発するなら 知っておくべこと
PPTX
Azure インフラの信頼性とガバナンス
PPTX
脱Oracle!脱オンプレ!DBのコスト削減のための移行・連携セミナー
PDF
レガシーシステム再生のアンチパターン
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
Data Center As A Computer 2章前半
PPTX
Azure PaaSを活用したモダン E コマースソリューションの構築方法
PDF
Amazon Web Services 最新事例集
PDF
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
PDF
セミナ受講レポート NRI Senju V12
PDF
Mtddc hokkaido-2010-ideamans-session
PDF
Amazon Aurora Deep Dive (db tech showcase 2016)
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
ITpro EXPO 2011 クラウド上での業務アプリ開発
Gmo media.inc 第9回西日本ossの普及を考える会
MySQL最新動向と便利ツールMySQL Workbench
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
AWSでアプリ開発するなら 知っておくべこと
Azure インフラの信頼性とガバナンス
脱Oracle!脱オンプレ!DBのコスト削減のための移行・連携セミナー
レガシーシステム再生のアンチパターン
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Data Center As A Computer 2章前半
Azure PaaSを活用したモダン E コマースソリューションの構築方法
Amazon Web Services 最新事例集
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
セミナ受講レポート NRI Senju V12
Mtddc hokkaido-2010-ideamans-session
Amazon Aurora Deep Dive (db tech showcase 2016)
Ad

スケーラビリティと耐障害性を両立するWeb アプリケーション