Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Amazon DynamoDB、
Cloudant、Blockchainの紹介
2016年 7月 6日
IBM アーキテクト 平山 毅
© 2016 IBM Corporation
自己紹介 名前︓平⼭ 毅(ひらやま つよし)
Twitter : t3hirayama
Facebook : tsuyoshi.hirayama
2016年2月 IBM入社。アーキテクト。
IBMが...
© 2016 IBM Corporation
最近のIBMのニュース
楽しくやってます
Agenda
1. Amazon DynamoDB
・基本機能と特徴
・Dynamo論⽂と結果整合性の考え⽅
2. IBM Cloudant
3. IBM Blockchain
DynamoDB EMR
RDS Redshift
SparkCloudant
DB2 Netezza
DashDB
原沢さん資料抜粋からAWSとIBMのサービス
例)AWSでのDB選択基準
アクセス
パターン
テーブル
結合の多さ
Redshift
バッチ
オンライン
RDS
MySQL
Oracle
Yes
イン
メモリ
No
ElastiCache
Redis
関数依存
テーブルジョイン
カラムナ
...
DynamoDBとは
• NoSQL as a Service
• 超高速・予測可能な一貫したパフォーマンス
• シームレスなスケーラビリティ、そして低コスト
運⽤管理必要なし
低レイテンシ、SSD
プロビジョンスループット
無限に使えるストレ...
DynamoDBの⽣い⽴ち
• Amazon.comではかつて全てのアクセスパターンをRDBMSで処理して
いた
• 規模が大きくなるにつれて、RDBMSの課題に直面
• スケーラビリティ
• 処理能⼒を向上させるのが難しい。データの再配置、よ...
DynamoDBの⽣い⽴ち
• RDBMSの課題に対処するため、Amazon Dynamo (DynamoDB
の先祖)を設計・開発
• Amazon Dynamoの特⻑
• ベネフィット
• 結果整合性モデル採用による可用性向上
• HWを追...
DynamoDBの誕⽣
• AWS上に「サービス」として実装
• Amazon Dynamoをサービス化したものではないので注意
• パフォーマンスのために堅牢性・可用性を妥協しない
• 常に低レイテンシーで応答を返す
• 開発者(利用者)はス...
DynamoDBの特⻑
• 管理不要で信頼性が⾼い
• プロビジョンドスループット
• ストレージの容量制限がない
特⻑1︓管理不要で信頼性が高い
• SPOFの存在しない構成
• データは3箇所のAZに保存されるので信頼性が高い
• ストレージは必要に応じて自動的にパーティショニングされる
クライアント
特⻑2︓プロビジョンドスループット
• テーブルごとにReadとWriteそれぞれに対し、必要な分だけのスループット
キャパシティを割り当てる(=プロビジョンする)ことができる
• 例えば下記のようにプロビジョンする
• Read : 1,00...
特⻑3︓ストレージの容量制限がない
• 使った分だけの従量課⾦制のストレージ
• データ容量の増加に応じたディスクやノードの増設作業は一切
不要
キーとインデックス
Hash Range LSI GSI
A 1 b
A 2 a {
A 3 a
A 4 a a
A 5 c a
B a
B a
GSIはHash
を跨ぐ
LSIはRange
を跨ぐ
DynamoDB Table
複合プライマリキーの分割モデリング
(苗字)
Hash Key
(名前)
Range Key
テーブル分割
(苗字)
Hash Key
(住所)
Range Key
(A)
(苗字)PK (名前)PK (住所)PK (A)
Kim Bob To...
DynamoDBで提供されているAPI
• PutItem
• UpdateItem
• GetItem
• DeleteItem
• Query
• Scan
• BatchWriteItem
• BatchGetItem
• CreateT...
Data Types
• String (S)
• Number (N)
• Binary (B)
• String Set (SS)
• Number Set (NS)
• Binary Set (BS)
• Boolean (BOOL)
•...
DynamoDBを使い始めるには
1. テーブルのKeyやIndexを決める
2. Read/Writeそれぞれのスループットを決める
That’s it, write your code!
DynamoDBの整合性モデル
• Write
• 少なくとも2つのAZでの書き込み完了が確認とれた時点でAck
• Read
• デフォルト
• 一貫性保証のないRead
• Consistent Readオプションを付けたリクエスト
• R...
分散リプリケーションと結果整合性の関係
Zone 1
Zone 3
Zone 2
LB& HTTP
Server
(RING)
A
B
A
A
②GET
①PUT
PUT Replication
A→Bに更新する
更新前のAが取得される
GET...
パーティションとスループット
A,D B,E C,F
123456789
Parition1 Partition2 ParitionN
Table
プロビジョンドスループット: x
x/N x/N x/N
Hash
Range
プロビジョンドスループット
• テーブルレベルによってプロビジョニング
• Write Capacity Units (WCU)
• 1 秒あたりの項目書き込み回数 x 項目のサイズ (1 KB ブロック)
• Read Capacity Un...
パーティショニングの算出⽅法
( )
( )
( )( )( )
スループット
ストレージサイズ
大きいほうを採用
パーティショニング算出例
= 0.8 = 1
( )
( )
! "#$
% &'(
! )#$
*'(
= 2.17 = 3
Table size = 8 GB, RCUs = 5000, WCUs = 500
( )
RCUs per pa...
DynamoDB JSON イメージ
{
“ID" : 123,
“Name" : “Tanaka",
“Place" :
[ “Tokyo", “London", “HongKong"]
}
ID
(PK:Ha
sh)
Name
(Map
型...
• テーブルの更新の情報を保持
• 非同期に更新
• シリアライズされたデータ
• アイテム毎の厳密な管理
• 高耐久性
•テーブルよるスケール
• 有効期限は24時間
• 1秒未満の遅延書き込み
DynamoDB stream
DynamoDB クロスリージョンレプリケーション
リージョン間リプリケーション
を担うサーバーが
内部的に起動し制御する
Stream
Table
Partition 1
Partition 2
Partition 3
Partition 4
Partition 5
テーブル
Shard 1
Shard 2
Shard 3
Shard 4
KCL
Worker
K...
DynamoDB Stream and AWS Lambda
DynamoDB の Cloudwatch Metric Console
Capacity Unit Metrics 階層
Table
Index
Read
Write
Read
Write
Provisioned
Consumed
Throttle
Provisioned
Consumed
Throttle
Pro...
課⾦と損益分岐モデル
キャパシティ
ユニット
リザーブド
キャパシティ
キャパシティ
ユニット数
サービス
利用料
金額
前払い金
サービス
利用料無料枠
ゲームアプリでのDynamoDB利用典型構成
ユーザーデータ、
セッションデータ
利用履歴データ、
メタデータ、
等を格納
メタデータ管理として使う例
DynamoDB 検討事項
■テーブル内のすべての項目に対して均一なデータアクセスを実現する設計
■パーティションの動作
■急激に増大するキャパシティーは控えめに使用する
■データアップロード時に書き込みアクティビティを分散する
■時系列データ...
Dynamo論⽂: Amazonの高可用性Key-value Store
原版(英語) ︓ http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
日本語版 ︓ https...
結果整合性
Problem Technique Advantage
パーティショニング コンシステントハッシング 線形的なスケーラビリティ
writeの高可用性 read時の調停を伴うVector clock バージョンサイズが更新頻度に⽐例し...
Cloudantとは
• IBMが2015年に買収
• Couchbaseと互換性有
• ドキュメント型NoSQL
• IBM Bluemix上で提供
• DashDB等の連動機能
• AnalyticsとIoTのデータ管理基盤
Cloudant の特徴
• 主な機能および特徴
• 高いスケーラビリティー
• 大規模Webアプリケーションや、急激なワークロードの変化が起こりう
るモバイル・アプリのデータストアに最適
• マルチマスター・レプリケーション機能
• 異なるデ...
Cloudant Console
• Databases
• データベースをリスト
• データ参照、更新
• View作成
• Search index作成
• Replication
• Replication設定
• Werahousing...
© 2016 IBM Corporation
Blockchain = 概念
・Bitcoinの仮想通貨を元にして、分散共有台帳を使ってP2P取引を効率化する技術の「概念」です。
<従来> <Blockchain>
・個別台帳を各々の参加者で保...
© 2016 IBM Corporation
Open Blockchain = 実装
・Blockchainの概念を「実装」するOSSプログラム
・IBMが開発し、Hyperledgerプロジェクトに提供
(contribute)してOSS化...
© 2016 IBM Corporation
Hyperledger Project
Linux Foundation内の、「オープンソースでのブロックチェーン技術推進コミュニティー」でOpen Blockchainの開発
をリードすることを表...
© 2016 IBM Corporation
IBM Blockchain = 付加価値を提供
・Open Blockchainを使いやすくしたもの
・Bluemix Blockchainのベースになっている
具体的には、、
・Node.js ...
© 2016 IBM Corporation
関係をまとめると
Linux
開発
追加
デプロイ
デプロイ
デプロイ
© 2016 IBM Corporation
Blockchainのネットワーク
・検証されたメンバーシップ間でネットワークを構成し、その間でブロックチェーンを形成する。
Open Blockchain Whitepaperより抜粋
https...
© 2016 IBM Corporation
Open Blockchain の全体像
Open Blockchain Whitepaperより抜粋
https://github.com/openblockchain/obc-docs/blob...
© 2016 IBM Corporation
Blockchainの基本構造
b(4)
承認された
トランザクション
ハッシュ値 ハッシュ値 ハッシュ値
未承認
トランザクション
b(n) b(n+1) b(n+2) b(n+3)
n番目のブロ...
© 2016 IBM Corporation
ピアで同期されるデータ
Blockchainの構成要素
Smart
Contract
Smart
Contract
Privacy and
Confidencial
ity
Privacy and
...
© 2016 IBM Corporation
Blockchainの内部構成技術(2016年4月時点)
同期
・分散型アーキテクチャーのため、クラウドネイティブを代表するソフトウェアで構成されています。
© 2016 IBM Corporation
Blockchainのシステム構成とクラウドの親和性
・Blockchainはマルチテナント間のネットワーク接続性が重要であるため、そこに優れているクラウドは有利。
Blockchain
本番デプロ...
© 2016 IBM Corporation
IBM Watson IoT MQTT
MQTT
デバイス IBM
IoT Platform
従来型アプリケーション
MQTT
MQTTサーバー
デバイスの管理
履歴の保存
REST
管理アプリケー...
© 2016 IBM Corporation
Watson IoT から Blockchain への連動
チェーンコード
に格納される
合意形成
がされる
分散台帳にデータが
格納される
IoTのイベントをフィルターし、プライベートなIBM B...
OBCのトランザクションと台帳
message Transaction {
enum Type {
UNDEFINED = 0;
CHAINCODE_NEW = 1;
CHAINCODE_UPDATE = 2;
CHAINCODE_EXECUT...
IBM blockchainでのアーキテクチャ
検証ピア
ノード
(obc-
peer)
Dockerコンテナ
アプリケーションバックエンドノード
台帳(Ledger)
ブロックのリスト
ブロックチェーン
開発者
アプリケーション
(例:Web...
分散アーキ
↓
信頼性向上(例︓AWS、Blockchain)
↓
NoSQLが肝
まとめ、お伝えしたいこと
エンタープライズでもこの波は来ます
text
この資料に含まれる情報は可能な限り正確を期しておりますが、アマゾンウェブサービスジャパン株式会社の正式なレビューを受けておらず、当
資料に記載された内容に関しはアマゾンウェブサービスジャパンは何ら保証するものではありません。
この資料...
Upcoming SlideShare
Loading in …5
×

Amazon dynamo db、cloudant、blockchainの紹介 20160706

631 views

Published on

「RDB技術者のためのNoSQLガイド」出版記念セミナー(第二回)http://nosqlguid.connpass.com/event/30509/ での「Amazon DynamoDB、Cloudant、Blockchainの紹介」発表資料です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Amazon dynamo db、cloudant、blockchainの紹介 20160706

  1. 1. Amazon DynamoDB、 Cloudant、Blockchainの紹介 2016年 7月 6日 IBM アーキテクト 平山 毅
  2. 2. © 2016 IBM Corporation 自己紹介 名前︓平⼭ 毅(ひらやま つよし) Twitter : t3hirayama Facebook : tsuyoshi.hirayama 2016年2月 IBM入社。アーキテクト。 IBMが従来のハードウェアとソフトウェアのモデルから コグニティブとクラウドにシフトとブロックチェーン技術のリードを宣言するタイミングでジョイン。 Bluemix/SoftLayer統合やWatson IoT Blockchain 等をメインに対応 【前職】 ・Amazon Web Services (AWS) Professional Services Consultant , Enterprise Solutions Architect ・Tokyo Stock Exchange (TSE) IT Service Manager , Enterprise Architect , Derivative Master ・Nomura Research Institute (NRI) Financial Systems Engineer 【執筆著書】
  3. 3. © 2016 IBM Corporation 最近のIBMのニュース 楽しくやってます
  4. 4. Agenda 1. Amazon DynamoDB ・基本機能と特徴 ・Dynamo論⽂と結果整合性の考え⽅ 2. IBM Cloudant 3. IBM Blockchain
  5. 5. DynamoDB EMR RDS Redshift SparkCloudant DB2 Netezza DashDB 原沢さん資料抜粋からAWSとIBMのサービス
  6. 6. 例)AWSでのDB選択基準 アクセス パターン テーブル 結合の多さ Redshift バッチ オンライン RDS MySQL Oracle Yes イン メモリ No ElastiCache Redis 関数依存 テーブルジョイン カラムナ 構造 フラット ファイル ベース ElasticMapReduce MS-SQL ElastiCache Memcached DynamoDB VPC外 AWSサービス との連携性 No No Yes Yes 原則 機能依存 TDE MS依存、SAP TDE
  7. 7. DynamoDBとは • NoSQL as a Service • 超高速・予測可能な一貫したパフォーマンス • シームレスなスケーラビリティ、そして低コスト 運⽤管理必要なし 低レイテンシ、SSD プロビジョンスループット 無限に使えるストレージ 分散アーキ
  8. 8. DynamoDBの⽣い⽴ち • Amazon.comではかつて全てのアクセスパターンをRDBMSで処理して いた • 規模が大きくなるにつれて、RDBMSの課題に直面 • スケーラビリティ • 処理能⼒を向上させるのが難しい。データの再配置、より大きなHWを導入するなどの対処が 必要。 • 可用性 • RDBMSは可用性よりもデータの整合性を重視する設計 • トランザクション処理が不要な場面でも、全てはトランザクションとして処理される パフォーマンスのオーバーヘッド大
  9. 9. DynamoDBの⽣い⽴ち • RDBMSの課題に対処するため、Amazon Dynamo (DynamoDB の先祖)を設計・開発 • Amazon Dynamoの特⻑ • ベネフィット • 結果整合性モデル採用による可用性向上 • HWを追加する毎に性能が向上するスケーラビリティ • クエリーモデルが単純なためパフォーマンスが予測できる • 妥協点 • 強い整合性モデルではない • スケールアップの際にHWの追加やクラスタのリバランスが必要 • 開発者がDB管理作業から開放されるわけではない Amazon S3のように”サービスとして使いたい”という声
  10. 10. DynamoDBの誕⽣ • AWS上に「サービス」として実装 • Amazon Dynamoをサービス化したものではないので注意 • パフォーマンスのために堅牢性・可用性を妥協しない • 常に低レイテンシーで応答を返す • 開発者(利用者)はスケーラビリティを気にしなくて良く、いつでも 簡単に増減できる • サーバーやディスク台数ではなく、シンプルに必要な読み書きの性 能数値を指定するだけ • 管理作業が不要
  11. 11. DynamoDBの特⻑ • 管理不要で信頼性が⾼い • プロビジョンドスループット • ストレージの容量制限がない
  12. 12. 特⻑1︓管理不要で信頼性が高い • SPOFの存在しない構成 • データは3箇所のAZに保存されるので信頼性が高い • ストレージは必要に応じて自動的にパーティショニングされる クライアント
  13. 13. 特⻑2︓プロビジョンドスループット • テーブルごとにReadとWriteそれぞれに対し、必要な分だけのスループット キャパシティを割り当てる(=プロビジョンする)ことができる • 例えば下記のようにプロビジョンする • Read : 1,000 • Write : 100 • 書き込みワークロードが上がってきたら • Read : 500 • Write : 1,000 • この値はDB運用中にオンラインで変更可能 • ただし、スケールダウンに関しては日に4回までしかできないので注意
  14. 14. 特⻑3︓ストレージの容量制限がない • 使った分だけの従量課⾦制のストレージ • データ容量の増加に応じたディスクやノードの増設作業は一切 不要
  15. 15. キーとインデックス Hash Range LSI GSI A 1 b A 2 a { A 3 a A 4 a a A 5 c a B a B a GSIはHash を跨ぐ LSIはRange を跨ぐ DynamoDB Table
  16. 16. 複合プライマリキーの分割モデリング (苗字) Hash Key (名前) Range Key テーブル分割 (苗字) Hash Key (住所) Range Key (A) (苗字)PK (名前)PK (住所)PK (A) Kim Bob Tokyo Yamada Yuji Tokyo Tanaka Ken Sendai キーの結合 (苗字・名前) Hash Key (住所) Range Key (A) Kim Bob Tokyo Yamada Yuji Tokyo Tanaka Ken Sendai 結合
  17. 17. DynamoDBで提供されているAPI • PutItem • UpdateItem • GetItem • DeleteItem • Query • Scan • BatchWriteItem • BatchGetItem • CreateTable • DescribeTable • UpdateTable • DeleteTable
  18. 18. Data Types • String (S) • Number (N) • Binary (B) • String Set (SS) • Number Set (NS) • Binary Set (BS) • Boolean (BOOL) • Null (NULL) • List (L) • Map (M) JSON用に定義
  19. 19. DynamoDBを使い始めるには 1. テーブルのKeyやIndexを決める 2. Read/Writeそれぞれのスループットを決める That’s it, write your code!
  20. 20. DynamoDBの整合性モデル • Write • 少なくとも2つのAZでの書き込み完了が確認とれた時点でAck • Read • デフォルト • 一貫性保証のないRead • Consistent Readオプションを付けたリクエスト • Readリクエストを受け取る前までのWriteがすべて反映されたレスポ ンスを保証 • ただし、Capacity Unitを2倍消費する
  21. 21. 分散リプリケーションと結果整合性の関係 Zone 1 Zone 3 Zone 2 LB& HTTP Server (RING) A B A A ②GET ①PUT PUT Replication A→Bに更新する 更新前のAが取得される GET GET GET A → B B BA Zone 2 Zone 3 A GET A A or B B
  22. 22. パーティションとスループット A,D B,E C,F 123456789 Parition1 Partition2 ParitionN Table プロビジョンドスループット: x x/N x/N x/N Hash Range
  23. 23. プロビジョンドスループット • テーブルレベルによってプロビジョニング • Write Capacity Units (WCU) • 1 秒あたりの項目書き込み回数 x 項目のサイズ (1 KB ブロック) • Read Capacity Units (RCU) • 1 秒あたりの読み込み回数 x 項目のサイズ (4 KB ブロック) • 結果整合性のある読み込みをする場合はスループットが 2 倍 • 読み込みと書き込みのスループットはそれぞれ独⽴ WCURCU
  24. 24. パーティショニングの算出⽅法 ( ) ( ) ( )( )( ) スループット ストレージサイズ 大きいほうを採用
  25. 25. パーティショニング算出例 = 0.8 = 1 ( ) ( ) ! "#$ % &'( ! )#$ *'( = 2.17 = 3 Table size = 8 GB, RCUs = 5000, WCUs = 500 ( ) RCUs per partition = 5000/3 = 1666.67 WCUs per partition = 500/3 = 166.67 Data/partition = 8/3 = 2.66 GB RCUとWCU の値は均一に各パーテションに割り 当てられます スループット ストレージサイズ 大きいほうを採用
  26. 26. DynamoDB JSON イメージ { “ID" : 123, “Name" : “Tanaka", “Place" : [ “Tokyo", “London", “HongKong"] } ID (PK:Ha sh) Name (Map 型) Place (List型) 123 {Tanaka } [Tokyo,London,Hong Kong] DynamoDB dynamo = new DynamoDB(new AmazonDynamoDBClient(...)); Table table = dynamo.getTable("HumanResource"); Item item = new Item() .withPrimaryKey("id", 123) .withJSON("document", json); table.putItem(item); HumanResource テーブル JSON DynamoDB dynamo = new DynamoDB(new AmazonDynamoDBClient(...)); Table table = dynamo.getTable(“HumanResource"); Item documentItem = table.getItem(new GetItemSpec() .withPrimaryKey("id", 123) .withAttributesToGet("document")); System.out.println(documentItem.get("document")); 挿入 出力 JSON マッピング JSON マッピング
  27. 27. • テーブルの更新の情報を保持 • 非同期に更新 • シリアライズされたデータ • アイテム毎の厳密な管理 • 高耐久性 •テーブルよるスケール • 有効期限は24時間 • 1秒未満の遅延書き込み DynamoDB stream
  28. 28. DynamoDB クロスリージョンレプリケーション リージョン間リプリケーション を担うサーバーが 内部的に起動し制御する
  29. 29. Stream Table Partition 1 Partition 2 Partition 3 Partition 4 Partition 5 テーブル Shard 1 Shard 2 Shard 3 Shard 4 KCL Worker KCL Worker KCL Worker KCL Worker Amazon Kinesis Client Library Application DynamoDB クライアント アプリケーション 更新 DynamoDB Stream and Amazon Kinesis Client Library
  30. 30. DynamoDB Stream and AWS Lambda
  31. 31. DynamoDB の Cloudwatch Metric Console
  32. 32. Capacity Unit Metrics 階層 Table Index Read Write Read Write Provisioned Consumed Throttle Provisioned Consumed Throttle Provisioned Consumed Throttle Provisioned Consumed Throttle Table or Index Read or Write *Provisioned(割当) *Consumed(消費) *Throttle(超過)
  33. 33. 課⾦と損益分岐モデル キャパシティ ユニット リザーブド キャパシティ キャパシティ ユニット数 サービス 利用料 金額 前払い金 サービス 利用料無料枠
  34. 34. ゲームアプリでのDynamoDB利用典型構成 ユーザーデータ、 セッションデータ 利用履歴データ、 メタデータ、 等を格納
  35. 35. メタデータ管理として使う例
  36. 36. DynamoDB 検討事項 ■テーブル内のすべての項目に対して均一なデータアクセスを実現する設計 ■パーティションの動作 ■急激に増大するキャパシティーは控えめに使用する ■データアップロード時に書き込みアクティビティを分散する ■時系列データへのアクセスパターンを理解する ■人気の高い項目をキャッシュに格納 ■プロビジョニングされたスループットを調整するときにワークロードの均一性を考慮する ■大規模環境でのアプリケーションのテスト ■高レベルプログラミング(Mapper、Hash Lock) Lock を掛けたいキーは、Hashに設計
  37. 37. Dynamo論⽂: Amazonの高可用性Key-value Store 原版(英語) ︓ http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html 日本語版 ︓ https://gist.github.com/matope/2657692 データの一貫性に関しては結果整合性を保証するサービス の考え⽅で、Amazon DynamoDBとは別物 ※DynamoDBはReplication単位を指定できない。 Cassandraは可能。
  38. 38. 結果整合性 Problem Technique Advantage パーティショニング コンシステントハッシング 線形的なスケーラビリティ writeの高可用性 read時の調停を伴うVector clock バージョンサイズが更新頻度に⽐例しない。 一時的障害への対応 Sloppy Quorumとhinted hand off いくつかのレプリカが停止している時に高い可 用性と永続性を提供する。 永続的障害からのリカバリ Markle木を用いたAnti-entropy バックグラウンドでレプリカの不一致を同期する メンバーシップと障害検知 Gossipベースのメンバーシッププロトコルと障 害検知 対称性を保護し、メンバーシップとノード⽣存 情報の集約管理的な登録を避ける。
  39. 39. Cloudantとは • IBMが2015年に買収 • Couchbaseと互換性有 • ドキュメント型NoSQL • IBM Bluemix上で提供 • DashDB等の連動機能 • AnalyticsとIoTのデータ管理基盤
  40. 40. Cloudant の特徴 • 主な機能および特徴 • 高いスケーラビリティー • 大規模Webアプリケーションや、急激なワークロードの変化が起こりう るモバイル・アプリのデータストアに最適 • マルチマスター・レプリケーション機能 • 異なるデータセンター間で常に同期された状態に保つことができ、デー タの可用性を確保 • 高いセキュリティーとデータ保護 • ⾦融、医療、⾏政機関などのセキュリティーが重視される多くの分野 で採用 • モバイル・アプリとのデータ同期 • アプリのオフライン利用を可能にする。同期の際にはジオ・ロード・バラ ンサー機能によりユーザーに近いデータセンターと同期させ、高速なア クセスを実現 • JSON(JavaScript Object Notation)形式でデー タを保存する NoSQL DB • ドキュメントの保存、更新、削除、検索といった操作に RESTful API を利用 • データベース管理のためのWebコンソールを提供 • 全⽂検索機能や地理空間機能、MapReduce を利 用したリアルタイムのインデックス機能を持つ Write してReplicationする仕組み クラスタ間のPull/PushとSyncが可能
  41. 41. Cloudant Console • Databases • データベースをリスト • データ参照、更新 • View作成 • Search index作成 • Replication • Replication設定 • Werahousing • dashDBとのデータ連携 • Active Tasks • ReplicationやCompaction などバック・グランドで実⾏されて いるタスクを確認
  42. 42. © 2016 IBM Corporation Blockchain = 概念 ・Bitcoinの仮想通貨を元にして、分散共有台帳を使ってP2P取引を効率化する技術の「概念」です。 <従来> <Blockchain> ・個別台帳を各々の参加者で保持する。 →管理主体が制御する。 ・同じ台帳を参加者間で共有して保持する。 →管理主体が不要(Blockchainが主体) ・共有台帳の分散同期技術 ・P2Pの認証技術 (従来のエンタープライズアプリケーションを変える︖)
  43. 43. © 2016 IBM Corporation Open Blockchain = 実装 ・Blockchainの概念を「実装」するOSSプログラム ・IBMが開発し、Hyperledgerプロジェクトに提供 (contribute)してOSS化したもの ・Bitcoin技術をベースとしつつも、 汎用性、拡張性、セキュリティを多く加えたもの https://github.com/openblockchain のGit上に仕様書とソースコードが掲載
  44. 44. © 2016 IBM Corporation Hyperledger Project Linux Foundation内の、「オープンソースでのブロックチェーン技術推進コミュニティー」でOpen Blockchainの開発 をリードすることを表明。(IBMは30社のPremierメンバー。)
  45. 45. © 2016 IBM Corporation IBM Blockchain = 付加価値を提供 ・Open Blockchainを使いやすくしたもの ・Bluemix Blockchainのベースになっている 具体的には、、 ・Node.js の SDK提供 ・MarblesやCP等のサンプルコードを提供 等 https://github.com/IBM-Blockchain のGit上に仕様書とソースコードが掲載
  46. 46. © 2016 IBM Corporation 関係をまとめると Linux 開発 追加 デプロイ デプロイ デプロイ
  47. 47. © 2016 IBM Corporation Blockchainのネットワーク ・検証されたメンバーシップ間でネットワークを構成し、その間でブロックチェーンを形成する。 Open Blockchain Whitepaperより抜粋 https://github.com/openblockchain/obc-docs/blob/master/whitepaper.md
  48. 48. © 2016 IBM Corporation Open Blockchain の全体像 Open Blockchain Whitepaperより抜粋 https://github.com/openblockchain/obc-docs/blob/master/whitepaper.md メンバーシップの検 証を⾏いネットワー クに参加 チェーンコードで 分散台帳の検証 ブロックチェーン処理
  49. 49. © 2016 IBM Corporation Blockchainの基本構造 b(4) 承認された トランザクション ハッシュ値 ハッシュ値 ハッシュ値 未承認 トランザクション b(n) b(n+1) b(n+2) b(n+3) n番目のブロック n+1番目のブロック n+2番目のブロック n+3番目のブロック ハッシュ値 ハッシュ値 ハッシュ値 ハッシュ値 承認された トランザクション 承認された トランザクション ・ブロックチェーンは追記型 ・ブロックチェーンには、過去のトランザクション「ハッシュ値(ダイジェスト)」が記録されており、 過去の情報を改竄できないようになっている
  50. 50. © 2016 IBM Corporation ピアで同期されるデータ Blockchainの構成要素 Smart Contract Smart Contract Privacy and Confidencial ity Privacy and Confidencial ity Shared Ledger Shared Ledger ConsensusConsensus 安全性の確保、 認証および検証 取引のための ビジネスロジックを記述 (チェーンコード) スマート・コントラクトを 通して⾏われた取引を システム的に確定 ネットワークで 共有される分散台帳
  51. 51. © 2016 IBM Corporation Blockchainの内部構成技術(2016年4月時点) 同期 ・分散型アーキテクチャーのため、クラウドネイティブを代表するソフトウェアで構成されています。
  52. 52. © 2016 IBM Corporation Blockchainのシステム構成とクラウドの親和性 ・Blockchainはマルチテナント間のネットワーク接続性が重要であるため、そこに優れているクラウドは有利。 Blockchain 本番デプロイ テナントA 開発検証として プログラム実証 テナントB 分散台帳 スマート・ コントラクト 取引ルールを 規定 取引履歴を保 存 合意形成セキュリティ Blockchain
  53. 53. © 2016 IBM Corporation IBM Watson IoT MQTT MQTT デバイス IBM IoT Platform 従来型アプリケーション MQTT MQTTサーバー デバイスの管理 履歴の保存 REST 管理アプリケーション 拡張サービス IoTのプロトコルはMQTTが基本。 MQTTとは、publish/subscribeモデルに基づく軽量なメッセージプロトコルで、IBMが策定し、現在はOASISが標準化を推進。 アプリケーションをスクラッチ開発をするために必要となる代表的なMQTTクライアントは以下の通り。 ・IBM Mobile Messaging and M2M Client Pack MA9Bg ・Eclipse Paho MQTT Clients ・MQTT.js NoSQL
  54. 54. © 2016 IBM Corporation Watson IoT から Blockchain への連動 チェーンコード に格納される 合意形成 がされる 分散台帳にデータが 格納される IoTのイベントをフィルターし、プライベートなIBM Blockchain のスマートコントラクトに要求されたデータのみを送信する アーリーアダプタのお客様のみにIBMのR&Dチームと共同で提供
  55. 55. OBCのトランザクションと台帳 message Transaction { enum Type { UNDEFINED = 0; CHAINCODE_NEW = 1; CHAINCODE_UPDATE = 2; CHAINCODE_EXECUTE = 3; CHAINCODE_QUERY = 4; CHAINCODE_TERMINATE = 5; } Type type = 1; string uuid = 5; bytes chaincodeID = 2; bytes payloadHash = 3; ConfidentialityLevel confidentialityLevel = 7; bytes nonce = 8; bytes cert = 9; bytes signature = 10; bytes metadata = 4; google.protobuf.Timestamp timestamp = 6; } message TransactionPayload { bytes payload = 1; } enum ConfidentialityLevel { PUBLIC = 0; CONFIDENTIAL = 1; } OBCでは永続データとして台帳データベース 内のワールドステートとして、key-value ペアのデータベースを持つ OBCトランザクション
  56. 56. IBM blockchainでのアーキテクチャ 検証ピア ノード (obc- peer) Dockerコンテナ アプリケーションバックエンドノード 台帳(Ledger) ブロックのリスト ブロックチェーン 開発者 アプリケーション (例:Webアプリ) チェーンコードA 開発 ワールドステート ブロック トランザクション ブロック ブロック key=valueデータを値取得・セット 設定ファイル 開発 共有ソースコードリポジトリ (GitHub.comなど) チェーンコードA REST エンドポイント 検証ピア ノード (obc- peer) イベントの送受信 (gRPC) gRPC ListenPort gRPC ListenPort JS ClientSDK トランザクション トランザクション チェーンコードB ︓
  57. 57. 分散アーキ ↓ 信頼性向上(例︓AWS、Blockchain) ↓ NoSQLが肝 まとめ、お伝えしたいこと エンタープライズでもこの波は来ます
  58. 58. text この資料に含まれる情報は可能な限り正確を期しておりますが、アマゾンウェブサービスジャパン株式会社の正式なレビューを受けておらず、当 資料に記載された内容に関しはアマゾンウェブサービスジャパンは何ら保証するものではありません。 この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資料に記載 された内容に関して日本アイ・ビー・エムは何ら保証するものではありません。 ワー クショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情 報提供の目的 のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結 果を生むものでもありません。 本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供さ れ、明示または暗示にかかわらずいかなる保証 も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の 関連によって、いかなる損害が生じた場合も、IBMは責任を負わ ないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライ ヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBM ソフトウェアの使用を規定する適用ライセンス契 約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。 本 講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であること を暗示するも のではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独 自の決定権をもっていつでも変 更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したも のではありません。本講演資料に含まれている 内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生 じると述べる、または暗示することを意図したものでも、またその ような結果を生むものでもありません。 パフォーマンスは、管理された環境にお いて標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパ フォーマンスは、ユーザ ーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮 事項を含む、 数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありま せ ん。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として 示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM, IBM ロゴ、ibm.com, は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。

×