SlideShare a Scribd company logo
1 of 28
Download to read offline
Copyright © 2015 TIS Inc. All rights reserved.
10分で分かる
リアクティブシステム
2016.2.2
前出 祐吾 @yugolf
第2回Reactive System Meetup in 西新宿
Copyright © 2015 TIS Inc. All rights reserved. 2
Reactive Design Patterns
https://www.manning.com/books/reactive-design-patterns
Copyright © 2015 TIS Inc. All rights reserved. 3
Business Innovation
Digital	
Transformation
IoT
AI
FinTech
Robotics
AR/VR
Copyright © 2015 TIS Inc. All rights reserved. 4
New Model
Reactive
Asynchr
onous
scalabi
lity
high-
availability
non-
blocking
fault-
tolerant loosely	
coupled
micro	
services
distrib
uted
Copyright © 2015 TIS Inc. All rights reserved. 5
http://www.reactivemanifesto.org/ja
Reactive Systems
Copyright © 2015 TIS Inc. All rights reserved. 6
Reactive Systems
届けたい価値
手段
支える原理
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
高レスポンスと、耐障害性と、伸縮性と、	
メッセージ駆動とを備えたシステム
Copyright © 2015 TIS Inc. All rights reserved. Reactive	Design	Pattern(http://manning.com/kuhn/) 7
Responsive
ユーザーの要求に迅速にレスポンスするシステム
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
届けたい価値
手段
支える原理
Copyright © 2015 TIS Inc. All rights reserved. Reactive	Design	Pattern(http://manning.com/kuhn/) 8
the How of Responsive
•並列処理	
•意味のあるタイムアウト設定	
•キューサイズの指定	
•サーキットブレーカー
Copyright © 2015 TIS Inc. All rights reserved. 9
Elastic
通常の負荷時だけでなく、一時的な高負荷状況でも、変動するワークロードに応
じて割り当てるリソースを増加・減少させることで応答時間を一定水準に保つ	
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
届けたい価値
手段
支える原理
Reactive	Design	Pattern(http://manning.com/kuhn/)
Copyright © 2015 TIS Inc. All rights reserved. 10
the How of Elastic
!
•処理するストリームを分割可能に	
•リクエストする処理は分散可能でメッセージ駆動に	
•アクティブなインスタンスの数を変更可能に	
!
!
負荷状況を監視し必要なインスタンス数を調整
Reactive	Design	Pattern(http://manning.com/kuhn/)
Copyright © 2015 TIS Inc. All rights reserved. 11
1つのActorですべての計算処理を行う
Application	Cluster
Analyzer
AnalyzerMonitor
Mater
1
3
2
4
Worker
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 12
Application	Cluster
Analyzer
Analyzer
Analyzer
Analyzer
Monitor
Master1
3
2
4
複数のActorに処理を振り分ける
Worker
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 13
Little’s law
L =	λ	*	W	
L:平均的な顧客数	
λ:到着率      	
W:店内で過ごす平均時間
https://ja.wikipedia.org/wiki/リトルの法則
Copyright © 2015 TIS Inc. All rights reserved. 14
Little’s law
L =	λ	*	W	
L:平均的な顧客数    インスタンス数	
λ:到着率        リクエスト率	
W:店内で過ごす平均時間 平均処理時間
Copyright © 2015 TIS Inc. All rights reserved. 15
Resilient
部分的な障害が発生した時にもシステム全体を危険にさらすことなく回復さ
せ、高レスポンスを維持する
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
届けたい価値
手段
支える原理
Reactive	Design	Pattern(http://manning.com/kuhn/)
Copyright © 2015 TIS Inc. All rights reserved. 16
the How of Resilience
部品化と分散	
!
•コンポーネント間に防水隔壁(water-tight)を構築	
•スーパーバイザーに障害制御を委譲
Reactive	Design	Pattern(http://manning.com/kuhn/)
Copyright © 2015 TIS Inc. All rights reserved. 17
障害制御はスーパーバイザーに
スーパー	
バイザー
サブスーパー	
バイザー
Actor
Actor Actor 障害を外へ	
波及させない
子アクターの監視
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
sender
Error
Failure
Copyright © 2015 TIS Inc. All rights reserved. 18
Application	Cluster
Analyzer
AnalyzerMonitor
Master1
3
2
4
1つのWorkerがダウンすると
Worker
AnalyzerAnalyzer
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved.
Application	Cluster
Analyzer
Analyzer
Analyzer
Analyzer
Monitor
Master1 3
2
4
Worker
残りのWorkerでやりくりする
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 20
Application	Cluster
Analyzer
Analyzer
Analyzer
Analyzer
Monitor
Master1
3
2
4
Masterがダウンすると
Worker
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 21
Application	Cluster
Analyzer
Analyzer
AnalyzerMonitor
1
3
2
4
Analyzer
Master
WorkerのひとつがMasterになる
Worker
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 22
Application	Cluster
Analyzer
AnalyzerMonitor
1
3
2
4
Analyzer
Master
ダウンしたAnalyzerを起動するとWorkerとなって働く
Worker
Analyzer
SolarFarmSimulator
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 23
Message Driven
メッセージパッシングにより、コンポーネント間を疎結合にする
高レスポンス
Responsive
伸縮性
Elastic
耐障害性
Resilient
メッセージ駆動
Message-driven
届けたい価値
手段
支える原理
Reactive	Design	Pattern(http://manning.com/kuhn/)
Copyright © 2015 TIS Inc. All rights reserved. 24
Message Drivenのベネフィット
Reactive	Design	Pattern(http://manning.com/kuhn/)
•コンポーネントのやり取りを疎結合に	
•コンポーネントはメッセージを到着まで非アクティブ	
•「Share	nothing」がスケーラビリティの上限を引き上
げ
Copyright © 2015 TIS Inc. All rights reserved. 25
※Wikipedia(https://ja.wikipedia.org/wiki/アムダールの法則)
スケーラビリティの上限
Copyright © 2015 TIS Inc. All rights reserved. 26
※Wikipedia(https://ja.wikipedia.org/wiki/アムダールの法則)
スケーラビリティの上限
少 プロセッサ数➡多
遅スピード➡速
並列化可能な
部分の割合
50%
75%
90%
95%
Copyright © 2015 TIS Inc. All rights reserved. 27
コンサルティングサービス
http://www.tis.jp/service_solution/goreactive/
ご興味を御持ち頂けましたら、是非ご連絡下さい。
go-reactive@tis.co.jp
ご清聴ありがとうございました
TISはTypesafe社の認定パートナーです

More Related Content

What's hot

「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
Riotaro OKADA
 
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護 - Microsoft Information P...
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護  - Microsoft Information P...S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護  - Microsoft Information P...
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護 - Microsoft Information P...
日本マイクロソフト株式会社
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
Katsutoshi Makino
 
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
 

What's hot (20)

「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
 
アジャイルジャパン2015 講演資料
アジャイルジャパン2015 講演資料アジャイルジャパン2015 講演資料
アジャイルジャパン2015 講演資料
 
大昔のMMU
大昔のMMU大昔のMMU
大昔のMMU
 
kintone製品説明
kintone製品説明kintone製品説明
kintone製品説明
 
【Unite 2017 Tokyo】Navmesh完全マスターへの道
【Unite 2017 Tokyo】Navmesh完全マスターへの道【Unite 2017 Tokyo】Navmesh完全マスターへの道
【Unite 2017 Tokyo】Navmesh完全マスターへの道
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
 
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護 - Microsoft Information P...
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護  - Microsoft Information P...S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護  - Microsoft Information P...
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護 - Microsoft Information P...
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
 
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
Amazon SageMaker で始める機械学習
Amazon SageMaker で始める機械学習Amazon SageMaker で始める機械学習
Amazon SageMaker で始める機械学習
 
NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介
NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介
NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介
 

Similar to 10分で分かるリアクティブシステム

オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
マジセミ by (株)オープンソース活用研究所
 
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
光平 八代
 

Similar to 10分で分かるリアクティブシステム (20)

Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門
 
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
 
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
 
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
 
JTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoTJTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoT
 
クラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置についてクラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置について
 
FIWARE勉強会 20190913
FIWARE勉強会 20190913FIWARE勉強会 20190913
FIWARE勉強会 20190913
 
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotJazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & Robot
 
Typesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive SystemTypesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive System
 
AITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえりAITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえり
 
Enterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashiEnterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashi
 
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
 
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
 
これまでの歩みと今後の取り組み
これまでの歩みと今後の取り組みこれまでの歩みと今後の取り組み
これまでの歩みと今後の取り組み
 
AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)
 
クラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置についてクラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置について
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionElastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
 
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリElasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリ
 
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
 

More from TIS Inc.

AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
TIS Inc.
 
Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018
TIS Inc.
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術
TIS Inc.
 

More from TIS Inc. (14)

AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
 
Reactive Systems that focus on High Availability with Lerna
Reactive Systems that focus on High Availability with LernaReactive Systems that focus on High Availability with Lerna
Reactive Systems that focus on High Availability with Lerna
 
Starting Reactive Systems with Lerna #reactive_shinjuku
Starting Reactive Systems with Lerna #reactive_shinjukuStarting Reactive Systems with Lerna #reactive_shinjuku
Starting Reactive Systems with Lerna #reactive_shinjuku
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム
 
Akkaの並行性
Akkaの並行性Akkaの並行性
Akkaの並行性
 
JavaからAkkaハンズオン
JavaからAkkaハンズオンJavaからAkkaハンズオン
JavaからAkkaハンズオン
 
Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018
 
Preparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuriPreparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuri
 
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャAkkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-ja
 
Effective Akka読書会2
Effective Akka読書会2Effective Akka読書会2
Effective Akka読書会2
 
再帰で脱Javaライク
再帰で脱Javaライク再帰で脱Javaライク
再帰で脱Javaライク
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術
 

10分で分かるリアクティブシステム

  • 1. Copyright © 2015 TIS Inc. All rights reserved. 10分で分かる リアクティブシステム 2016.2.2 前出 祐吾 @yugolf 第2回Reactive System Meetup in 西新宿
  • 2. Copyright © 2015 TIS Inc. All rights reserved. 2 Reactive Design Patterns https://www.manning.com/books/reactive-design-patterns
  • 3. Copyright © 2015 TIS Inc. All rights reserved. 3 Business Innovation Digital Transformation IoT AI FinTech Robotics AR/VR
  • 4. Copyright © 2015 TIS Inc. All rights reserved. 4 New Model Reactive Asynchr onous scalabi lity high- availability non- blocking fault- tolerant loosely coupled micro services distrib uted
  • 5. Copyright © 2015 TIS Inc. All rights reserved. 5 http://www.reactivemanifesto.org/ja Reactive Systems
  • 6. Copyright © 2015 TIS Inc. All rights reserved. 6 Reactive Systems 届けたい価値 手段 支える原理 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven 高レスポンスと、耐障害性と、伸縮性と、 メッセージ駆動とを備えたシステム
  • 7. Copyright © 2015 TIS Inc. All rights reserved. Reactive Design Pattern(http://manning.com/kuhn/) 7 Responsive ユーザーの要求に迅速にレスポンスするシステム 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven 届けたい価値 手段 支える原理
  • 8. Copyright © 2015 TIS Inc. All rights reserved. Reactive Design Pattern(http://manning.com/kuhn/) 8 the How of Responsive •並列処理 •意味のあるタイムアウト設定 •キューサイズの指定 •サーキットブレーカー
  • 9. Copyright © 2015 TIS Inc. All rights reserved. 9 Elastic 通常の負荷時だけでなく、一時的な高負荷状況でも、変動するワークロードに応 じて割り当てるリソースを増加・減少させることで応答時間を一定水準に保つ 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven 届けたい価値 手段 支える原理 Reactive Design Pattern(http://manning.com/kuhn/)
  • 10. Copyright © 2015 TIS Inc. All rights reserved. 10 the How of Elastic ! •処理するストリームを分割可能に •リクエストする処理は分散可能でメッセージ駆動に •アクティブなインスタンスの数を変更可能に ! ! 負荷状況を監視し必要なインスタンス数を調整 Reactive Design Pattern(http://manning.com/kuhn/)
  • 11. Copyright © 2015 TIS Inc. All rights reserved. 11 1つのActorですべての計算処理を行う Application Cluster Analyzer AnalyzerMonitor Mater 1 3 2 4 Worker SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 12. Copyright © 2015 TIS Inc. All rights reserved. 12 Application Cluster Analyzer Analyzer Analyzer Analyzer Monitor Master1 3 2 4 複数のActorに処理を振り分ける Worker SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 13. Copyright © 2015 TIS Inc. All rights reserved. 13 Little’s law L = λ * W L:平均的な顧客数 λ:到着率       W:店内で過ごす平均時間 https://ja.wikipedia.org/wiki/リトルの法則
  • 14. Copyright © 2015 TIS Inc. All rights reserved. 14 Little’s law L = λ * W L:平均的な顧客数    インスタンス数 λ:到着率        リクエスト率 W:店内で過ごす平均時間 平均処理時間
  • 15. Copyright © 2015 TIS Inc. All rights reserved. 15 Resilient 部分的な障害が発生した時にもシステム全体を危険にさらすことなく回復さ せ、高レスポンスを維持する 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven 届けたい価値 手段 支える原理 Reactive Design Pattern(http://manning.com/kuhn/)
  • 16. Copyright © 2015 TIS Inc. All rights reserved. 16 the How of Resilience 部品化と分散 ! •コンポーネント間に防水隔壁(water-tight)を構築 •スーパーバイザーに障害制御を委譲 Reactive Design Pattern(http://manning.com/kuhn/)
  • 17. Copyright © 2015 TIS Inc. All rights reserved. 17 障害制御はスーパーバイザーに スーパー バイザー サブスーパー バイザー Actor Actor Actor 障害を外へ 波及させない 子アクターの監視 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven sender Error Failure
  • 18. Copyright © 2015 TIS Inc. All rights reserved. 18 Application Cluster Analyzer AnalyzerMonitor Master1 3 2 4 1つのWorkerがダウンすると Worker AnalyzerAnalyzer SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 19. Copyright © 2015 TIS Inc. All rights reserved. Application Cluster Analyzer Analyzer Analyzer Analyzer Monitor Master1 3 2 4 Worker 残りのWorkerでやりくりする SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 20. Copyright © 2015 TIS Inc. All rights reserved. 20 Application Cluster Analyzer Analyzer Analyzer Analyzer Monitor Master1 3 2 4 Masterがダウンすると Worker SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 21. Copyright © 2015 TIS Inc. All rights reserved. 21 Application Cluster Analyzer Analyzer AnalyzerMonitor 1 3 2 4 Analyzer Master WorkerのひとつがMasterになる Worker SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 22. Copyright © 2015 TIS Inc. All rights reserved. 22 Application Cluster Analyzer AnalyzerMonitor 1 3 2 4 Analyzer Master ダウンしたAnalyzerを起動するとWorkerとなって働く Worker Analyzer SolarFarmSimulator 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven
  • 23. Copyright © 2015 TIS Inc. All rights reserved. 23 Message Driven メッセージパッシングにより、コンポーネント間を疎結合にする 高レスポンス Responsive 伸縮性 Elastic 耐障害性 Resilient メッセージ駆動 Message-driven 届けたい価値 手段 支える原理 Reactive Design Pattern(http://manning.com/kuhn/)
  • 24. Copyright © 2015 TIS Inc. All rights reserved. 24 Message Drivenのベネフィット Reactive Design Pattern(http://manning.com/kuhn/) •コンポーネントのやり取りを疎結合に •コンポーネントはメッセージを到着まで非アクティブ •「Share nothing」がスケーラビリティの上限を引き上 げ
  • 25. Copyright © 2015 TIS Inc. All rights reserved. 25 ※Wikipedia(https://ja.wikipedia.org/wiki/アムダールの法則) スケーラビリティの上限
  • 26. Copyright © 2015 TIS Inc. All rights reserved. 26 ※Wikipedia(https://ja.wikipedia.org/wiki/アムダールの法則) スケーラビリティの上限 少 プロセッサ数➡多 遅スピード➡速 並列化可能な 部分の割合 50% 75% 90% 95%
  • 27. Copyright © 2015 TIS Inc. All rights reserved. 27 コンサルティングサービス http://www.tis.jp/service_solution/goreactive/ ご興味を御持ち頂けましたら、是非ご連絡下さい。 go-reactive@tis.co.jp