SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム

SmartNews, Inc.
SmartNews, Inc.SmartNews, Inc.
SmartNews AdServer
解体新書 / ポストモーテム
@tamtam180 SmartNews, Inc.
公開用に何枚かスライドを削除しています。
一部画像の削除、およびモザイクを入れています。
自己紹介
• 名前: たむたむ
• 職業: ソフトウェアエンジニア
• Twitter: @tamtam180
• 趣味: オンラインゲーム, セクシーなサービスを作る事
• OSS-Contribute: TokyoTyrant, Hadoop, Hive, ArangoDB,
PipelineDB
• SIer (2年)
• Square Enix (約6年)
– PlayOnline, FF-XIV
• Freelance (2年)
• SmartNews (いまここ)
自己紹介
• スクエニを退職したら2chにスレッド立てられて晒された
• こんな事が書かれていた
• 豆腐ハンバーグ美味しいし、
貧乏じゃねーし、
余計なお世話だ
自己紹介
• 広告の事、何もやったことない
広告用語は略語が多い
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
初期の開発スケジュール
• 08/15 API仕様確定
• 08/22 iOS SDK提供開始
• 08/29 Android SDK提供開始
• 09/12 Web SDK 提供開始
• 09/15 Adサーバ リリース
• 09/25 Android版テスト配信(public test)
• 10/08 Web版テスト配信
• 10/15 iOS版テスト配信(public test)
• 10/27 iOS Submit
• 10/28 Android Release
• 11/04 Standard Ad配信開始
• 11/16 Premium Ad配信開始
• 12/01 正式リリース & セールススタート
というスケジュール表が
8月20日に
投稿されていた
複数のアドバイザ
• 思想も設計も既に決まっているのに
後は走るだけなのに
–外部からアドバイザが次々とやってくる
–「思想や設計を説明してくれ」
Initial Commit
テスト
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
使っている技術
• Scala
使っている技術
• Scala
• Java
使っている技術 – Java -
• Scala
• Java(1.8)
• Jetty (Embedded)
• Spring Framework (DI)
• Jackson
• SLF4j / Logback
• FastUtil
• Kryo
• Trie4j
• MyBatis
• Flyway
• Nashorn
• gRPC / ProtoBuf
• Guava
使っている技術 – Middle Ware -
• NewRelic
• JMX with DataDog
• MySQL
• Redis
• DynamoDB
• Fluentd
• Kinesis
使っている技術 – AWS -
• EC2
• S3
• CloudFront -> Akamai
• RDS
• DynamoDB
• ElastiCache(Redis)
• Redshift
• Kinesis
• Route53
Lambda
EC2 Container Service
CodeDeploy
CloudWatch
EMR
Device Farm
SNS
CloudSearch
Elastic Transcoder
SQS
Kernel Parameter
kernel.sysrq =	0
kernel.core_uses_pid =	1
kernel.sem =	250	256000	100	1024
kernel.msgmnb =	65536
kernel.msgmax =	65536
kernel.shmmax =	68719476736
kernel.shmall =	4294967296
#	auto	configure	by	kernel
#fs.file-max	=	524280
#kernel.threads-max	=	500000
net.ipv4.ip_local_port_range	=	10000	65535
net.ipv4.ip_forward	=	0
net.ipv4.tcp_syncookies	=	1
net.ipv4.conf.default.rp_filter	=	1
net.ipv4.conf.default.accept_source_route	=	0
net.ipv4.tcp_wmem	=	4096	16384	16777216
net.ipv4.tcp_rmem	=	4096	87380	16777216
net.ipv4.tcp_fin_timeout	=	5
net.ipv4.tcp_keepalive_time	=	10
net.ipv4.tcp_keepalive_probes	=	3
net.ipv4.tcp_keepalive_intvl	=	4
net.ipv4.tcp_max_syn_backlog=8192
net.core.somaxconn =	65535
net.core.netdev_max_backlog =	65535
net.ipv4.tcp_max_syn_backlog	=	65535
net.ipv4.conf.all.arp_ignore	=	1
net.ipv4.conf.all.arp_announce	=	2
net.core.rmem_default =	87380
net.core.rmem_max =	16777216
net.core.wmem_default =	16384
net.core.wmem_max =	16777216
net.core.netdev_max_backlog =	16384
net.ipv4.tcp_tw_reuse	=	1
net.ipv4.tcp_tw_recycle	=	0
net.ipv4.tcp_window_scaling	=	0
net.ipv4.tcp_timestamps	=	0
net.ipv4.icmp_echo_ignore_broadcasts	 =	1
net.ipv4.tcp_no_metrics_save	=	1
net.ipv4.tcp_ecn	=	0
rc.local
#!/bin/bash
touch	/var/lock/subsys/local
for	path	in	/proc/sys/net/ipv4/conf/*
do
nic=$(basename "$path")
if	[[	$nic ==	eth*	]];	then
/sbin/ifconfig $nic txqueuelen 10000
/sbin/ethtool-K	$nic rx off	tx off	sg off	tso off	ufo off	gso off	gro off	lro off
fi
done
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
アドサーバが持っている機能
• Filters
• Beacon Endpoint
• Budget Control
• Frequency Control
• Auction
• Bloom Filter
• Ad Allocation (Minimum Cost Flow)
• Optimizer
• Impression Smoother
• Web Tracking
• Preflight Mode
• Rehearsal Mode
• Restrict Mode
• SelfServe Delivery
• Admin API
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
広告処理概要
SDK AdServerELB
CDN S3
Dispatcher
Transform
Filter
JSON
Image
Redis MySQL
Dynamo
DB
Auction
Allocation(最適化問題)
Serializer
初期バージョン設計思想
• なるべく通信はしない
• データはなるべくオンメモリ
• リフレクションは使わない
• 各種処理は計算量O(1), O(LogN)で実装する
• ログ基盤に割くリソースはないので、フロントであ
る程度頑張る
アドサーバが扱うデータの種類
広告処理概要 - データの種類 -
• アドサーバが扱うデータの種類
– ユーザー主体の情報
– キャンペーン主体の情報
– メディア主体の情報
– マスタ情報
– 速報値カウンタ
広告処理概要 - オンメモリ -
AdServer
Redis
Pubsub
MySQL
Master
MySQL
Slave
管理画面
Pub
1.	Sub
2.	起動時に一気にLoad
6.	キャッシュ更新
キャンペーン情報
OnMemory
各種情報はオンメモリで
Queue
4.	Latch
5.	Load
3.	キャッシュ更新
レプリケーション遅延対策
広告処理概要 - レプリケーション遅延対策 -
AdServer
Redis
Pubsub
MySQL
Master
MySQL
Slave
管理画面
1.	Update
3.	Pub(ID,	LastTimestamp)
Sub
4.	Timetamp比較
6.	キャッシュ更新
キャンペーン情報
OnMemory
キャンペーン Table
最終更新時間 Table 2.	Update5.	Retry
各種情報はオンメモリで
速報値カウンタ
広告処理概要 – 速報値カウンタ -
AdServer
Redis
速報値情報
OnMemory
SDK
Beacon
LogFile Fluentd
S3
Kinesis
Redis
WriterCounter
ReadCounter
予算消化情報
時系列カウンタ
広告識別子
広告識別子
• 払い出した広告には1件ずつユニークなIDを割り当てている
• UUIDは使っていない
• OTS (One Time Signature)
– 120Bit
– Base64URIしたもの
• ASCII: 20文字
• サーバ間で協調する事無く、ユニークなIDを生成できる
広告識別子
Name Bit Description
Version 4 OTS Version
Timestamp 41 2012/12/10 00:00:00	起点のミリ秒
NodeId 24 サーバのID
RedisId 8 格納先RedisのID
Sequence 19 ラウンドロビンカウンタ
BitOptions 8 各種フラグ
Reserved 16 予約
広告識別子とメタ情報
OTS
Redis
Hash
Key Field
Hash OTS
META
Value
RES
IMP
VIMP
CLICK
CONV
Time
Time
Time
Time
Time
Object
Impression Smoothing
Impression Smoothing
ベース
Device * Channel * DayOfWeek
/ Per Minute
xxx	IMP
プラン
ScoreXScoreX
Remain
Counter
Base
Debt
Assist
Prediction
MixedScore
Allocation
IMP売り商品
• Standardのアドサーバは2つの広告を扱って
いる
–IMP売りの商品(純広告)
–パフォーマンス広告(運用型広告)
• これを1回のリクエストで返す必要がある
純広告と運用型広告の処理
Channel Channel Channel Channel
純広告
運用型広告
Smoothing
Allocation(最適化問題)
AuctionAuction
Allocation(最適化問題)
Merge
Impression Smoothing
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
注意事項
• ここから、とても残念な発表の連続です。
• 前提として、
–リリーススケジュールが過酷
–大量の機能リリースが必要
• だったという事を念頭にお願いします。
Release頻度
16
34 34
19 20
12
21
13
18
25 25
15 14
16
7
12
2014.11
• 基本機能は実装
– iOS, Android, WebSDKは実装済み
– Budget Control
– Auction
– Frequency Control
– Rehearsal Mode
– Restrict Mode
– Naive Allocation
– TrackingTool
– WebTag
パフォーマンス事件簿 File.1
パフォーマンス障害
• ピークタイムでELBから外れてしまう
• Monitor競合がとても多い事を観測
Java Blocking
• MersenneTwisterがMTSafeじゃなかった
• JavaのPropertiesをオンライン処理で参照してブロック
– getPropertyがsynchronized
• SecureRandomが刺さる
– nextBytesがsynchronized
• NewRelicの@Traceが多いと時々刺さる
Java Blocking
• 暗号化ライブラリがスレッドブロッカー
– Cipherのインスタンスはスレッドセーフではないので毎
回生成する必要がある
– ただし、Instance化する時にsynchronizedが存在する
– GenericObjectPoolを使った
• GenericObjectPoolもsynchornizedなコードが多い
– ThreadLocalを使うようにして回避
Java Blocking
• getClass().get**Name()がBlockする
– OpenJDKのソースを追っていくとBlockする箇所がある
集団食中毒 事件
集団食中毒事件
• みんなでランチに豚カツを食べに行った
• 夕方に体調を崩して早退
• 家で壮大に吐く
• 他にも被害者多数
IAAS事件簿
CDN障害
• クリエイティブ画像が表示されない障害が発生
– CloudFrontの障害
– この年はCloudFrontの障害が多かった
• SLA100%のCDNへ移行
AWS
• ElastiCache
– 自動snapshot取得中にtimeoutが頻発
– Server側に存在しない接続情報が大量に残っていてTCPレベ
ルでACKを返さなくなる
• AMI(EC2)
– 2015.09のAMIで頻繁にインスタンスチェックが失敗する
iOSクラッシュ事件
iOSクラッシュ
• 前回、広告を取得した件数よりも、
今回、広告を取得した件数が小さい場合にクラッシュす
る
• 急遽、求人広告を作ってフィラーとして配信する
パフォーマンス事件簿 File.2
パフォーマンス事件 File.2
パフォーマンス事件 File.2
• 2015年4月28日
• 最近、日に日に負荷が高くなっている。
• ゴールデンウィークが危ない
パフォーマンス事件 File.2
パフォーマンス事件 File.2
• 現象
–GC時間が増加している
–FULL GCが10秒に1回くらい発生していた
• 対処
–速報値カウンタのTimeline取得をO(N+LogN)から
O(1)に
–大量のインスタンス生成箇所をつぶした
パフォーマンス事件 File.2
パフォーマンス事件簿 File.3
パフォーマンス事件 File.3
• 2015年5月8日
• GCがやばい
• Class Unloadingが多い
• チューニングしないと!!
パフォーマンス事件 File.3
パフォーマンス事件 File.3
• 現象
– FullGCが多い
– ClassUnloadingが何故か多い
• 対処
– GC抑止のためにパラメータチューニング
– レキシカルスコープを参照しているLambda式
の排除
パフォーマンス事件 File.3
• GCパラメータ(before)
-Xmx****m
-Xms****m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
パフォーマンス事件 File.3
• GCパラメータ(after)
-Xmx****m	-Xms****m	-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70	-XX:NewRatio=1	
-XX:SurvivorRatio=2	-XX:TargetSurvivorRatio=90	
-XX:MaxTenuringThreshold=15	
-XX:+DisableExplicitGC
-Xloggc:/data/logs/_gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10	
-XX:GCLogFileSize=1024m	
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution
-XX:+TraceGen0Time	-XX:+TraceGen1Time
パフォーマンス事件 File.3
パフォーマンス事件簿 File.4
パフォーマンス事件 File.4
• 現象
– バックグラウンド処理が遅い
• 対処
– 各種実装の最適化
•一部処理の並列化
•不要なデータの読み込みを回避
•通信の回数を減らす
パフォーマンス事件 File.4
パフォーマンス事件 File.4
パフォーマンス事件 File.4
パフォーマンス事件 File.4
アラート通知事件 File.番外編
アラート通知
• 全台バランサから外れていた
• 数時間気づかなかった
• そもそもアラートが来ない
• 何故?
• PagerDutyに登録している電話番号間違ってた
サービスインする
前の話です
アラート通知
• 一時期、毎朝7時のピークで障害が発生した。
• 好きな着メロだったのに嫌いになった。
パフォーマンス事件簿 File.5
パフォーマンス事件 File.5
• 現象
– 速報値を扱っているRedisの通信帯域がつらい
• 対処
– アーキテクチャの変更
パフォーマンス事件 File.5
AdServer
Scan
Timeline	Summary
ToCache
RedisAdServerAdServer
パフォーマンス事件 File.5
• スケールしないもの(Redis)と直接通信をすると
アドサーバがスケールしなくなる
• 速報値を扱うプロセスを用意し、アドサーバは
それと通信をする。
パフォーマンス事件 File.5
AdServer
Scan
Timeline	Summary
ToCache
RedisAdServerAdServer
Process
Summaried Data
パフォーマンス事件 File.5
パフォーマンス事件 File.5
確率計算ミス File.番外編
確率計算ミス
• 確率計算ミス
– 70%で配信したいところが、確率計算をする度にサイコロ(乱
数)を振っていた
– 1回の広告取得で3チャンネルを同時に取得する
– 1回の広告で70%にしないといけない設定だった
– 各チャンネルで70%の判定をしていた
– 70% * 70% * 70% = 34.3%
– しかも、オペレーション担当に体感30%くらいなんですけど?と
言われて発覚した
確率計算ミス
サービスIN前
です
パフォーマンス事件簿 File.6
パフォーマンス事件 File.6
• 現象
– OTSに紐付くMeta情報が日々肥大化している
• 対処
– Serializerを変更
パフォーマンス事件 File.6
• 今まではデバッガビリティのためにJSONで保
存
• KryoのTagFieldSerializerを使用
• BooleanフラグをOTS側に移動
パフォーマンス事件 File.6
• 空間効率が1/3
• SerdeのCPU処理負荷が1/2
パフォーマンス事件簿 File.7
パフォーマンス事件 File.7
• 現象
– オンメモリのキャッシュがObject生成しすぎ
– そもそもObject生成が多すぎ
– GCが荒ぶっている
• 対処
– データ構造、および処理を大幅改修
パフォーマンス事件 File.7
• リクエストの度に大量にオブジェクトを生成し
ている箇所がある
• キャッシュからのコピーが大量に発生しており、
1リクエスト中のフットプリントが大きい
• 時系列情報をナイーブに持たないでサマライズ
• HistogramのBin構造を最適化
パフォーマンス事件 File.7
パフォーマンス事件 File.7
パフォーマンス事件 File.7
パフォーマンス事件 File.7
Kryoの前方互換性問題
Kryoの前方互換性問題
• KryoのTagFieldSerializerは前方互換性が無い
– TicketにあるPRも問題を解消できない
Kryoの前方互換性問題
• サーバの更新中に発生する
• 更新中は古いサーバと新しいサーバが混在する
• 新しいサーバが広告を払い出す
• 古いサーバがビーコンを受け取る
• 古いサーバは古い定義のまま新しいバイナリを
受け取る
Kryoの前方互換性問題
• TagFieldSerializer
–Tagの順番に処理していない(Field名でソートし
ている)
–知らないTagIDを読み込むとエラーが出る
Kryoの前方互換性問題
• 改善版
–Tagの順番でソートしてSerializeする
–UnknownなTagを読み込んだら処理を中断す
る
–SKIPしてはいけない
レプリケーション事件簿
レプリケーション事件簿
• レプリケーション遅延
– レポートテーブルが同居していて、しかも巨大なトラン
ザクションが発行されていた
– 30分以上遅延することがあった
– リロードが失敗する事が多発
レプリケーション事件簿
• クエリを修正
• そもそも、レポートDB分離
• キャパシティプランニングを楽にするためにAuroraへ
gRPC事件
gRPC
• サーバ間通信でgRPCを採用した
–ProtoBuf Beta
–Netty Beta
• ELBを通すとNettyの不具合を踏む
• 異常系の不具合をたくさん踏む
アジェンダ
• 初期の開発スケジュール
• 使っている技術
• アドサーバが持っている機能
• 広告処理概要, 要素技術, 思想
• 事件簿
• 2016 に向けて
次のステージへ
• スケールできる土台は一通り作った
• Stream処理、オンライン処理への準備も出来
つつある
今の構成
AdServer
ELB
Redis MySQL
Dynamo
DB
LogFile Fluentd
S3
Kinesis
Provider
HA-PROXY CONSUL
CPU	BOUND
MEM	BOUND
RedShift
BQ
Hive
Presto
Pipeline
DB
Realtime
Report
DMP
Batch
AdHoc
最後に
• 意外と広告は面白い
– ソフトウェアエンジニアリング, 大量のログ, 機械学習, 最適
化問題, 大規模トランザクション
– 実時間で実現する必要がある
• 技術だけでなく、ビジネスも楽しもう
• もしかしたら、誰でも出来るかもしれない
• 誰でも出来る事は、誰にも出来ないレベルまで昇華しよう
• イノベーションは個人の裁量から生まれる
1 of 115

Recommended

200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6 by
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6Hironobu Isoda
6.6K views88 slides
Java でつくる 低レイテンシ実装の技巧 by
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧 Ryosuke Yamazaki
10.8K views98 slides
シリコンバレーの「何が」凄いのか by
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
183.9K views77 slides
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例 by
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Hironobu Isoda
8.9K views58 slides
フロー効率性とリソース効率性について #xpjug by
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
106.3K views62 slides
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装 by
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装tnoho
8.9K views16 slides

More Related Content

What's hot

イベント駆動プログラミングとI/O多重化 by
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
15.4K views78 slides
node-gypを使ったネイティブモジュールの作成 by
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成shigeki_ohtsu
20.8K views24 slides
Keycloak拡張入門 by
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
10.4K views50 slides
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善 by
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善Ito Takayuki
529 views20 slides
AWSのログ管理ベストプラクティス by
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
77.3K views57 slides
Apache Arrow - データ処理ツールの次世代プラットフォーム by
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームKouhei Sutou
7.6K views90 slides

What's hot(20)

イベント駆動プログラミングとI/O多重化 by Gosuke Miyashita
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita15.4K views
node-gypを使ったネイティブモジュールの作成 by shigeki_ohtsu
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu20.8K views
Keycloak拡張入門 by Hiroyuki Wada
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada10.4K views
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善 by Ito Takayuki
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki529 views
AWSのログ管理ベストプラクティス by Akihiro Kuwano
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano77.3K views
Apache Arrow - データ処理ツールの次世代プラットフォーム by Kouhei Sutou
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou7.6K views
開発速度が速い #とは(LayerX社内資料) by mosa siru
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru61.6K views
GitHubの機能を活用したGitHub Flowによる開発の進め方 by Takeshi Mikami
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami5.4K views
KeycloakのDevice Flow、CIBAについて by Hiroyuki Wada
KeycloakのDevice Flow、CIBAについてKeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada2.9K views
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) by Hironobu Isoda
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda2.4K views
自宅で出来る!ゲームサーバの作り方 by 光晶 上原
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
光晶 上原27.6K views
Dockerからcontainerdへの移行 by Kohei Tokunaga
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga16.7K views
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料) by NTT DATA Technology & Innovation
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
例外設計における大罪 by Takuto Wada
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada68.6K views
containerdの概要と最近の機能 by Kohei Tokunaga
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
Kohei Tokunaga3K views
Dockerからcontainerdへの移行 by Akihiro Suda
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda7.6K views
AWSで透過プロキシをやってみた by kuro kuro
AWSで透過プロキシをやってみたAWSで透過プロキシをやってみた
AWSで透過プロキシをやってみた
kuro kuro3.9K views

Similar to SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム

ゆるかわPhp by
ゆるかわPhpゆるかわPhp
ゆるかわPhpRyota Mochizuki
1.1K views83 slides
20apr2012 kernelvm7-main by
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-mainShotaro Uchida
2.4K views48 slides
高速な暗号実装のためにしてきたこと by
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたことMITSUNARI Shigeo
8.2K views40 slides
泥臭い運用から、プログラマブルインフラ構築(に行きたい) by
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
4K views47 slides
20120405 setsunaセミナー by
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
848 views50 slides
Xbyakの紹介とその周辺 by
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
7.8K views45 slides

Similar to SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム(20)

高速な暗号実装のためにしてきたこと by MITSUNARI Shigeo
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo8.2K views
泥臭い運用から、プログラマブルインフラ構築(に行きたい) by Akihiro Kuwano
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano4K views
20120405 setsunaセミナー by Takahiro Iwase
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase848 views
tcpdump & xtrabackup @ MySQL Casual Talks #1 by Ryosuke IWANAGA
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA5.5K views
Web時代の大富豪的プログラミングのススメ by Hideyuki Takeuchi
Web時代の大富豪的プログラミングのススメWeb時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
Hideyuki Takeuchi7.3K views
Rubyにおけるトレース機構の刷新 by Koichi Sasada
Rubyにおけるトレース機構の刷新Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新
Koichi Sasada21.5K views
スタート低レイヤー #0 by Kiwamu Okabe
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe3.1K views
Ctb57 with god7 by kingtomo
Ctb57 with god7Ctb57 with god7
Ctb57 with god7
kingtomo822 views
さくらのクラウドを使ってみよう by 法林浩之
さくらのクラウドを使ってみようさくらのクラウドを使ってみよう
さくらのクラウドを使ってみよう
法林浩之1.8K views
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo by Yoshiyuki Asaba
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba4.3K views
MySQL Casual Talks Vol.3 LT by Tomohiro Ikeda
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
Tomohiro Ikeda5.3K views

More from SmartNews, Inc.

SmartNewsを支えるデータパイプラインとその運用 by
SmartNewsを支えるデータパイプラインとその運用SmartNewsを支えるデータパイプラインとその運用
SmartNewsを支えるデータパイプラインとその運用SmartNews, Inc.
3.7K views10 slides
Spring で実現する SmartNews のニュース配信基盤 by
Spring で実現する SmartNews のニュース配信基盤Spring で実現する SmartNews のニュース配信基盤
Spring で実現する SmartNews のニュース配信基盤SmartNews, Inc.
3.1K views80 slides
エンジニアからプロダクトマネージャーへ by
エンジニアからプロダクトマネージャーへエンジニアからプロダクトマネージャーへ
エンジニアからプロダクトマネージャーへSmartNews, Inc.
9.7K views17 slides
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc. by
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.SmartNews, Inc.
1.2K views71 slides
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc by
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNews, Inc.
10.6K views53 slides
Stream Processing in SmartNews #jawsdays by
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysSmartNews, Inc.
22K views45 slides

More from SmartNews, Inc.(19)

SmartNewsを支えるデータパイプラインとその運用 by SmartNews, Inc.
SmartNewsを支えるデータパイプラインとその運用SmartNewsを支えるデータパイプラインとその運用
SmartNewsを支えるデータパイプラインとその運用
SmartNews, Inc.3.7K views
Spring で実現する SmartNews のニュース配信基盤 by SmartNews, Inc.
Spring で実現する SmartNews のニュース配信基盤Spring で実現する SmartNews のニュース配信基盤
Spring で実現する SmartNews のニュース配信基盤
SmartNews, Inc.3.1K views
エンジニアからプロダクトマネージャーへ by SmartNews, Inc.
エンジニアからプロダクトマネージャーへエンジニアからプロダクトマネージャーへ
エンジニアからプロダクトマネージャーへ
SmartNews, Inc.9.7K views
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc. by SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.1.2K views
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc by SmartNews, Inc.
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNews, Inc.10.6K views
Stream Processing in SmartNews #jawsdays by SmartNews, Inc.
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdays
SmartNews, Inc.22K views
Building a Sustainable Data Platform on AWS by SmartNews, Inc.
Building a Sustainable Data Platform on AWSBuilding a Sustainable Data Platform on AWS
Building a Sustainable Data Platform on AWS
SmartNews, Inc.19.3K views
AWSの進化とSmartNewsの裏側 by SmartNews, Inc.
AWSの進化とSmartNewsの裏側AWSの進化とSmartNewsの裏側
AWSの進化とSmartNewsの裏側
SmartNews, Inc.12.8K views
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ... by SmartNews, Inc.
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
SmartNews, Inc.20.5K views
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN... by SmartNews, Inc.
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
SmartNews, Inc.35.2K views
SmartNews TechNight vol5 SmartNews Ads大図解 by SmartNews, Inc.
SmartNews TechNight vol5 SmartNews Ads大図解SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews, Inc.25.7K views
SmartNews's journey into microservices by SmartNews, Inc.
SmartNews's journey into microservicesSmartNews's journey into microservices
SmartNews's journey into microservices
SmartNews, Inc.11.1K views
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合 by SmartNews, Inc.
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
SmartNews, Inc.2.3K views
SmartNews の Webmining を支えるプラットフォーム by SmartNews, Inc.
SmartNews の Webmining を支えるプラットフォームSmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォーム
SmartNews, Inc.10.1K views
AWS meetup「Apache Spark on EMR」 by SmartNews, Inc.
AWS meetup「Apache Spark on EMR」AWS meetup「Apache Spark on EMR」
AWS meetup「Apache Spark on EMR」
SmartNews, Inc.7.4K views
Smartnews Product Manager Night by SmartNews, Inc.
Smartnews Product Manager NightSmartnews Product Manager Night
Smartnews Product Manager Night
SmartNews, Inc.12.7K views
SmartNews Ads System - AWS Summit Tokyo 2015 by SmartNews, Inc.
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews, Inc.16.9K views
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法 by SmartNews, Inc.
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
SmartNews, Inc.12.4K views

Recently uploaded

定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
146 views64 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
28 views17 slides
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
10 views22 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
28 views36 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
109 views26 slides

Recently uploaded(7)

光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga28 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」

SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム