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

CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4Junya Suzuki
 
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
緊急Ques - コードのメトリクスに基づくリファクタリング戦略緊急Ques - コードのメトリクスに基づくリファクタリング戦略
緊急Ques - コードのメトリクスに基づくリファクタリング戦略Tomoki Kuriyama
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案樽八 仲川
 
画像ベース異常検知Amazon Lookout for Visionを使ってみよう
画像ベース異常検知Amazon Lookout for Visionを使ってみよう画像ベース異常検知Amazon Lookout for Visionを使ってみよう
画像ベース異常検知Amazon Lookout for Visionを使ってみようTakanoriTsutsui
 
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA !  ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA !  ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...TakeshiFukae
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話Yoshinori Matsunobu
 
Jawsdays2021 Amazon Connect愛について語り尽くす
Jawsdays2021 Amazon Connect愛について語り尽くすJawsdays2021 Amazon Connect愛について語り尽くす
Jawsdays2021 Amazon Connect愛について語り尽くすShinya Yamada
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Web Services Japan
 
グラフデータベース Neptune 使ってみた
グラフデータベース Neptune 使ってみたグラフデータベース Neptune 使ってみた
グラフデータベース Neptune 使ってみたYoshiyasu SAEKI
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方Amazon Web Services Japan
 
CircleCI vs. CodePipeline
CircleCI vs. CodePipelineCircleCI vs. CodePipeline
CircleCI vs. CodePipelineHonMarkHunt
 
Amazon RDS for SQL Serverのソースとしての利用
Amazon RDS for SQL Serverのソースとしての利用Amazon RDS for SQL Serverのソースとしての利用
Amazon RDS for SQL Serverのソースとしての利用QlikPresalesJapan
 
Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)
Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)
Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)NTT DATA Technology & Innovation
 
データベース13 - トランザクションと障害回復
データベース13 - トランザクションと障害回復データベース13 - トランザクションと障害回復
データベース13 - トランザクションと障害回復Kenta Oku
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Yuki Morishita
 
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢Masaki Yamakawa
 
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)Amazon Web Services Japan
 

What's hot (20)

CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
 
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
緊急Ques - コードのメトリクスに基づくリファクタリング戦略緊急Ques - コードのメトリクスに基づくリファクタリング戦略
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
画像ベース異常検知Amazon Lookout for Visionを使ってみよう
画像ベース異常検知Amazon Lookout for Visionを使ってみよう画像ベース異常検知Amazon Lookout for Visionを使ってみよう
画像ベース異常検知Amazon Lookout for Visionを使ってみよう
 
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA !  ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA !  ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
 
Google Cloud で実践する SRE
Google Cloud で実践する SRE  Google Cloud で実践する SRE
Google Cloud で実践する SRE
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
Jawsdays2021 Amazon Connect愛について語り尽くす
Jawsdays2021 Amazon Connect愛について語り尽くすJawsdays2021 Amazon Connect愛について語り尽くす
Jawsdays2021 Amazon Connect愛について語り尽くす
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
 
グラフデータベース Neptune 使ってみた
グラフデータベース Neptune 使ってみたグラフデータベース Neptune 使ってみた
グラフデータベース Neptune 使ってみた
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
 
CircleCI vs. CodePipeline
CircleCI vs. CodePipelineCircleCI vs. CodePipeline
CircleCI vs. CodePipeline
 
Amazon RDS for SQL Serverのソースとしての利用
Amazon RDS for SQL Serverのソースとしての利用Amazon RDS for SQL Serverのソースとしての利用
Amazon RDS for SQL Serverのソースとしての利用
 
Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)
Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)
Managed Service Provider(MSP)によるマルチOrganizations管理の裏側(Security JAWS 第24回 発表資料)
 
データベース13 - トランザクションと障害回復
データベース13 - トランザクションと障害回復データベース13 - トランザクションと障害回復
データベース13 - トランザクションと障害回復
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
 
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
 
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
 

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

Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門TIS Inc.
 
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築cloudconductor
 
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用についてJunji Nishihara
 
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?softlayerjp
 
JTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoTJTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoTNobuyuki Matsui
 
クラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置についてクラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置についてエクイニクス・ジャパン
 
FIWARE勉強会 20190913
FIWARE勉強会 20190913FIWARE勉強会 20190913
FIWARE勉強会 20190913Nobuyuki Matsui
 
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotJazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotNobuyuki Matsui
 
Typesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive SystemTypesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive SystemTIS Inc.
 
AITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえりAITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえりdsuke Takaoka
 
Enterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashiEnterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashiTomohiro Igarashi
 
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会マジセミ by (株)オープンソース活用研究所
 
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!Takeshi Kuramochi
 
これまでの歩みと今後の取り組み
これまでの歩みと今後の取り組みこれまでの歩みと今後の取り組み
これまでの歩みと今後の取り組みHinemos
 
AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)aitc_jp
 
クラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置についてクラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置についてKentaro Kamata
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionElastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionShotaro Suzuki
 
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...TIS Inc.
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリElasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリYuichiArisaka
 
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.
 
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 LernaTIS Inc.
 
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_shinjukuTIS Inc.
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステムTIS Inc.
 
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜TIS Inc.
 
Akkaの並行性
Akkaの並行性Akkaの並行性
Akkaの並行性TIS Inc.
 
JavaからAkkaハンズオン
JavaからAkkaハンズオンJavaからAkkaハンズオン
JavaからAkkaハンズオンTIS Inc.
 
Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018TIS Inc.
 
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 #ScalaMatsuriTIS Inc.
 
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャAkkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャTIS Inc.
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-jaTIS Inc.
 
Effective Akka読書会2
Effective Akka読書会2Effective Akka読書会2
Effective Akka読書会2TIS Inc.
 
再帰で脱Javaライク
再帰で脱Javaライク再帰で脱Javaライク
再帰で脱JavaライクTIS Inc.
 
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)TIS Inc.
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術TIS Inc.
 

More from TIS Inc. (15)

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
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム
 
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
 
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