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

28
Copyright © 2015 TIS Inc. All rights reserved. 10分で分かる リアクティブシステム 2016.2.2 前出 祐吾 @yugolf 第2回Reactive System Meetup in 西新宿

Upload: tis-inc

Post on 07-Jan-2017

1.328 views

Category:

Software


0 download

TRANSCRIPT

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

DigitalTransformation

IoT

AIFinTech

Robotics

AR/VR

Copyright © 2015 TIS Inc. All rights reserved. 4

New Model

Reactive

Asynchronous

scalability

high-availability

non-blocking

fault-tolerant loosely

coupledmicro

services

distributed

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. ReactiveDesignPattern(http://manning.com/kuhn/) 7

Responsive

ユーザーの要求に迅速にレスポンスするシステム

高レスポンス Responsive

伸縮性 Elastic

耐障害性 Resilient

メッセージ駆動 Message-driven

届けたい価値

手段

支える原理

Copyright © 2015 TIS Inc. All rights reserved. ReactiveDesignPattern(http://manning.com/kuhn/) 8

the How of Responsive

•並列処理•意味のあるタイムアウト設定•キューサイズの指定•サーキットブレーカー

Copyright © 2015 TIS Inc. All rights reserved. 9

Elastic通常の負荷時だけでなく、一時的な高負荷状況でも、変動するワークロードに応じて割り当てるリソースを増加・減少させることで応答時間を一定水準に保つ

高レスポンス Responsive

伸縮性 Elastic

耐障害性 Resilient

メッセージ駆動 Message-driven

届けたい価値

手段

支える原理

ReactiveDesignPattern(http://manning.com/kuhn/)

Copyright © 2015 TIS Inc. All rights reserved. 10

the How of Elastic!•処理するストリームを分割可能に•リクエストする処理は分散可能でメッセージ駆動に•アクティブなインスタンスの数を変更可能に!!負荷状況を監視し必要なインスタンス数を調整

ReactiveDesignPattern(http://manning.com/kuhn/)

Copyright © 2015 TIS Inc. All rights reserved. 11

1つのActorですべての計算処理を行うApplicationCluster

Analyzer

AnalyzerMonitor

Mater

1

32

4

Worker

SolarFarmSimulator高レスポンス Responsive

伸縮性 Elastic

耐障害性 Resilient

メッセージ駆動 Message-driven

Copyright © 2015 TIS Inc. All rights reserved. 12

ApplicationCluster

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 =λ*WL:平均的な顧客数

λ:到着率      

W:店内で過ごす平均時間

https://ja.wikipedia.org/wiki/リトルの法則

Copyright © 2015 TIS Inc. All rights reserved. 14

Little’s law

L =λ*WL:平均的な顧客数    インスタンス数

λ:到着率        リクエスト率

W:店内で過ごす平均時間 平均処理時間

Copyright © 2015 TIS Inc. All rights reserved. 15

Resilient部分的な障害が発生した時にもシステム全体を危険にさらすことなく回復させ、高レスポンスを維持する

高レスポンス Responsive

伸縮性 Elastic

耐障害性 Resilient

メッセージ駆動 Message-driven

届けたい価値

手段

支える原理

ReactiveDesignPattern(http://manning.com/kuhn/)

Copyright © 2015 TIS Inc. All rights reserved. 16

the How of Resilience

部品化と分散!

•コンポーネント間に防水隔壁(water-tight)を構築•スーパーバイザーに障害制御を委譲

ReactiveDesignPattern(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

ApplicationCluster

Analyzer

AnalyzerMonitor

Master13

2

4

1つのWorkerがダウンするとWorker

AnalyzerAnalyzer

SolarFarmSimulator高レスポンス Responsive

伸縮性 Elastic

耐障害性 Resilient

メッセージ駆動 Message-driven

Copyright © 2015 TIS Inc. All rights reserved.

ApplicationCluster

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

ApplicationCluster

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

ApplicationCluster

Analyzer

Analyzer

AnalyzerMonitor

1

3

24

Analyzer

Master

WorkerのひとつがMasterになるWorker

SolarFarmSimulator高レスポンス Responsive

伸縮性 Elastic

耐障害性 Resilient

メッセージ駆動 Message-driven

Copyright © 2015 TIS Inc. All rights reserved. 22

ApplicationCluster

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

届けたい価値

手段

支える原理

ReactiveDesignPattern(http://manning.com/kuhn/)

Copyright © 2015 TIS Inc. All rights reserved. 24

Message Drivenのベネフィット

ReactiveDesignPattern(http://manning.com/kuhn/)

•コンポーネントのやり取りを疎結合に•コンポーネントはメッセージを到着まで非アクティブ•「Sharenothing」がスケーラビリティの上限を引き上げ

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/

ご興味を御持ち頂けましたら、是非ご連絡下さい。[email protected]

ご清聴ありがとうございました

TISはTypesafe社の認定パートナーです