Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スマホアプリ「モンスターストライク」も支えるデータプレーン技術
Search
Junpei YOSHINO
September 10, 2018
Technology
1
960
スマホアプリ「モンスターストライク」も支えるデータプレーン技術
ミクシィ社でデータプレーン開発をチームでやっていることを共有します。
自作の処理がどのようなレイテンシで処理がされるのかを測りました。
Junpei YOSHINO
September 10, 2018
Tweet
Share
More Decks by Junpei YOSHINO
See All by Junpei YOSHINO
hbstudy76_yoshino
junpei_y
1
2.1k
ネットワーク運用におけるgithubの活用と今後の展望
junpei_y
2
480
Other Decks in Technology
See All in Technology
AWSアカウントのセキュリティ自動化、どこまで進める? 最適な設計と実践ポイント
yuobayashi
7
610
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
240
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
350
Active Directory攻防
cryptopeg
PRO
8
5.5k
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
170
実は強い 非ViTな画像認識モデル
tattaka
3
1.3k
MIMEと文字コードの闇
hirachan
2
1.4k
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
2.7k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.2k
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
270
生成AI “再”入門 2025年春@WIRED TUESDAY EDITOR'S LOUNGE
kajikent
0
110
Охота на косуль у древних
ashapiro
0
100
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
370
Automating Front-end Workflow
addyosmani
1368
200k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
We Have a Design System, Now What?
morganepeng
51
7.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Writing Fast Ruby
sferik
628
61k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
It's Worth the Effort
3n
184
28k
Transcript
モンストも⽀えるデータプレーン技術 2018/9/10 Junpei Yoshino 株式会社ミクシィ XFLAG STUDIO
⾃⼰紹介 1 • 名前:吉野純平 • 2008年の新卒入社から10年半くらい働いています • 所属:開発本部 XFLAG事業推進室 インフラ開発G
• 事業開発の部隊と共に戦う! • 物理インフラ周りのオペレーション • 開発、構築、運用などなど • パケット加工の処理
2 オペレーション x ネットワーク
3 オペレーションをする上で必要なこと • 1つの問題で全滅しないか • 1つの実装で動いていないか • 安全に迂回ができるか • ソフトウエア改修等で断なくできるか
• どんなときでもプランBがあるか
パケット処理を⾃作できると 5 • ⾃由度が格段にあがる • 世の中にないものもできるかも 高度な処理機能付き ネットワーク機器 変化 よくある
ネットワーク機器 自作処理
4 パケットの処理とは • ⼤きく分けて2種類 • データプレーン • 流れているパケットデータを触る部分の処理 • 今日の主題はこちら
• コントロールプレーン • データプレーンでの処理の仕方を調整するための通信 • 例としてはBGPやIGPのルーティングプロトコル
6 今回紹介する題材 GREのトンネルヘッダー外し
レイテンシを⼩さくしなければならない 7 • ボトルネックがレイテンシになることがある • アプリの作り次第で⼯夫することもできる • ⼩さなレイテンシ環境を⽤意できればシンプル • IBMのクラウドサービスはレイテンシが⼩さい
• しかし、工夫が必要 • スマホアプリ「モンスターストライク」にてIBMを利⽤
アドレスバッティングと回避策検討 8 緑の部分で アドレスバッティングがあった IBM ベアメタル IBM VM IBM ミクシィ
IBM 共通基盤 オンプレ サーバ 他社 クラウド こっちに流れて欲しい こっちに⾏く
9 GREトンネルでの回避策 サーバ VM IBM 共通基盤 オンプレ サーバ 他社 クラウド
ミクシィ サーバ ト ン ネ ル ト ン ネ ル ト ン ネ ル オンプレにサーバ数分の トンネルを作成して回避した
GREトンネルのパケットフォーマット 10 実際に通信したい内容をGREで包む Ethernet IP (outer) GRE IP (inner) payload
実際に通信したい内容 トンネルのためのヘッダー パケットの先頭から=>=>=>
11 ということで GREトンネル終端 を実装してみた 実装と測定
何をするか 12 GREのついたパケットが来る =>外すして転送する! Ethernet IP (outer) GRE IP (inner)
payload Ethernet IP (inner) payload
何をするか 12 GREのついたパケットが来る =>外すして転送する! Ethernet IP (outer) GRE IP (inner)
payload Ethernet IP (inner) payload
開発 • DPDK • 弊社はgtestを使ってテストしています • テストでパケットを投入してどう変更されたかをチェック等 • FPGA Smart
NIC • verilog使います • テストも書きます。どこのビットとクロックが。 • CDは? • ちゃんとグレースフルshutdownできるようにしてあります • かっこいいデプロイはもうちょっとやっていかないといけない
CD!!! • Graceful shutdownについて • ルーティング技術で迂回する ネットワーク機器 ネットワーク機器 開発物 ルーティングプロトコル
ネットワーク機器 ネットワーク機器 開発物
測定 13 • Latency • パケットをどのくらいの処理時間で処理できるか • Packet per Second
• 1秒間に何パケット処理できるか • 10Gbpsならば14.88Mppsが目標 • 最小サイズの64byteで10Gbpsが流せる • (当然ですよねってところで今回はパス)
レイテンシの測り⽅ 14 • 光ファイバを通る光を抜き出す • 時刻情報はArista Networks社の製品機能を使った • TAP aggregation機能
• 誤差はnano secレベルになる。分析用のサーバ性能に非依存 試験対象 トラフィック 送信 トラフィック 受信 TAP aggregation 分析用サーバ
CPU ASIC 実装したものと⽐較対象 15 • ⾃作 • DPDKを使ったもの • FPGA
Smart NICを使ったもの • ⽐較対象 • ASICで処理されるネットワーク機器 NIC FPGA Smart NIC PCIe
⽐較結果 16 5回測定を回した平均値。⾚字の通常転送を基準とした時間を()に記載。 DPDK FPGA Smart NIC ASIC Latency 9.529usec
(+7.435usec) 3.184usec (+1.090usec) 2.294usec (+0.200usec) Latency without GRE 9.456usec (+7.362usec) 3.010usec (+0.915usec) 2.094usec 実装期間 機能半日 +修正数日 実装5日 +事前学習 調整を加えて 3時間
まとめ 18 • データプレーンは作れる • ASICには劣るが⼗分な性能である • ※メモリ参照が多かったりロックが必要な処理には弱い • 変更差分を⼊れた時等にレイテンシも⽐較できることは
有意義である • こうすることでネットワークに多様性の注⼊ができる • ⾃作なのでトラフィック迂回設計の幅が広がる • この技術スタックで新しいものを実装をたくらみ中
None