ソフトとかハードとか関係ございません

55
ソフトとかハードとか 関係ございません 株式会社マイクロアド 佐藤由紀 http://engineer.microad.jp/strawberry/

description

Developers Summit 2014(デブサミ2014) 佐藤由紀 発表資料

Transcript of ソフトとかハードとか関係ございません

Page 1: ソフトとかハードとか関係ございません

ソフトとかハードとか 関係ございません

株式会社マイクロアド 佐藤由紀 http://engineer.microad.jp/strawberry/

Page 2: ソフトとかハードとか関係ございません
Page 3: ソフトとかハードとか関係ございません

はじめに

Page 4: ソフトとかハードとか関係ございません

森は、海の恋人

1989年に宮城県気仙沼で始まった活動

漁民が山で広葉樹の植林を行う

なぜ漁民が山で?

豊かな海を作るには

豊かな森が必要

Page 5: ソフトとかハードとか関係ございません

マングース導入の失敗

ハブ駆除のため奄美大島にマングースを導入

ハブは駆除されず

ウサギ等の固有種が減少

Page 6: ソフトとかハードとか関係ございません

まとめると

海は海、山は山、と別々に考えず

山が良くなれば海が良くなると 全体として考える

ハブとマングースだけを 入れた檻の中だけを考えず

せめて、島全体まで考える

Page 7: ソフトとかハードとか関係ございません

部分最適解と全体最適解は異なる

これは、自然科学における常識

システムの世界でも同じでは?

Page 8: ソフトとかハードとか関係ございません

ひとつの表現として・・・

システムは

「ソフトウェア」

「ハードウェア」

「ネットワーク」

で構成される

ということができる

ソフトウェア=アプリケーション/ミドルウェア。 ハードウェア=OS/サーバ

Page 9: ソフトとかハードとか関係ございません

ハードウェア

ネットワーク

ソフトウェア

アプリケーションエンジニア

サーバエンジニア

ネットワークエンジニア

スペシャリスト

Page 10: ソフトとかハードとか関係ございません

ハードウェア ハードウェア

ネットワーク

ソフトウェア アプリケーションエンジニア

サーバエンジニア

ネットワークエンジニア

スペシャリスト

セクショナリズム と混同?

Page 11: ソフトとかハードとか関係ございません

そろそろ、

ソフトかハードか

フロントエンドかバックエンドか

そんなセクショナリズムを

打破しませんか?

Page 12: ソフトとかハードとか関係ございません

この提言のため、

FPGAをwebサービスへ導入

することの可能性についてお話します

Page 13: ソフトとかハードとか関係ございません

本日の流れ

一.FPGAとは

二.FPGAとの出会い

三.使い道の可能性

四.FPGA導入への第一歩

Page 14: ソフトとかハードとか関係ございません

一、FPGAとは

Page 15: ソフトとかハードとか関係ございません

一.FPGAとは

Field-Programmable Gate Array

現場で

内部処理を書き換え可能な

論理回路チップ

Page 16: ソフトとかハードとか関係ございません

一.FPGAとは

データウェアハウス(Netezza)

液晶ディスプレイの制御

超音波診断のリアルタイム表示

高速ネットワーク処理(ルータ等)

などに使われる、夢のチップ!

Page 17: ソフトとかハードとか関係ございません

FPGA評価キットのボード

FPGA

Page 18: ソフトとかハードとか関係ございません

ハードウェア

ネットワーク

ソフトウェア

実現できる機能 FPGA

モデルが簡易すぎ、わかりにくい再構築 ⇒ ⇒

Page 19: ソフトとかハードとか関係ございません

レイヤ 機能

ソフトウェア

ハードウェア

ネットワーク

Page 20: ソフトとかハードとか関係ございません

FPGA ソフトウェア機能も ハードウェア機能も ネットワーク機能も 実現可能

Page 21: ソフトとかハードとか関係ございません

ソフトウェア、ハードウェア、ネットワークの機能を実現できるFPGA

誰が扱うの?

アプリケーションエンジニア?

サーバエンジニア?

ネットワークエンジニア?

そんな議論は 不毛だとは

思いませんか?

Page 22: ソフトとかハードとか関係ございません

もう一度・・・

そろそろ、

ソフトかハードか

フロントエンドかバックエンドか

そんなセクショナリズムを

打破しませんか?

Page 23: ソフトとかハードとか関係ございません

二、FPGAとの出会い

Page 24: ソフトとかハードとか関係ございません

MicroAdにて 2011年に導入したNetezzaに FPGAが利用されている事から その有用性を知る

Netezzaは、 アプライアンスの データウェアハウス

Page 25: ソフトとかハードとか関係ございません

通常のデータウェアハウス Netezza

select/insert

ネットワークコントローラ

メモリ コントローラ

SATA コントローラ

select/insert

<汎用> きめ細かに

多種多様な 事ができる

<専用>

特定処理の ためだけに 最適化 されている

HDD メモリ メモリ HDD

OS

FPGA

CPU

FPGA

Page 26: ソフトとかハードとか関係ございません

通常の反応 (CPU的)

反射 (FPGA的)

①刺激

②脊髄

③脳【判断/指示】

①刺激

②脊髄 【既定の動作を指示】

FPGAは反射の際の脊髄のように、 瞬時に既定の動作を行う

Page 27: ソフトとかハードとか関係ございません

大量のデータを用い、高速化が

必要な処理にFPGAを活用できる

MicroAdのシステムと

特徴が合致!

Page 28: ソフトとかハードとか関係ございません

三、使い道の可能性

Page 29: ソフトとかハードとか関係ございません

MicroAdのご紹介

自社でプラットフォームシステムを開発し、広告配信事業を行う会社

広告をオークション形式で配信

参加system A

主催system

参加system B

Webユーザ

100円

30円

Page 30: ソフトとかハードとか関係ございません

オークション参加システム

「広告を見る人」

「表示ページ」

等・・・ 人 × 広告閲覧回数

どの広告を何回見たか

人 × 広告主サイト 相性

人 × デモグラ情報 性別、居住地域、年代

広告 × 配信ページ 相性

“どの広告”を “いくら”で 入札するかを 決定

Page 31: ソフトとかハードとか関係ございません

MicroAdのシステムの特徴

大量リクエスト(60億件/日)に対し

大量データ(10億件を10セット)を参照し

高速にレスポンス(5ミリ秒)する

FPGAが使えるかも?!

Page 32: ソフトとかハードとか関係ございません

使い道の可能性

大量リクエストのフィルタリング/正規化/処理の分岐

参照する大量データのKVSとして

妄想

オークション処理全てをFPGA上で

実現できたら、すごく面白いかもしれない

Page 33: ソフトとかハードとか関係ございません

状況

昨年12月より検証開始し、2014年夏には一部導入予定。

検証は、こんな場所で実施しています

Page 34: ソフトとかハードとか関係ございません

GARAGE

Page 35: ソフトとかハードとか関係ございません

東京湾付近某所

Page 36: ソフトとかハードとか関係ございません
Page 37: ソフトとかハードとか関係ございません

小休止

Page 38: ソフトとかハードとか関係ございません

小休止:StormとHBaseの活用事例

StormとHbaseを活用したシステムを

開発し、2013年9月より稼働

実現機能:

メインプロダクト に搭載した、 新しいリターゲティング機能

Page 39: ソフトとかハードとか関係ございません

リターゲティングとは

再来訪を促す広告配信手法

(4)再来訪

(1)広告主サイト訪問

(2)離脱

(3)追跡

サイトを離れる 他のサイトで広告を掲載

成約

Page 40: ソフトとかハードとか関係ございません

MicroAdのリターゲティングの変遷

初代 【リリース時期】2007年 【特徴】細やかなリタゲ設定が可能

二代目 【リリース時期】2011年 【特徴】リアルタイム性を向上

三代目 【リリース時期】2013年 【特徴】最も細やかなリタゲ設定ができ、 その上、リアルタイム(50ミリ秒) なデータ反映を実現

Page 41: ソフトとかハードとか関係ございません

“細やかなリタゲ設定”とは

設定の一例(ファッションECサイトの例)

「A and B not C」や「A and B and C」などの指定が可能

(もっと細やかな設定も可能)

A)女性服のページに 三か月以内に5回~9回

B)子供服のページに 昨年の11月に2回以上

C)二か月以内に購入

三代目リターゲティングの特徴(1)

現在

現在

三か月前

11/1

二か月前

5回~9回

2回以上

11/30

Page 42: ソフトとかハードとか関係ございません

処理時に参照するデータの量

初代

二代目

三代目

365日分

3時間分 1日分

細やかな 設定を実現

Page 43: ソフトとかハードとか関係ございません

三代目リターゲティングの特徴(2)

“50ミリ秒でのデータ反映”

(1)広告主 サイト訪問

(2)離脱

(3)追跡

広告主サイトに訪問した瞬間(50ms) データが反映される

↓ 直後から、 その広告主の広告が 配信される

Page 44: ソフトとかハードとか関係ございません

データ反映タイムラグ

初代

二代目

三代目

24時間

2時間 50ミリ秒

リアルタイム化を実現

Page 45: ソフトとかハードとか関係ございません

基盤となるミドルウェアの変遷

初代 二代目 三代目

データ 集計・反映

MapReduce Hive Storm

データ蓄積 HDFS,MySQL HDFS HBase

広告配信時 参照データ

MySQL KyotoTycoon KyotoTycoon

Page 46: ソフトとかハードとか関係ございません

システム構成の概要 ※数値は2014年2月1日時点

6,000QPS (3億件/日)

120億件 (300GB)

4.4億件

KyotoTycoon Storm

Page 47: ソフトとかハードとか関係ございません

運用のポイント

MQに余裕を持たせることで、StormやHBaseのメンテナンスがしやすい

Zabbixで各種統計情報を取得し、パフォーマンス解析に活用

現状の課題

キャッシュ破棄等で、HBaseのパフォーマンスが劣化するタイミングがある

Page 48: ソフトとかハードとか関係ございません

四.FPGA導入への第一歩

Page 49: ソフトとかハードとか関係ございません

必要な知識・スキル

ハードウェア

ネットワーク

ソフトウェア 1. HDL(ハードウェア定義言語) 2. FPGAの仕組み

3. 論理電子回路

Page 50: ソフトとかハードとか関係ございません

この二つが分かっていれば、

「論理電子回路」はとても簡単です

1. 論理演算(AND,OR・・・)

2. 2進数計算

→調べてみてください

Page 51: ソフトとかハードとか関係ございません

あとは、入門キット(20,000円~)を購入し、HDLでコーディング/コンパイル

できたけど・・・

さっきの妄想を実現するには程遠い

Page 52: ソフトとかハードとか関係ございません

次はもうちょっと本格的な評価キットを購入し、新たなコーディング

ここまで出来れば、FPGAの扱いはOK!

Page 53: ソフトとかハードとか関係ございません

参考:本格的なアプローチ

1. 回路設計 →回路CADのスキルも必要

2. パターン設計 →アナログ/デジタル回路のスキルも必要

3. 基板/部品組み立ての発注

4. HDLでコーディング/コンパイル

※実は、アプライアンス製品を買っちゃう方法もありますよ。

Page 54: ソフトとかハードとか関係ございません

最後にもう一度・・・

そろそろ、

ソフトかハードか

フロントエンドかバックエンドか

そんなセクショナリズムを

打破しませんか?

Page 55: ソフトとかハードとか関係ございません

ありがとうございました

株式会社マイクロアド 佐藤由紀 http://engineer.microad.jp/strawberry/