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
Satoshi
March 03, 2016
Technology
0
210
スケールしない広告サーバの作り方
スケールしない広告サーバを作ってしまうアンチパターンについてまとめています.
Satoshi
March 03, 2016
Tweet
Share
More Decks by Satoshi
See All by Satoshi
高速な広告配信サーバの作り方のコツ
satoshi03
3
460
Gunosy AdServerのデータ周りの話
satoshi03
2
2.8k
フルスクラッチで書いたアドサーバの開発・運用史
satoshi03
2
4.3k
Gunosy.go #2 container
satoshi03
1
60
Gunosy Go Lang Study #6 net net/http net/url
satoshi03
0
130
Other Decks in Technology
See All in Technology
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
400
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
140
AIチャットボット開発への生成AI活用
ryomrt
0
170
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Site-Speed That Sticks
csswizardry
0
26
Git: the NoSQL Database
bkeepers
PRO
427
64k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Designing Experiences People Love
moore
138
23k
How STYLIGHT went responsive
nonsquared
95
5.2k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Transcript
印南 @ Gunosy 広告技術部 スケールしない広告サーバの作り方
自己紹介 • 印南聡志(いんなみ さとし) • Gunosyのアドエンジニア • 2014年6月 入社 •
Gunosyのアド配信サーバ周り全般担当 • 言語 • Go • Python • 最近ランニングにはまっております
今日のお話 スケールしない 広告サーバの作り方 ※ここでのスケールはスケールアウトのことです
注意 スケール時のアンチパターンをまとめております! 弊社の広告サーバがスケールしないわけではありません!
あなたの会社の広告サーバは スケールしていますか?
スケールしないと… 急なリクエスト増に耐えられない
レイテンシ(遅延)が発生
エンジニアの死
油田王になりたくなる
作り方を知れば あなたにも簡単に作れます!
スケールしない広告サーバの作り方① ボトルネックをガンガン作ろう!
ボトルネックをガンガン作ると… アクセス増のタイミングで ボトルネック部分が突然詰まる!
ボトルネックを作るには?
ボトルネックを作るには? (その1) 配信サーバからデータストアに ガンガン書き込みを走らせよう!
配信サーバ 配信データ DB READ WRITE ボトルネック 書き込みが分散できず 詰まる
ボトルネックを作るには? (その2) 全データを一つの データストアに入れよう!
広告情報 配信候補 消化予算 ユーザ属性 FQ リタゲ … データサイズ… ライフサイクル… 重要度…
配信データDB アクセスが集中 メンテが困難
ボトルネックを作るには? (その3) 全ての処理を同期的に行おう!
ログDB WRITE ボトルネック 配信サーバ ELB 書込み完了を 待機
スケールしない広告サーバの作り方② サーバ追加が超絶難しい 環境を作ろう!
どうやって作るか?
サーバを追加するのに 物理的にサーバを購入するために 承認が必要な環境を整えよう! サーバ追加を超絶難しくするには? 3人以上の承認が 必要なのがベター
サーバごとに独自の環境設定を (バレにくいように)埋めこもう! サーバ追加を超絶難しくするには?
どこに隠しておくのが良いのか? • configファイル • 環境変数 • cron /etc/xx/include あたりがGood 実行ユーザを
変えて撹乱
サーバ追加を超絶難しくするには? 継続的インテグレーション(CI)環境 を作らないようにしよう! 自動ビルド 自動テスト 自動デプロイ
まとめ スケールしない広告サーバを作るには? ボトルネックをガンガン作ろう! サーバ追加が超絶難しい環境を整えよう!
最後に スケールする広告サーバに興味があれば 懇親会でお声掛けください
We Are Hiring!!! Gunosyではスケールする広告サーバを 開発するエンジニアを 募集しております!!