SlideShare a Scribd company logo
Copyright © 2015 TIS Inc. All rights reserved.
Reactive  System  Meetup  in  西新宿
Typesafe  Reactive  Platformで作る
Reactive  System入門
2015.8.18
前出 祐吾  
根来 和輝
Copyright © 2015 TIS Inc. All rights reserved. 2
自己紹介
■ @yugolf	
  
!
■ TIS株式会社	
  
■ 生産革新本部 生産革新部 生産技術R&D室	
  
■ 社内向けエンジニアリング基盤の整備 ▶▶︎
Copyright © 2015 TIS Inc. All rights reserved. 3
TIS、リアクティブコンサルはじめました
http://www.tis.jp/service_solution/goreactive/
Copyright © 2015 TIS Inc. All rights reserved. 4
Agenda
1. 	
  Reactive	
  Systemとは	
  
2. 	
  Reactive	
  Systemのための技術	
  
3. 	
  Reactive体験
Copyright © 2015 TIS Inc. All rights reserved. 5
1.    Reactive	
  Systemとは
Copyright © 2015 TIS Inc. All rights reserved. 6
本日の話
http://www.reactivemanifesto.org/
Reactive	
  Programming:	
  
データの流れ(ストリーム)とデータの値の変化の伝播にフォーカス
したプログラムの設計モデル。	
  
・・・ の話ではない。
Reactive	
  System:
Copyright © 2015 TIS Inc. All rights reserved. 7
Reactive manifesto
絵	
  
!
即応性	
  
弾力性	
  
耐障害性	
  
メッセージ駆動
http://www.reactivemanifesto.org/ja
Copyright © 2015 TIS Inc. All rights reserved. 8
アプリケーションへの高まる要求
50台のサーバで動かしていたけど、クラウド上で
1000コアの環境を作りたいんだ。
レスポンスを得るのに3秒かかるけど、
500ミリ秒くらいにしたいのよ。	
  
それと、年1回の2時間のメンテナンス
なんとかならないかしら。
最初は100ギガくらいだったけど、そ
ろそろペタ行くんじゃないかな。
Copyright © 2015 TIS Inc. All rights reserved. 9
Reactive Systemとは
即応性と、耐障害性と、弾力性と、メッセージ駆動とを備えたシステム
http://www.reactivemanifesto.org/ja
Copyright © 2015 TIS Inc. All rights reserved. 10
Reactive Systemの価値
届けたい価値
手段
支える原理
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. Reactive	
  Design	
  Pattern(http://manning.com/kuhn/) 11
Responsive
ユーザーの要求に迅速にレスポンスするシステム
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
届けたい価値
手段
支える原理
✓高レスポンスを維持するため、リソースプランニングを行い、コンポー
ネントの分割・分散を考慮すべき
Copyright © 2015 TIS Inc. All rights reserved. 12
Elastic
通常の負荷時だけでなく、一時的な高負荷状況でも、変動するワークロードに応
じて割り当てるリソースを増加・減少させることで応答時間を一定水準に保つ	
  
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
届けたい価値
手段
支える原理
Reactive	
  Design	
  Pattern(http://manning.com/kuhn/)
✓伸縮性のため、負荷を監視し、その変化に応じて分散する必要がある	
  
✓1つの部品がボトルネックを持ってはいけないし、独立して動作すべき
Copyright © 2015 TIS Inc. All rights reserved. 13
Resilient
部分的な障害が発生した時にもシステム全体を危険にさらすことなく回復さ
せ、高レスポンスを維持する
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
届けたい価値
手段
支える原理
Reactive	
  Design	
  Pattern(http://manning.com/kuhn/)
✓耐障害性を高めるため、故障したコンポーネントを修復したり、代替
となるコンポーネントを再接続するメカニズムが必要
Copyright © 2015 TIS Inc. All rights reserved. 14
Message Driven
メッセージパッシングにより、コンポーネント間を疎結合にする
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
届けたい価値
手段
支える原理
Reactive	
  Design	
  Pattern(http://manning.com/kuhn/)
✓すべてがメッセージ駆動により実現される
Copyright © 2015 TIS Inc. All rights reserved. 15
2.  Reactive	
  Systemのための技術
Copyright © 2015 TIS Inc. All rights reserved. 16
Typesafe Reactive Platform
JavaVM
アプリケーション
	
  AkkaPlay	
  Framework
Scala Java
Slick
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 17
Play Framework
•非同期/ノンブロッキング	
  
•WebSocketサポート	
  
•Railsのような使いやすさ
Copyright © 2015 TIS Inc. All rights reserved. 18
これまで
def index = Action { implicit request =>

Ok(views.html.index())

}
クライアント サーバ
ブロッキ
ング
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 19
Blocking
コーヒーください。
コーヒー1つ∼
は∼い
できた∼
・・・
コーヒーどうぞ∼	
  
100円です。
コーヒーください。
コーヒー1つ∼
Block
Copyright © 2015 TIS Inc. All rights reserved. 20
Non-blocking
コーヒーください。
コーヒー1つ∼
は∼い
コーヒーどうぞ∼	
  
コーヒーください。
コーヒー1つ∼
100円です。
100円です。
は∼い
できた∼
コーヒーください。
Copyright © 2015 TIS Inc. All rights reserved. 21
Reactive :迅速なレスポンス
def index = Action.async {

val customer: Future[Customer] = getCustomer()

customer.map(c => Ok("Customer: " + c))

}
クライアント サーバ サービス
ノンブ
ロッキング
ノンブ
ロッキング
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 22
Reactive :サーバからのプッシュ
クライアント サーバ
def socket = WebSocket.using[String] { request =>



// Log events to the console

val in = Iteratee.foreach[String](println).map { _ =>

println("Disconnected")

}



// Send a single 'Hello!' message

val out = Enumerator("Hello!")



(in, out)

}
ノンブ
ロッキング
WebSocket
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
https://www.playframework.com/documentation/2.4.x/ScalaWebSockets
Copyright © 2015 TIS Inc. All rights reserved. 23
Akka
•並行処理と分散処理をサポートするActor	
  System	
  
•Supervision	
  Model	
  
•location	
  transparency
Copyright © 2015 TIS Inc. All rights reserved. 24
Actor System
sender
Actor
Mailbox
Mailbox
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 25
Reactive :Actor Model
def socket = WebSocket.acceptWithActor[String, String] { request => out
=>

MyWebSocketActor.props(out)

}
object MyWebSocketActor {

def props(out: ActorRef) = Props(new MyWebSocketActor(out))

}



class MyWebSocketActor(out: ActorRef) extends Actor {

def receive = {

case msg: String =>

out ! ("I received your message: " + msg)

}

}
クライアント
コントローラ
Actor
ノンブロッ
キング
WebSocket
Actor
https://www.playframework.com/documentation/2.4.x/ScalaWebSockets
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 26
Supervision Modelで障害に強いシステムに
override val supervisorStrategy: SupervisorStrategy =

AllForOneStrategy(maxNrOfRetries = 100, withinTimeRange = 1 minute) {

case _ => Restart

}
スーパー	
  
バイザー
サブスーパー	
  
バイザー
Actor
Actor Actor
-­‐OneForOne	
  
-­‐AllForOne
障害を外へ波及させない
子アクターの監視役
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 27
let	
  it	
  crash
Copyright © 2015 TIS Inc. All rights reserved. 28
Distribute
https://conductr.typesafe.com/docs/1.0.x/DeployingApplication
Copyright © 2015 TIS Inc. All rights reserved. 29
Reactive :Actorを増減させ容易にスケール
クライアント
コントローラ
Actor
Actor
Actor
ルーティングは様々	
  
• ランダム	
  
• ラウンドロビン	
  
• 最小メールボックス	
  
• ブロードキャスト	
  
• 最速採用
ノンブ
ロッキング
WebSocket
Actor
location	
  	
  transparently
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 30
Reactive Slick (Slick3.0)
•FRM(Functional	
  Relational	
  Mapping)ライブラリ	
  
•Scalaのコレクションを扱うかのようにDBアクセスで
きる	
  
•DB処理は非同期に実行される
Copyright © 2015 TIS Inc. All rights reserved. 31
Supported Databases
•MySQL	
  
•PostgreSQL	
  
•H2	
  
•HSQLDB/HyperSQL	
  
•SQLite	
  
•Derby/JavaDB	
  
•Microsoft	
  Access
•DB2	
  
•Microsoft	
  SQL	
  Server	
  
•Oracle
Slick Extensions
Copyright © 2015 TIS Inc. All rights reserved. 32
Reactive :端から端までReactive
def search = Action.async { implicit request =>
…

val f:Future[Seq[EventRow]] = db.run(Events.filter(form))
f.map {

case events if (events.length > 0) =>

Ok(views.html.sample.search(
form.bindFromRequest, events))

case _ =>

…
クライアント
コントローラ
ノンブ
ロッキング
WebSocket
Actor
ノンブ
ロッキング
Actor
データベース
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 33
def search = Action.async { implicit request =>
…

val f:Future[Seq[EventRow]] = db.run(Events.filter(form))
f.map {

case events if (events.length > 0) =>

Ok(views.html.sample.search(
form.bindFromRequest, events))

case _ =>

… 高レスポンス  
Responsive
クライアント
コントローラ
ノンブロッ
キング
WebSocket
Actor
ノンブロッ
キング
Actor
データベース
Asynchronousが基本、	
  
どこでWaitするかをデザインする
Reactive :端から端までReactive
Copyright © 2015 TIS Inc. All rights reserved. 34
Reactive :Reactive Streams
def search = Action.async { implicit request =>
…

val q = for(e <- Event) yield e.eventNm
val publisher:DatabasePublisher[String] = db.stream(q.result)
publisher.foreach {e => println(e)}
…
クライアント
コントローラ
ノンブ
ロッキング
WebSocket
Actor
ノンブ
ロッキング
データベース
Actor
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 35
3.  Reactive体験
Copyright © 2015 TIS Inc. All rights reserved. 36
自己紹介
■ 根来	
  和輝	
  (ねごろ	
  かずき)	
  
■ @negokaz	
  
■ TIS株式会社	
  
■ 生産革新本部 生産革新部 生産技術R&D室	
  
■ 次世代のアプリケーション開発手法を研究開発
Copyright © 2015 TIS Inc. All rights reserved. 37
Reactive体験
もし、あなたがソーラーファームのオーナーになったら?
発電効率をできるだけ高めたいですよね。	
  
故障したソーラーパネルがないか監視しましょう。
Copyright © 2015 TIS Inc. All rights reserved. 38
Reactive Solar Farm Monitor Solar Farm
③ アラートを表示
ID:	
  1
② 故障している!
パネルを検知
それぞれが毎秒、発電した
電力(W)のデータを送信
ID:	
  1
Reactive Solar Farm Monitor
Icon	
  made	
  by	
  Freepik	
  from	
  www.flaticon.com	
  is	
  licensed	
  under	
  CC	
  BY	
  3.0
発電状況を表示
① 故障して!
発電力が低下
Copyright © 2015 TIS Inc. All rights reserved. 39
ソーラーパネルの故障検知
全パネルの平均電力からしきい値を決め

それ以下の電力しか発電していないものを	
  
故障したとみなす
‣ 発電している電力が	
  0	
  のものを故障とみなす?	
  
‣ 夜になったらどうする?
OK NG
平均値
しきい値
Copyright © 2015 TIS Inc. All rights reserved. 40
故障検知でやるべきこと
‣全パネルの平均電力を求める	
  
‣平均値からしきい値を決める	
  
‣全パネルの電力としきい値を比較する
ただしリアルタイムで
Copyright © 2015 TIS Inc. All rights reserved. 41
Architecture
Monitor Analyzer
SolarFarmSimulator
HTTP!
&!
WebSocket
Copyright © 2015 TIS Inc. All rights reserved. 42
https://github.com/tech-­‐sketch/reactive-­‐solar-­‐farm-­‐monitor
Reactive体験1 - Responsive
Copyright © 2015 TIS Inc. All rights reserved. 43
Reactive体験1 - Responsive
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 44
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
届けたい価値
手段
支える原理
Reactive体験2 - Elastic
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 45
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. 46
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. 47
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
届けたい価値
手段
支える原理
Reactive体験3 - Resilient
Copyright © 2015 TIS Inc. All rights reserved. 48
Application	
  Cluster
Analyzer
AnalyzerMonitor
Master1
3
2
4
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. 50
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. 51
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. 52
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. 53
支えているのはメッセージ駆動のアーキテクチャ
Reactive体験4 - Message Driven
高レスポンス  
Responsive
伸縮性  
Elastic
耐障害性  
Resilient
メッセージ駆動  
Message-driven
Copyright © 2015 TIS Inc. All rights reserved. 54
4.  Go  Reactive
Copyright © 2015 TIS Inc. All rights reserved. 55
Go Reactive
http://www.tis.jp/service_solution/goreactive/
リアクティブに興味のある方はご連絡下さい。
go-­‐reactive@tis.co.jp
Copyright © 2015 TIS Inc. All rights reserved. 56
Go Reactive
ソースコードはGitHubで公開しています。
太陽光発電に興味のある方はご連絡下さい。
https://github.com/tech-­‐sketch/reactive-­‐solar-­‐farm-­‐monitor
go-­‐reactive@tis.co.jp
THANK YOU

More Related Content

What's hot

Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Daisuke Ikeda
 
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
光平 八代
 
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
Daisuke Ikeda
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Shinichiro Arai
 
IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...
IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...
IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...
Shinichiro Arai
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
Keiichi Hashimoto
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
Daisuke Ikeda
 
170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech
Toshihide Atsumi
 
G tech2016 クラウド時代に必要とされる組織と人材育成について
G tech2016 クラウド時代に必要とされる組織と人材育成についてG tech2016 クラウド時代に必要とされる組織と人材育成について
G tech2016 クラウド時代に必要とされる組織と人材育成について
Trainocate Japan, Ltd.
 
SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現
SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現
SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現
softlayerjp
 
Open stack活用に求められる人材と育成について2017 0314
Open stack活用に求められる人材と育成について2017 0314Open stack活用に求められる人材と育成について2017 0314
Open stack活用に求められる人材と育成について2017 0314
Trainocate Japan, Ltd.
 
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
cloudconductor
 
ベンダーロックインフリーのビジネスクラウドの世界
ベンダーロックインフリーのビジネスクラウドの世界ベンダーロックインフリーのビジネスクラウドの世界
ベンダーロックインフリーのビジネスクラウドの世界
ミランティスジャパン株式会社
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AzareaCluster
 
20200813 fin-jaws #14 オープニング渥美
20200813 fin-jaws #14 オープニング渥美20200813 fin-jaws #14 オープニング渥美
20200813 fin-jaws #14 オープニング渥美
Toshihide Atsumi
 
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
Typhon 666
 
Zabbixを使った効果的な運用管理の実現
Zabbixを使った効果的な運用管理の実現Zabbixを使った効果的な運用管理の実現
Zabbixを使った効果的な運用管理の実現
Daisuke Ikeda
 
【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director
【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director
【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director
シスコシステムズ合同会社
 

What's hot (20)

Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
 
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
 
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...
IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...
IT infra summit 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを見...
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
 
170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech
 
G tech2016 クラウド時代に必要とされる組織と人材育成について
G tech2016 クラウド時代に必要とされる組織と人材育成についてG tech2016 クラウド時代に必要とされる組織と人材育成について
G tech2016 クラウド時代に必要とされる組織と人材育成について
 
SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現
SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現
SIOS iQ:機械学習 I T O A VMware仮想環境の性能問題の原因分析 迅速な問題解決と未然防止を実現
 
Open stack活用に求められる人材と育成について2017 0314
Open stack活用に求められる人材と育成について2017 0314Open stack活用に求められる人材と育成について2017 0314
Open stack活用に求められる人材と育成について2017 0314
 
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
 
ベンダーロックインフリーのビジネスクラウドの世界
ベンダーロックインフリーのビジネスクラウドの世界ベンダーロックインフリーのビジネスクラウドの世界
ベンダーロックインフリーのビジネスクラウドの世界
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
 
20200813 fin-jaws #14 オープニング渥美
20200813 fin-jaws #14 オープニング渥美20200813 fin-jaws #14 オープニング渥美
20200813 fin-jaws #14 オープニング渥美
 
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
 
Zabbixを使った効果的な運用管理の実現
Zabbixを使った効果的な運用管理の実現Zabbixを使った効果的な運用管理の実現
Zabbixを使った効果的な運用管理の実現
 
【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director
【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director
【Interop Tokyo 2015】 DC 3: Cisco ACI と OpenStack / Cisco UCS Director
 

Viewers also liked

Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
Tomoharu ASAMI
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-ja
TIS Inc.
 
Effective Akka読書会2
Effective Akka読書会2Effective Akka読書会2
Effective Akka読書会2
TIS Inc.
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術TIS Inc.
 
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャAkkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
TIS Inc.
 
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜満徳 関
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
Stephen Chin
 
Device Simulator with Akka
Device Simulator with AkkaDevice Simulator with Akka
Device Simulator with Akka
Max Huang
 
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumiリアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
Yuta Okamoto
 
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
TIS Inc.
 
なぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuriなぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuri
Yuta Okamoto
 

Viewers also liked (11)

Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-ja
 
Effective Akka読書会2
Effective Akka読書会2Effective Akka読書会2
Effective Akka読書会2
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術
 
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャAkkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
 
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
 
Device Simulator with Akka
Device Simulator with AkkaDevice Simulator with Akka
Device Simulator with Akka
 
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumiリアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
 
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
 
なぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuriなぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuri
 

Similar to Typesafe Reactive Platformで作るReactive System入門

Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例
OSSラボ株式会社
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
Takanori Suzuki
 
OpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーションOpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーション
エクイニクス・ジャパン
 
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
Brocade
 
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
cloudconductor
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
 
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
Daisuke Ikeda
 
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Weibo Corporation
 
Atlassian Summit 2015でのDevOps関連の取り組みについて
Atlassian Summit 2015でのDevOps関連の取り組みについてAtlassian Summit 2015でのDevOps関連の取り組みについて
Atlassian Summit 2015でのDevOps関連の取り組みについて
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
satsuki fukazu
 
IPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からー
IPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からーIPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からー
IPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からー
Shinsuke SUZUKI
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
Takashi Matsunaga
 
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
Miki Yutani
 
CSCJ_Webcast_20180626_ACI.pdf
CSCJ_Webcast_20180626_ACI.pdfCSCJ_Webcast_20180626_ACI.pdf
CSCJ_Webcast_20180626_ACI.pdf
yojitanaka2
 
ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~
ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~
ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~
Brocade
 
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
softlayerjp
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
 
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
Ataru Shimodaira
 

Similar to Typesafe Reactive Platformで作るReactive System入門 (20)

Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
OpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーションOpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーション
 
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
 
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
 
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
 
Atlassian Summit 2015でのDevOps関連の取り組みについて
Atlassian Summit 2015でのDevOps関連の取り組みについてAtlassian Summit 2015でのDevOps関連の取り組みについて
Atlassian Summit 2015でのDevOps関連の取り組みについて
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
 
IPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からー
IPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からーIPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からー
IPv6 移行時に注意が必要なセキュリティ上の脅威と対策 ー実装者の観点からー
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
 
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
 
CSCJ_Webcast_20180626_ACI.pdf
CSCJ_Webcast_20180626_ACI.pdfCSCJ_Webcast_20180626_ACI.pdf
CSCJ_Webcast_20180626_ACI.pdf
 
ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~
ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~
ストレージ管理者が今、押さえておくべきネットワーク基本の「キ」 ~必要なのは性能とシンプルさ。その極意とは?~
 
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
 

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 Lerna
TIS 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_shinjuku
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 2018
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.
 

More from TIS Inc. (8)

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
 
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)
 

Recently uploaded

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 

Recently uploaded (16)

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

Typesafe Reactive Platformで作るReactive System入門

  • 1. Copyright © 2015 TIS Inc. All rights reserved. Reactive  System  Meetup  in  西新宿 Typesafe  Reactive  Platformで作る Reactive  System入門 2015.8.18 前出 祐吾   根来 和輝
  • 2. Copyright © 2015 TIS Inc. All rights reserved. 2 自己紹介 ■ @yugolf   ! ■ TIS株式会社   ■ 生産革新本部 生産革新部 生産技術R&D室   ■ 社内向けエンジニアリング基盤の整備 ▶▶︎
  • 3. Copyright © 2015 TIS Inc. All rights reserved. 3 TIS、リアクティブコンサルはじめました http://www.tis.jp/service_solution/goreactive/
  • 4. Copyright © 2015 TIS Inc. All rights reserved. 4 Agenda 1.  Reactive  Systemとは   2.  Reactive  Systemのための技術   3.  Reactive体験
  • 5. Copyright © 2015 TIS Inc. All rights reserved. 5 1.    Reactive  Systemとは
  • 6. Copyright © 2015 TIS Inc. All rights reserved. 6 本日の話 http://www.reactivemanifesto.org/ Reactive  Programming:   データの流れ(ストリーム)とデータの値の変化の伝播にフォーカス したプログラムの設計モデル。   ・・・ の話ではない。 Reactive  System:
  • 7. Copyright © 2015 TIS Inc. All rights reserved. 7 Reactive manifesto 絵   ! 即応性   弾力性   耐障害性   メッセージ駆動 http://www.reactivemanifesto.org/ja
  • 8. Copyright © 2015 TIS Inc. All rights reserved. 8 アプリケーションへの高まる要求 50台のサーバで動かしていたけど、クラウド上で 1000コアの環境を作りたいんだ。 レスポンスを得るのに3秒かかるけど、 500ミリ秒くらいにしたいのよ。   それと、年1回の2時間のメンテナンス なんとかならないかしら。 最初は100ギガくらいだったけど、そ ろそろペタ行くんじゃないかな。
  • 9. Copyright © 2015 TIS Inc. All rights reserved. 9 Reactive Systemとは 即応性と、耐障害性と、弾力性と、メッセージ駆動とを備えたシステム http://www.reactivemanifesto.org/ja
  • 10. Copyright © 2015 TIS Inc. All rights reserved. 10 Reactive Systemの価値 届けたい価値 手段 支える原理 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 11. Copyright © 2015 TIS Inc. All rights reserved. Reactive  Design  Pattern(http://manning.com/kuhn/) 11 Responsive ユーザーの要求に迅速にレスポンスするシステム 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 届けたい価値 手段 支える原理 ✓高レスポンスを維持するため、リソースプランニングを行い、コンポー ネントの分割・分散を考慮すべき
  • 12. Copyright © 2015 TIS Inc. All rights reserved. 12 Elastic 通常の負荷時だけでなく、一時的な高負荷状況でも、変動するワークロードに応 じて割り当てるリソースを増加・減少させることで応答時間を一定水準に保つ   高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 届けたい価値 手段 支える原理 Reactive  Design  Pattern(http://manning.com/kuhn/) ✓伸縮性のため、負荷を監視し、その変化に応じて分散する必要がある   ✓1つの部品がボトルネックを持ってはいけないし、独立して動作すべき
  • 13. Copyright © 2015 TIS Inc. All rights reserved. 13 Resilient 部分的な障害が発生した時にもシステム全体を危険にさらすことなく回復さ せ、高レスポンスを維持する 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 届けたい価値 手段 支える原理 Reactive  Design  Pattern(http://manning.com/kuhn/) ✓耐障害性を高めるため、故障したコンポーネントを修復したり、代替 となるコンポーネントを再接続するメカニズムが必要
  • 14. Copyright © 2015 TIS Inc. All rights reserved. 14 Message Driven メッセージパッシングにより、コンポーネント間を疎結合にする 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 届けたい価値 手段 支える原理 Reactive  Design  Pattern(http://manning.com/kuhn/) ✓すべてがメッセージ駆動により実現される
  • 15. Copyright © 2015 TIS Inc. All rights reserved. 15 2.  Reactive  Systemのための技術
  • 16. Copyright © 2015 TIS Inc. All rights reserved. 16 Typesafe Reactive Platform JavaVM アプリケーション  AkkaPlay  Framework Scala Java Slick 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 17. Copyright © 2015 TIS Inc. All rights reserved. 17 Play Framework •非同期/ノンブロッキング   •WebSocketサポート   •Railsのような使いやすさ
  • 18. Copyright © 2015 TIS Inc. All rights reserved. 18 これまで def index = Action { implicit request =>
 Ok(views.html.index())
 } クライアント サーバ ブロッキ ング 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 19. Copyright © 2015 TIS Inc. All rights reserved. 19 Blocking コーヒーください。 コーヒー1つ∼ は∼い できた∼ ・・・ コーヒーどうぞ∼   100円です。 コーヒーください。 コーヒー1つ∼ Block
  • 20. Copyright © 2015 TIS Inc. All rights reserved. 20 Non-blocking コーヒーください。 コーヒー1つ∼ は∼い コーヒーどうぞ∼   コーヒーください。 コーヒー1つ∼ 100円です。 100円です。 は∼い できた∼ コーヒーください。
  • 21. Copyright © 2015 TIS Inc. All rights reserved. 21 Reactive :迅速なレスポンス def index = Action.async {
 val customer: Future[Customer] = getCustomer()
 customer.map(c => Ok("Customer: " + c))
 } クライアント サーバ サービス ノンブ ロッキング ノンブ ロッキング 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 22. Copyright © 2015 TIS Inc. All rights reserved. 22 Reactive :サーバからのプッシュ クライアント サーバ def socket = WebSocket.using[String] { request =>
 
 // Log events to the console
 val in = Iteratee.foreach[String](println).map { _ =>
 println("Disconnected")
 }
 
 // Send a single 'Hello!' message
 val out = Enumerator("Hello!")
 
 (in, out)
 } ノンブ ロッキング WebSocket 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven https://www.playframework.com/documentation/2.4.x/ScalaWebSockets
  • 23. Copyright © 2015 TIS Inc. All rights reserved. 23 Akka •並行処理と分散処理をサポートするActor  System   •Supervision  Model   •location  transparency
  • 24. Copyright © 2015 TIS Inc. All rights reserved. 24 Actor System sender Actor Mailbox Mailbox 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 25. Copyright © 2015 TIS Inc. All rights reserved. 25 Reactive :Actor Model def socket = WebSocket.acceptWithActor[String, String] { request => out =>
 MyWebSocketActor.props(out)
 } object MyWebSocketActor {
 def props(out: ActorRef) = Props(new MyWebSocketActor(out))
 }
 
 class MyWebSocketActor(out: ActorRef) extends Actor {
 def receive = {
 case msg: String =>
 out ! ("I received your message: " + msg)
 }
 } クライアント コントローラ Actor ノンブロッ キング WebSocket Actor https://www.playframework.com/documentation/2.4.x/ScalaWebSockets 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 26. Copyright © 2015 TIS Inc. All rights reserved. 26 Supervision Modelで障害に強いシステムに override val supervisorStrategy: SupervisorStrategy =
 AllForOneStrategy(maxNrOfRetries = 100, withinTimeRange = 1 minute) {
 case _ => Restart
 } スーパー   バイザー サブスーパー   バイザー Actor Actor Actor -­‐OneForOne   -­‐AllForOne 障害を外へ波及させない 子アクターの監視役 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 27. Copyright © 2015 TIS Inc. All rights reserved. 27 let  it  crash
  • 28. Copyright © 2015 TIS Inc. All rights reserved. 28 Distribute https://conductr.typesafe.com/docs/1.0.x/DeployingApplication
  • 29. Copyright © 2015 TIS Inc. All rights reserved. 29 Reactive :Actorを増減させ容易にスケール クライアント コントローラ Actor Actor Actor ルーティングは様々   • ランダム   • ラウンドロビン   • 最小メールボックス   • ブロードキャスト   • 最速採用 ノンブ ロッキング WebSocket Actor location    transparently 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 30. Copyright © 2015 TIS Inc. All rights reserved. 30 Reactive Slick (Slick3.0) •FRM(Functional  Relational  Mapping)ライブラリ   •Scalaのコレクションを扱うかのようにDBアクセスで きる   •DB処理は非同期に実行される
  • 31. Copyright © 2015 TIS Inc. All rights reserved. 31 Supported Databases •MySQL   •PostgreSQL   •H2   •HSQLDB/HyperSQL   •SQLite   •Derby/JavaDB   •Microsoft  Access •DB2   •Microsoft  SQL  Server   •Oracle Slick Extensions
  • 32. Copyright © 2015 TIS Inc. All rights reserved. 32 Reactive :端から端までReactive def search = Action.async { implicit request => …
 val f:Future[Seq[EventRow]] = db.run(Events.filter(form)) f.map {
 case events if (events.length > 0) =>
 Ok(views.html.sample.search( form.bindFromRequest, events))
 case _ =>
 … クライアント コントローラ ノンブ ロッキング WebSocket Actor ノンブ ロッキング Actor データベース 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 33. Copyright © 2015 TIS Inc. All rights reserved. 33 def search = Action.async { implicit request => …
 val f:Future[Seq[EventRow]] = db.run(Events.filter(form)) f.map {
 case events if (events.length > 0) =>
 Ok(views.html.sample.search( form.bindFromRequest, events))
 case _ =>
 … 高レスポンス   Responsive クライアント コントローラ ノンブロッ キング WebSocket Actor ノンブロッ キング Actor データベース Asynchronousが基本、   どこでWaitするかをデザインする Reactive :端から端までReactive
  • 34. Copyright © 2015 TIS Inc. All rights reserved. 34 Reactive :Reactive Streams def search = Action.async { implicit request => …
 val q = for(e <- Event) yield e.eventNm val publisher:DatabasePublisher[String] = db.stream(q.result) publisher.foreach {e => println(e)} … クライアント コントローラ ノンブ ロッキング WebSocket Actor ノンブ ロッキング データベース Actor 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 35. Copyright © 2015 TIS Inc. All rights reserved. 35 3.  Reactive体験
  • 36. Copyright © 2015 TIS Inc. All rights reserved. 36 自己紹介 ■ 根来  和輝  (ねごろ  かずき)   ■ @negokaz   ■ TIS株式会社   ■ 生産革新本部 生産革新部 生産技術R&D室   ■ 次世代のアプリケーション開発手法を研究開発
  • 37. Copyright © 2015 TIS Inc. All rights reserved. 37 Reactive体験 もし、あなたがソーラーファームのオーナーになったら? 発電効率をできるだけ高めたいですよね。   故障したソーラーパネルがないか監視しましょう。
  • 38. Copyright © 2015 TIS Inc. All rights reserved. 38 Reactive Solar Farm Monitor Solar Farm ③ アラートを表示 ID:  1 ② 故障している! パネルを検知 それぞれが毎秒、発電した 電力(W)のデータを送信 ID:  1 Reactive Solar Farm Monitor Icon  made  by  Freepik  from  www.flaticon.com  is  licensed  under  CC  BY  3.0 発電状況を表示 ① 故障して! 発電力が低下
  • 39. Copyright © 2015 TIS Inc. All rights reserved. 39 ソーラーパネルの故障検知 全パネルの平均電力からしきい値を決め
 それ以下の電力しか発電していないものを   故障したとみなす ‣ 発電している電力が  0  のものを故障とみなす?   ‣ 夜になったらどうする? OK NG 平均値 しきい値
  • 40. Copyright © 2015 TIS Inc. All rights reserved. 40 故障検知でやるべきこと ‣全パネルの平均電力を求める   ‣平均値からしきい値を決める   ‣全パネルの電力としきい値を比較する ただしリアルタイムで
  • 41. Copyright © 2015 TIS Inc. All rights reserved. 41 Architecture Monitor Analyzer SolarFarmSimulator HTTP! &! WebSocket
  • 42. Copyright © 2015 TIS Inc. All rights reserved. 42 https://github.com/tech-­‐sketch/reactive-­‐solar-­‐farm-­‐monitor Reactive体験1 - Responsive
  • 43. Copyright © 2015 TIS Inc. All rights reserved. 43 Reactive体験1 - Responsive 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 44. Copyright © 2015 TIS Inc. All rights reserved. 44 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 届けたい価値 手段 支える原理 Reactive体験2 - Elastic 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 45. Copyright © 2015 TIS Inc. All rights reserved. 45 1つのActorですべての計算処理を行う場合 Application  Cluster Analyzer AnalyzerMonitor Mater 1 3 2 4 Worker SolarFarmSimulator 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 46. Copyright © 2015 TIS Inc. All rights reserved. 46 Application  Cluster Analyzer Analyzer Analyzer Analyzer Monitor Master1 3 2 4 複数のActorに処理を振り分ける Worker SolarFarmSimulator 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 47. Copyright © 2015 TIS Inc. All rights reserved. 47 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven 届けたい価値 手段 支える原理 Reactive体験3 - Resilient
  • 48. Copyright © 2015 TIS Inc. All rights reserved. 48 Application  Cluster Analyzer AnalyzerMonitor Master1 3 2 4 Workerがダウンすると Worker AnalyzerAnalyzer SolarFarmSimulator 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 49. 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
  • 50. Copyright © 2015 TIS Inc. All rights reserved. 50 Application  Cluster Analyzer Analyzer Analyzer Analyzer Monitor Master1 3 2 4 Masterがダウンすると Worker SolarFarmSimulator 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 51. Copyright © 2015 TIS Inc. All rights reserved. 51 Application  Cluster Analyzer Analyzer AnalyzerMonitor 1 3 2 4 Analyzer Master WorkerのひとつがMasterになり残りでやりくりする Worker SolarFarmSimulator 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 52. Copyright © 2015 TIS Inc. All rights reserved. 52 Application  Cluster Analyzer AnalyzerMonitor 1 3 2 4 Analyzer Master ダウンしたAnalyzerを起動するとWorkerとなって働く Worker Analyzer SolarFarmSimulator 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 53. Copyright © 2015 TIS Inc. All rights reserved. 53 支えているのはメッセージ駆動のアーキテクチャ Reactive体験4 - Message Driven 高レスポンス   Responsive 伸縮性   Elastic 耐障害性   Resilient メッセージ駆動   Message-driven
  • 54. Copyright © 2015 TIS Inc. All rights reserved. 54 4.  Go  Reactive
  • 55. Copyright © 2015 TIS Inc. All rights reserved. 55 Go Reactive http://www.tis.jp/service_solution/goreactive/ リアクティブに興味のある方はご連絡下さい。 go-­‐reactive@tis.co.jp
  • 56. Copyright © 2015 TIS Inc. All rights reserved. 56 Go Reactive ソースコードはGitHubで公開しています。 太陽光発電に興味のある方はご連絡下さい。 https://github.com/tech-­‐sketch/reactive-­‐solar-­‐farm-­‐monitor go-­‐reactive@tis.co.jp