More Related Content
Similar to 10分で分かるリアクティブシステム (20)
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