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

Preview:

DESCRIPTION

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

Citation preview

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

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

はじめに

森は、海の恋人

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

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

なぜ漁民が山で?

豊かな海を作るには

豊かな森が必要

マングース導入の失敗

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

ハブは駆除されず

ウサギ等の固有種が減少

まとめると

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

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

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

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

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

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

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

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

システムは

「ソフトウェア」

「ハードウェア」

「ネットワーク」

で構成される

ということができる

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

ハードウェア

ネットワーク

ソフトウェア

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

サーバエンジニア

ネットワークエンジニア

スペシャリスト

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

ネットワーク

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

サーバエンジニア

ネットワークエンジニア

スペシャリスト

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

そろそろ、

ソフトかハードか

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

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

打破しませんか?

この提言のため、

FPGAをwebサービスへ導入

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

本日の流れ

一.FPGAとは

二.FPGAとの出会い

三.使い道の可能性

四.FPGA導入への第一歩

一、FPGAとは

一.FPGAとは

Field-Programmable Gate Array

現場で

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

論理回路チップ

一.FPGAとは

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

液晶ディスプレイの制御

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

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

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

FPGA評価キットのボード

FPGA

ハードウェア

ネットワーク

ソフトウェア

実現できる機能 FPGA

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

レイヤ 機能

ソフトウェア

ハードウェア

ネットワーク

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

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

誰が扱うの?

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

サーバエンジニア?

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

そんな議論は 不毛だとは

思いませんか?

もう一度・・・

そろそろ、

ソフトかハードか

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

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

打破しませんか?

二、FPGAとの出会い

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

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

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

select/insert

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

メモリ コントローラ

SATA コントローラ

select/insert

<汎用> きめ細かに

多種多様な 事ができる

<専用>

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

HDD メモリ メモリ HDD

OS

FPGA

CPU

FPGA

通常の反応 (CPU的)

反射 (FPGA的)

①刺激

②脊髄

③脳【判断/指示】

①刺激

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

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

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

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

MicroAdのシステムと

特徴が合致!

三、使い道の可能性

MicroAdのご紹介

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

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

参加system A

主催system

参加system B

Webユーザ

100円

30円

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

「広告を見る人」

「表示ページ」

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

どの広告を何回見たか

人 × 広告主サイト 相性

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

広告 × 配信ページ 相性

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

MicroAdのシステムの特徴

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

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

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

FPGAが使えるかも?!

使い道の可能性

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

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

妄想

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

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

状況

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

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

GARAGE

東京湾付近某所

小休止

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

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

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

実現機能:

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

リターゲティングとは

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

(4)再来訪

(1)広告主サイト訪問

(2)離脱

(3)追跡

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

成約

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

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

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

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

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

設定の一例(ファッション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

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

初代

二代目

三代目

365日分

3時間分 1日分

細やかな 設定を実現

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

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

(1)広告主 サイト訪問

(2)離脱

(3)追跡

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

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

データ反映タイムラグ

初代

二代目

三代目

24時間

2時間 50ミリ秒

リアルタイム化を実現

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

初代 二代目 三代目

データ 集計・反映

MapReduce Hive Storm

データ蓄積 HDFS,MySQL HDFS HBase

広告配信時 参照データ

MySQL KyotoTycoon KyotoTycoon

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

6,000QPS (3億件/日)

120億件 (300GB)

4.4億件

KyotoTycoon Storm

運用のポイント

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

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

現状の課題

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

四.FPGA導入への第一歩

必要な知識・スキル

ハードウェア

ネットワーク

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

3. 論理電子回路

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

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

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

2. 2進数計算

→調べてみてください

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

できたけど・・・

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

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

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

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

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

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

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

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

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

最後にもう一度・・・

そろそろ、

ソフトかハードか

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

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

打破しませんか?

ありがとうございました

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

Recommended