SlideShare a Scribd company logo
Designing Data-Intensive
Applications 1と2章
輪読会資料
2019年1月 kanda.motohiro@gmail.com 作成。
CC BY-SA 4.0 のもとで公開します
第1章は、ほぼおなはしで
•Reliability
•Scalability
•Maintainability
さらっと流すけど、面白いエピソードは紹介する。
Reliability
• 信頼性。障害があっても期待通りのことをすること。
• Netflix Chaos Monkey 本番システムで、わざと、ラックのケーブルを
抜く
• ハードウエア障害。冗長化して対処する。
• ソフトウェアの誤り。は、多数のマシンを同時に落とすことがある。
• 人的誤り。大きなインターネットサービスでの報告:オペレータの構
成誤りは、ハードウエア障害(10%から25%)以上の、サービス停
止原因。
Scalability
• 負荷が増えても耐えられること
• Twitter の場合
• 主な操作は2つ。
• (1) Post tweet:つぶやく。
• (2) Home timeline:フォローしている人のつぶやきを見る。
• 実装案1.(1) つぶやきのグローバルなキューに入れる。(2) 自分のフォロー
している人のつぶやきを集めて、時刻でソートして見せる。
• 実装案2.(2) 各ユーザは、 Home timeline のキャッシュを持つ。(1) つぶやく
ときは、フォロワーのHome timeline 全てにつっこむ。
• 最初は、1で実装したが、2に変更した。(2) は、(1) より2桁多い。しかし、3
千万フォロワーを持つ人がつぶやくと大変。最終的にハイブリッドにした。
Scalability
• ところで、負荷とは?性能とは?
• Amazon の場合。性能値とは?
• 99.9th percentile の応答が、規定時間内に終わることが重要。
• 平均値は意味がない。重い問い合わせをするお客さんは、最も買い物をす
る人。その人たちの満足度を上げることが重要。
• 負荷に対処する方法。スケールアップ、スケールアウト。
• stateless マシンを複製して増やすのは簡単。スケールアウト。例を
挙げよ。
• データベースを複数ノード構成にするのは面倒なので(なぜ?か知
りたければ9章まで読め)普通、スケールアップ。しかしスケールアウ
トするしかない時が来る。=>この本の主題
Maintainability
Many people working on software systems
dislike maintenance.
It involves
•fixing other people’s mistakes
•systems that were forced to do things they
were never intended for.
(笑)
From Designing Data-Intensive Applications by Martin Kleppmann Copyright © 2017 Martin
Kleppmann. All rights reserved.
Maintainability
•Operability 運用しやすいこと
•Simplicity 単純であること
•Evolvability 拡張できること
Also known as extensibility, modifiability,
or plasticity.
1章終わり
第2章
データモデルといえばSQL
リレーショナルモデルは表形式。
SELECT * FROM BOOKS WHERE Title =
‘Designing Data-intensive App’
Title Author Publisher
新しいデータモデル:ドキュメント
user table
250 Kanda
251 Kleppmann
positions table
developer
writer
job table
job 1
job 2
リレーショナルが苦手とする階層構造
Designing Data-Intensive Applications by
Martin Kleppmann Copyright © 2017 Martin
Kleppmann. All rights reserved.
新しいデータモデル:ドキュメント
• リレーショナルの問題:1対多とか、階層型構造を入れにく
い。
• 対策:データベースのフィールドに、XML, JSON をいれる。Oracle 他。
• ドキュメントデータベース
• 表形式のデータモデルを捨ててしまえ。
• MongoDB, RethinkDB, CouchDB, Espresso
• 実は、1970年代にIBM が、IMS という階層型データベース
製品を出していた。
スキーマ
• 伝統的リレーショナルデータベースは、スキーマ、つまりレコードの
フィールド定義を事前に行う。
• ドキュメントデータベースの多くは、スキーマレス。個々のレコードが、
フィールドの記述子、タグ、を持つ。
長所:フィールド追加が簡単。レコードごとにフィールド構成が違っても
大丈夫。データモデルのダイナミックな変更。
短所:読むときにアプリケーションが意識しないといけない。
全てのフィールドがタグ付きで格納されるので、ディスクがむだ。実装
による。
ローカリティ
• ドキュメントの tree ごとにディスクに持つと、ドキュメント更新で、
ディスク読み書きが一度で済んで、効率的。ノードで分割されている
場合、通信が発生しないことはもっと重要。
• 実は、ドキュメントデータベースに限らない。
• Google Spanner テーブルの行を、親テーブル内にネストして置く指定がで
きる。
• Oracle multi-table index cluster table と呼ぶ。
• Bigtable(used in Cassandra and HBase) は、column-family という概
念でカラムのまとめをサポートする。
データベース問い合わせ言語には
• declarative 何が欲しいかを指示する。SQL
• imperative 欲しいものを取ってくる手順を指示する。
がある。
CSS と XSL の話は省略。
Mongodb での MapReduce の例も省略。
あなたのデータが本質的に多対多なら
• グラフデータベースの出番 (だけど私はあまり興味ないのでこのスライド
一枚だけ)
• グラフモデル
• property graph model (implemented by Neo4j, Titan, and
InfiniteGraph)
• triple-store model (implemented by Datomic, AllegroGraph)
• グラフ問い合わせ言語
• Cypher, SPARQL, Datalog, Gremlin, Pregel
2章終わり

More Related Content

Similar to Designing data intensive applications-ch1

Microsoft MVP から見たクラウド サービスの現状と今後について
Microsoft MVP から見たクラウド サービスの現状と今後についてMicrosoft MVP から見たクラウド サービスの現状と今後について
Microsoft MVP から見たクラウド サービスの現状と今後について
IIJ
 
Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...
Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...
Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...
Toshikazu Ichikawa
 
LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話
YoshihiroFujita8
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
Taiki
 
About SoftLayer at OSC Tokyo Spring
About SoftLayer at OSC Tokyo SpringAbout SoftLayer at OSC Tokyo Spring
About SoftLayer at OSC Tokyo Spring
Kimihiko Kitase
 
ET2018 EnOcean Gateway Smart Japan Alliance
ET2018 EnOcean Gateway Smart Japan AllianceET2018 EnOcean Gateway Smart Japan Alliance
ET2018 EnOcean Gateway Smart Japan Alliance
Atomu Hidaka
 
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~ データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
Brocade
 
2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」
2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」
2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」
Serverworks Co.,Ltd.
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
 
New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界
New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界
New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界
Brocade
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
政雄 金森
 
Automation Anywhere A2019クラウドの基本情報
Automation Anywhere A2019クラウドの基本情報Automation Anywhere A2019クラウドの基本情報
Automation Anywhere A2019クラウドの基本情報
Automation Anywhere Japan
 
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
Nobuyuki Matsui
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
 
Builderscon Tokyo 2017
Builderscon Tokyo 2017 Builderscon Tokyo 2017
Builderscon Tokyo 2017
Shinichiro Takezaki
 
【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。
【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。
【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。
Juniper Networks (日本)
 
Amalgam8 application switch for cloud native services
Amalgam8   application switch for cloud native servicesAmalgam8   application switch for cloud native services
Amalgam8 application switch for cloud native services
Takehiko Amano
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
agileware_jp
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
 
コンテナは次世代サービスの主流になるか?
コンテナは次世代サービスの主流になるか?コンテナは次世代サービスの主流になるか?
コンテナは次世代サービスの主流になるか?
SAKURA Internet Inc.
 

Similar to Designing data intensive applications-ch1 (20)

Microsoft MVP から見たクラウド サービスの現状と今後について
Microsoft MVP から見たクラウド サービスの現状と今後についてMicrosoft MVP から見たクラウド サービスの現状と今後について
Microsoft MVP から見たクラウド サービスの現状と今後について
 
Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...
Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...
Report of OpenStack ops mid cycle meetup at Philadelphia in Mar, 2015 (In Jap...
 
LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 
About SoftLayer at OSC Tokyo Spring
About SoftLayer at OSC Tokyo SpringAbout SoftLayer at OSC Tokyo Spring
About SoftLayer at OSC Tokyo Spring
 
ET2018 EnOcean Gateway Smart Japan Alliance
ET2018 EnOcean Gateway Smart Japan AllianceET2018 EnOcean Gateway Smart Japan Alliance
ET2018 EnOcean Gateway Smart Japan Alliance
 
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~ データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
 
2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」
2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」
2011年12月 アタックス共同セミナー「先行投資を最小化するクラウドの最新事情」
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界
New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界
New IP へのステップ その2) NFV – ソフトウェアで実装するネットワークの世界
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
 
Automation Anywhere A2019クラウドの基本情報
Automation Anywhere A2019クラウドの基本情報Automation Anywhere A2019クラウドの基本情報
Automation Anywhere A2019クラウドの基本情報
 
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
 
Builderscon Tokyo 2017
Builderscon Tokyo 2017 Builderscon Tokyo 2017
Builderscon Tokyo 2017
 
【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。
【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。
【Interop Tokyo 2015】将来にわたる収益化を支えるデータセンターインフラとは。
 
Amalgam8 application switch for cloud native services
Amalgam8   application switch for cloud native servicesAmalgam8   application switch for cloud native services
Amalgam8 application switch for cloud native services
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
コンテナは次世代サービスの主流になるか?
コンテナは次世代サービスの主流になるか?コンテナは次世代サービスの主流になるか?
コンテナは次世代サービスの主流になるか?
 

Recently uploaded

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
ooishi1
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
 

Recently uploaded (6)

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
 

Designing data intensive applications-ch1

Editor's Notes

  1. 2019年1月 kanda.motohiro@gmail.com 作成。 CC BY-SA 4.0 のもとで公開します
  2. 2章の扉絵、すごく読みごたえがあるのだけど、まるごと複写して公開文書に含めるのは著作権的にまずいおそれがあるので、クレジットを入れてよしとしよう。