2014/01/23
WinterWorkshop2014@大洗

クラウド運用のためのストリームマイニング

神戸大学

柗本 真佑
柗本 真佑
themes
ソフトウェア工学
データマイニング
SOA
クラウド

interested in
○ 設計・開発・テスト
△ 要求・運用・保守
概要
• データという観点からクラウド運用を考える
• 思考・調査のあしあと

• まとまりなし,結論なし
• 議論の種・思考の種に

2
クラウドとWeb API
• システムの機能をAPIとして公開
•
•
•
•

Web経由で
プラットフォームに依らず
ソフトウェアから (自動的に)
単純な手続きで,利用できる

・launchVM()
・attachVolume()

・tweet()
・listTweets()

IaaS

API
API

PaaS/SaaS
3
運用・保守のためのWeb API
• システムの機能( 本質 ・ 計測 ・ 運用 )をAPIとして公開
•
•
•
•

Web経由で
プラットフォームに依らず
ソフトウェアから (自動的に)
単純な手続きで,利用できる
Functional API
Measuring API
Management API

IaaS

Functional API
Measuring API

PaaS/SaaS

Management API
4
何を計測するか?
Functional API

• IaaS
•
•
•
•
•

# of running VMs
CPU usage
Disk usage
Memory swap rate
I/O latency

• Common

Measuring API
Management API

• # of API calls
• Avg/Max response time
• # of timed out requests

• PaaS/SaaS

• # of registered users
• # of active users
• # of transactions
(# of tweets, # of photos, …)

5
何を計測するか?
Functional API

• IaaS
•
•
•
•
•

# of running VMs
CPU usage
Disk usage
Memory swap rate
I/O latency

• Common

Measuring API
Management API

• # of API calls
• Avg/Max response time
• # of timed out requests

• PaaS/SaaS

• # of registered users
• # of active users
• # of transactions

何を計測するか?
何のために計測するか?

(# of tweets, # of photos, …)

6
何のために計測するか?

Past
Present
Future

• What

• 現状分析,異常検出,障害究明,アクセス集中・・・

• How

リクエスト数

レスポンス時間

• 基本的な統計分析,見える化,外れ値検出・・・

リクエスト

時間
7
何のために計測するか?

Past
Present
Future

• What

• 予測保守,障害予測,デマンド予測,API先読み実行・・・

• How

• パターン検出,機械学習,共起関係分析,予測・・・

リクエスト数

月

火

水

木

金

土

日

API Y

API X
others
8
何のために計測するか?

Past
Present
Future

• 米Amazonの“Anticipatory shipping”

http://blogs.wsj.com/digits/2014/01/17/amazon-wants-to-ship-your-package-before-you-buy-it/

Personalized

9
何のために計測するか?

Past
Present
Future

• 米Amazonの“Anticipatory shipping”

Personalized

ユーザレベルでのきめ細やかな
運用・保守
Personalized O&M

http://blogs.wsj.com/digits/2014/01/17/amazon-wants-to-ship-your-package-before-you-buy-it/

10
何のために計測するか?

Past
Present
Future

• 米Amazonの“Anticipatory shipping”

Personalized

ユーザレベルでのきめ細やかな
運用・保守
Personalized O&M

計測データをどう役立てるか?
可視化より強力な方法は?
http://blogs.wsj.com/digits/2014/01/17/amazon-wants-to-ship-your-package-before-you-buy-it/

11
計測データ活用のためには?
•

詳細な計測

高度なデータマイニング

高度な運用・保守,品質改善

• 技術的にどうやって? How?
詳細な計測
運用・保守への適用

要件1: 大量のデータを

MapReduce

要件2: リアルタイムに

時系列データ
要件3: 高度なデータマイニング
12
ストリームマイニング (SM)
• データストリームをマイニングする手法・アルゴリズム
• データストリーム: 時間的に変化しながら終わりなく到着するデータ
(取引履歴,通信ログ,ニュース,・・・)

通常のデータマイニング

ストリームマイニング

data
streams

mine

store

knowledge

t

mine
knowledge
13
ストリームマイニング概要
• 膨大なデータストリームに対し,

• 利用者の要求に即応して,
• 小さな計算機資源で,
• 近似解を返す,手法・アルゴリズムのこと*

• 特定の手法を指す言葉ではない

• One-path制約付きのデータマイニング手段の総称

• (基本的には) 厳密な解を求めない

• 粗視化・データ要約・確率計算など
• マイニング目的に応じて興味のない部分を捨てる
※ 最近では厳密解を求められる方法も登場しつつある

*有村

博紀, 喜田 拓也, “データストリームのためのマイニング技術”, 情報処理, 2005, vol.46, no.1

14
SMで何ができるか?
• 基本的な統計量
• 集計,平均,分散

• クラスタリング
• 機械学習
• トレンド分析

• 一般的なデータマイニングと同等

15
SMの実現手段は?
• Apache S4 (Simple Scalable Streaming System)
S4 is a general-purpose, distributed, scalable, fault-tolerant, pluggable
platform that allows programmers to easily develop applications for
processing continuous unbounded streams of data.
http://incubator.apache.org/s4/

• 処理の流れ

key: null
val: “#s4, a distributed #stream processing”

• twitterのハッシュカウント
key: topic=“s4”
val: count=1

PE

key: topic=“stream”
val: count=1
PE

PE

PE: Processing Element

val: topic=“s4”, count=4

PE

http://oss.infoscience.co.jp/s4/docs.s4.io/examples/
twitter_topic_counter.html

16
他にも色々
• Storm
Storm is a free and open source distributed realtime computation system.
http://storm-project.net/

• Storm + Hadoop

• Lambda architecture*
Speed layer (Storm)
Stream
processing

New data
stream

Realtime
view

Batch layer (Hadoop)
All data

Precompute
views

query

Batch view

Batch view

*Big Data: Principles and best practices of scalable realtime data systems, Manning Publications Co, 2012 17
運用・保守へどう適用するか?
• S4, Storm = 汎用リアルタイム処理フレームワーク
• 「リアルタイムMapReduce」 「ストリーミングMapReduce」

• 運用・保守に特化させたクラウドシステムへ
• PaaS型,Cloud Ops. as a Service

Wikipedia, Image:060428-bagger288-garzweiler.jpg; Bearbeitung von Snorky 18
運用・保守へどう適用するか?
• S4, Storm = 汎用リアルタイム処理フレームワーク
• 「リアルタイムMapReduce」 「ストリーミングMapReduce」

• 運用・保守に特化させたクラウドシステムへ
• PaaS型,Cloud Ops. as a Service

発掘技術 (How) は豊富
何をするか (What) が重要
Wikipedia, Image:060428-bagger288-garzweiler.jpg; Bearbeitung von Snorky 19
*
「捨てる技術」
*長尾

• データは際限なく増える

• googleは10,20年後どうなるか?
• 供給電力の問題も

真, “捨てる技術”, 情報処理, 2014, vol.55, no.1

ストレージ
生産速度
情報
生産速度

• 捨てる技術

• 20年~30年使われなかったデータが本当に必要か?
• 必要なデータだけを残す技術が必要になるのでは?

レスポンス時間

レスポンス時間

• 実例は捨てる.パラメタだけを残す.

リクエスト

リクエスト

20
*
「捨てる技術」
*長尾

• データは際限なく増える

• googleは10,20年後どうなるか?
• 供給電力の問題も

真, “捨てる技術”, 情報処理, 2014, vol.55, no.1

ストレージ
生産速度
情報
生産速度

• 捨てる技術

• 20年~30年使われなかったデータが本当に必要か?
• 必要なデータだけを残す技術が必要になるのでは?
• 実例は捨てる.パラメタだけを残す.
レスポンス時間

レスポンス時間

「必要なデータ」とは?
ゴミ山か? 金鉱か?
本当に捨てて良いのか?
リクエスト

リクエスト

21
何を計測するか?

Past

何のために計測するか?

Present

Functional API

• IaaS
•
•
•
•
•

• Common

Future

Measuring API

• 米Amazonの“Anticipatory shipping”

Management API

• # of API calls
• Avg/Max response time
• # of timed out requests

# of running VMs
CPU usage
Disk usage
Memory swap rate
I/O latency

Personalized

ユーザレベルでのきめ細やかな
運用・保守
Personalized O&M

• PaaS/SaaS

• # of registered users
• # of active users
• # of transactions

何を計測するか?
何のために計測するか?

計測データをどう役立てるか?
可視化より強力な方法は?

(# of tweets, # of photos, …)

12

「捨てる技術」*

運用・保守へどう適用するか?

*長尾

• S4, Storm = 汎用リアルタイム処理フレームワーク
• 「リアルタイムMapReduce」 「ストリーミングMapReduce」

• 運用・保守に特化させたクラウドシステムへ
• PaaS型,Cloud Ops. as a Service

22

http://blogs.wsj.com/digits/2014/01/17/amazon-wants-to-ship-your-package-before-you-buy-it/

• データは際限なく増える

• googleは10,20年後どうなるか?
• 供給電力の問題も

真, “捨てる技術”, 情報処理, 2014, vol.55, no.1

ストレージ
生産速度
情報
生産速度

• 捨てる技術

• 20年~30年使われなかったデータが本当に必要か?
• 必要なデータだけを残す技術が必要になるのでは?
• 実例は捨てる.パラメタだけを残す.

Wikipedia, Image:060428-bagger288-garzweiler.jpg; Bearbeitung von Snorky 38

レスポンス時間

「必要なデータ」とは?
ゴミ山か? 金鉱か?
本当に捨てて良いのか?

レスポンス時間

発掘技術 (How) は豊富
何をするか (What) が重要

リクエスト

リクエスト

42
22

クラウド運用のためのストリームマイニング