Deconstruction of Serverless and blockchain

27
Serverless and Blockchain Deconstruction of Copyright © NTT COMWARE CORPORATION 2017

Transcript of Deconstruction of Serverless and blockchain

Page 1: Deconstruction of Serverless and blockchain

Serverless and BlockchainDeconstruction of

Copyright © NTT COMWARE CORPORATION 2017

Page 2: Deconstruction of Serverless and blockchain

Agenda

● Serverless● Blockchain● Demo

Copyright © NTT COMWARE CORPORATION 2017

Page 3: Deconstruction of Serverless and blockchain

Serverless

Copyright © NTT COMWARE CORPORATION 2017

Page 4: Deconstruction of Serverless and blockchain

サーバーレスとは?

● サーバーを意識しないフルマネージド・アプリケーション実行環境

○ 最近流行の意味ではFunction as a Service(FaaS)のこと

● このような環境における実装スタイルをサーバーレスアーキテクチャと呼ぶ

Copyright © NTT COMWARE CORPORATION 2017

Page 5: Deconstruction of Serverless and blockchain

そもそもサーバーレスに至る背景

● 仮想化

● クラウド(マネージドVM)● PaaS(マネージドアプリケーション実行環境)● サービスファブリック

● リソースを確保してから使う ー> 必要な分だけ使う(JIT)● ワールドワイドでのスケールアウト

● 自作するよりサービスを買ってきたほうが良いケースも多い

Copyright © NTT COMWARE CORPORATION 2017

Page 6: Deconstruction of Serverless and blockchain

必要な分だけ使う

● 物理サーバ → VM○ 資材の購買,設置,廃棄などのリードタイムを短縮

● VM → PaaS○ 基盤の構築やメンテナンスをサービスプロバイダーにおまかせ

○ アプリより上のレイヤーに注力できるようになる

● FaaS○ 必要になった時だけリソースを確保

○ VMやコンテナよりもはるかに短いライフサイクル (ms単位)

準備 利用 片付け

削減

アプリの運用

基盤の運用削減

アイドルリソース削減

Usage

Copyright © NTT COMWARE CORPORATION 2017

Page 7: Deconstruction of Serverless and blockchain

有名なFaaS

● AWS lambda● Azure Function● Bluemix OpenWhisk● Google Cloud Function

Copyright © NTT COMWARE CORPORATION 2017

Page 8: Deconstruction of Serverless and blockchain

FaaS

● プログラミングで言うところの"関数"の実行環境

● PaaSのbuild packを関数単位にしたイメージ○ ライブラリ群,コールバック関数をパックしたものをデプロイする

● 関数なので呼ばれた時だけ実行される○ デプロイ時に関数を呼ぶための受け口を指定する

○ 例えばWebHook○ イベントを受けて関数が実行され,その結果を元に次のイベントが発生する

○ 長時間CPUを専有する用途には不適

Copyright © NTT COMWARE CORPORATION 2017

Page 9: Deconstruction of Serverless and blockchain

サーバーレスアーキテクチャ

一言で言うなら「マネージドサービスを組み合わせたピタゴラ装置」

● FaaS(プログラム)は部品同士を接続するグルー(糊)● 部品(マネージドサービス等)を切り貼りして全体を組み上げる

○ AmazonのAlexa skillなどは典型例

● 一本道ではなく,並行分散したピタゴラ装置

● イベント駆動

Copyright © NTT COMWARE CORPORATION 2017

Page 10: Deconstruction of Serverless and blockchain

Before

DB

IAM

SERVERSERVERSERVERLB

Copyright © NTT COMWARE CORPORATION 2017

Page 11: Deconstruction of Serverless and blockchain

After

DB

IAM

SERVERSERVERFncitonAPI Gateway

ObjectStorage

QueueFabricFabricService Fabric

Other ServicesOther ServicesOther Service

Copyright © NTT COMWARE CORPORATION 2017

Page 12: Deconstruction of Serverless and blockchain

サーバーレスアーキテクチャの特徴

● ステートレス○ ステートフルなものはマネージドサービスに押し込む

● イベント駆動○ 考え方はリアクティブそのもの

● スケールアウトが容易

● ID主体の認証・認可○ アプリサーバーにリクエストと認証・認可が一点集中するのではなく,

IDを元にクライアントやサービスが自由に呼び出し合い,

それぞれが認証・認可を行う

● クライアントサイドに機能が移転○ クライアントアプリで各種サービスを呼び出して機能を組み立てることが容易になってきた

Copyright © NTT COMWARE CORPORATION 2017

Page 13: Deconstruction of Serverless and blockchain

Blockchain

Copyright © NTT COMWARE CORPORATION 2017

Page 14: Deconstruction of Serverless and blockchain

ブロックチェーンとは

● 分散台帳(Distributed Ledger) と言われるもの

● ハッシュチェーン+分散合意アルゴリズムが主成分○ ハッシュチェーン : ハッシュ値によって過去のデータと繋がりを示せるデータ構造

○ 分散合意 : 参加者相互にデータを検証し合意する

○ 公開鍵暗号 : 匿名でID(口座)を表現

● 仮想通貨のBitcoinで有名になった

Copyright © NTT COMWARE CORPORATION 2017

Page 15: Deconstruction of Serverless and blockchain

ハッシュチェーン

● ハッシュ関数でデータ(取引トランザクション)からハッシュ値を得る○ 異なるデータからは異なるハッシュ値が得られる

○ ハッシュ値から元のデータは復元できない

● ハッシュ値によって,過去のデータとの繋がりと,過去のデータが改ざんされていな

いことを検証できる

● ハッシュ値に厳しい制約を与えると(先頭17桁が0でないといけない等)Proof of Work(POW)ができる

Transactions

Hash

Block

Transactions

Hash

Block

Transactions

Hash

Block

検証済み 検証済み

皆で検証

Copyright © NTT COMWARE CORPORATION 2017

Page 16: Deconstruction of Serverless and blockchain

分散合意

● ハッシュチェーンの先頭に誤りのないブロックを配置しなければならない○ 不正なブロックが提案される可能性がある

● ブロックを承認する仕組みのことを合意という○ 分散システムではとても難しい

● ブロックチェーンの分散合意の定義ついては合意が分散している

Transactions

Hash

Block

Transactions

Hash

Block

Transactions

Hash

Block

検証済み 検証済み

皆で検証

Copyright © NTT COMWARE CORPORATION 2017

Page 17: Deconstruction of Serverless and blockchain

ブロックチェーンのありがちなネイティブ実装

● データはKVSで扱う○ ハッシュチェーンはハッシュ値がデータを指し示す構造なので, KVSと相性が良い

○ BitcoinではBerkeley DBやLevel DBが利用されている

● トランザクションはイベント駆動○ HyperLedgerでは,トランザクションはコンテナで処理する

○ APIの受け口がある

● 最近はIAM付きのブロックチェーンもある○ スマートコントラクトのように複雑なトランザクションを作ろうとすると

どうしても IAM等が必要になる

● あれ?なんかサーバーレスアーキテクチャに似ている・・・?

Copyright © NTT COMWARE CORPORATION 2017

Page 18: Deconstruction of Serverless and blockchain

もしかして,サーバーレスアーキテクチャでブロックチェーン(もどき)を作れるのでは?

Copyright © NTT COMWARE CORPORATION 2017

Page 19: Deconstruction of Serverless and blockchain

Demo 実際に作ってみた

Copyright © NTT COMWARE CORPORATION 2017

Page 20: Deconstruction of Serverless and blockchain

AならばBが成り立つならば,その逆は成り立つか?

ブロックチェーン → サーバーレス

これが可能であるならば,

Copyright © NTT COMWARE CORPORATION 2017

Page 21: Deconstruction of Serverless and blockchain

ブロックチェーンでサーバーレスプラットフォーム(もどき)を作れるのでは?

Copyright © NTT COMWARE CORPORATION 2017

Page 22: Deconstruction of Serverless and blockchain

● さすがにFabricの集合体としてのプラットフォームは難しい

● しかし,FaaSならそれっぽいものが可能ではないだろうか

Copyright © NTT COMWARE CORPORATION 2017

Page 23: Deconstruction of Serverless and blockchain

Demo 2 作ってみた

Copyright © NTT COMWARE CORPORATION 2017

Page 24: Deconstruction of Serverless and blockchain

まとめ

Copyright © NTT COMWARE CORPORATION 2017

Page 25: Deconstruction of Serverless and blockchain

まとめ

● サーバーレス ⊃ ブロックチェーン

● (ブロックチェーン ⊃ FaaS ) ⊂ サーバーレス

● 時代は並行分散ピタゴラ装置○ ステートレスとステートフルの分離

○ ステートフルな基盤はマネージドサービスにおまかせ

○ ステートレス部分は分散システム基盤に乗せて自動運転

○ 部品はFaaSで糊付け

○ IDを持ち回り,各サービスで IAMを利用

○ クライアントサイドに制御が移行

Copyright © NTT COMWARE CORPORATION 2017

Page 26: Deconstruction of Serverless and blockchain

まとめ

● ブロックチェーンでFaaSっぽいものを作ることもできる○ 実行結果や課金ログをブロックチェーンに書き込むことも出来る

○ 自前で課金DBをとか作るより何となく安心できそう

● サーバーレスアーキテクチャでブロックチェーンもどきを作ると,

ブロックチェーンよりも柔軟にシステムが作れる○ できたものはいたって普通

○ P2Pによる自立分散がないとさみしい

Copyright © NTT COMWARE CORPORATION 2017

Page 27: Deconstruction of Serverless and blockchain

Thank you

Enjoy Hacking

商標等引用に関する表示

・AWS,AWS lambda,Alexa Skills は米国その他の諸国におけるAmazon.com, Inc.またはその関連会社の商標です.

・Azure はMicrosoft Corporationの米国及びその他の国における商標です.

・Google,Google Cloud Platform はGoogle Inc.の米国およびその他の国における商標です.

・IBM,IBM Bluemix はInternational Business Machines Corporationの米国およびその他の国における商標です.

・その他,記載されている社名,製品名,サービス名などは各社の商標または登録商標である場合があります,Copyright © NTT COMWARE CORPORATION 2017