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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
CARTA Engineering
June 28, 2021
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
広告配信システムにおけるリアーキテクティング
技術的負債の返済するアプローチの一つとしてのリアーキテクティングについて、VOYAGE GROUP/fluctでの事例をご紹介します。
CARTA Engineering
June 28, 2021
More Decks by CARTA Engineering
See All by CARTA Engineering
テックリードが学生に戻って "強くてNew Game "するなら? 〜成長の攻略本〜 / techlead-newgame-spz-geekfest-2026-spring
carta_engineering
0
300
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
50k
キーワードは「延命」 ― リプレイス困難システムの現実的バージョンアップ戦略 / The keyword is extending lifespan a realistic upgrade strategy for systems that are difficult to replace
carta_engineering
0
870
「何を作るか」でなく「何を解くか」 事業をエンジニアリングし、AIと共に進化する / Not What to build but What to think about Engineering businesses and evolving with AI
carta_engineering
1
530
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
1
5.5k
実例と表現で学ぶWeb Components 〜"愛される"広告表現とShadowDOM〜 / practical-guide-to-lovable-ads-shadow-dom
carta_engineering
0
130
Snowflakeとdbtで加速する 「TVCMデータで価値を生む組織」への進化論 / Evolving TVCM Data Value in TELECY with Snowflake and dbt
carta_engineering
2
920
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
1
950
AIに淘汰されない技術力とは?事業を進化させるエンジニアの実践知 / engineering-skills-that-ai-cant-replace-and-drive-business-evolution
carta_engineering
0
260
Other Decks in Technology
See All in Technology
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
1
320
分割40%キーボードにスムーズに入門するには
hoto17296
1
220
AI駆動開発をチームに根付かせる - 「1行も書かない」チームがHarnessを育てた1年 -
kenichirokimura
6
3.7k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
Sony-DroidKaigi2026
sony
1
290
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
180
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
2
1.6k
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
1
1.7k
When Does a Local Qwen Start to Break
morshoto
0
130
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
630
Claude Codeで開発以外の業務も爆速化しよう!
minorun365
PRO
12
9.5k
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
0
520
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
41k
4 Signs Your Business is Dying
shpigford
187
23k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
230
Done Done
chrislema
186
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Rails Girls Zürich Keynote
gr2m
96
14k
Become a Pro
speakerdeck
PRO
31
6.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
490
Docker and Python
trallard
47
4.2k
Transcript
広告配信システムにおけるリアーキテクティング Jun 25, 2021@Tech x Marketing #アドテク #リアーキテクテ ィング #データプライバシー
#TechMar #
自己紹介 株式会社VOYAGE GROUP / 株式会社fluct プログラマ fluct ローンチ当初から10年近く携わっている開発者 バックエンドからUIまでなんでもやります 仕事はする、育児もする、「両方」やらなくちゃならない
ってのが幹部のつらいところだな。覚悟はいいか?俺はで きてる @ajiyoshi
ITエンジニア本大賞2021 技術書部門大賞 受賞 Engieers in VOYAGEー事業をエンジニアリングする技術者たち #voyagebook
“私は、ソフトウェアを急いで世に出して学びを得たにもかかわらず、その学びをプログラムに反映しな い、つまり借金で言えば全く返済をしないケースが多々あると考えています。 長い間プログラムにただ機能を追加するのみで、それら機能に関して学んだ知識を反映する整理整頓を 怠っていたならば、次第にプログラムからは知識が失われ、作業にかかる時間はひたすら長くなってい きます。言い換えるなら、すべて利子で食い潰され、進捗はゼロに近づいていくでしょう。” ー Ward Cunningham 負債のメタファ
三つのアプローチとその実践 • リファクタリング ▪ ボトムアップにコードを綺麗にしていく • リアーキテクティング ▪ 大きなシステムをサブシステムに分解し、サブシステム単位で置き換えていく •
リプレイス/リライト ▪ ゼロから書き直す
None
fluct 紹介 ਤʮ&OHJOFFSTJO70:"(&ʔࣄۀΛΤϯδχΞϦϯά͢Δٕज़ऀͨͪʯ͔ΒҾ༻ ˔ GMVDUࠂ৴γεςϜશମͷ͏ͪࠂ͕ܝࡌ͞ΕΔϝσΟΞଆͰར༻͞ΕΔΈ Λఏڙɻ Ұൠతʹʮ441 4VQQMZ4JEF1MBUGPSN ʯͱݺΕ͍ͯΔɻ ˔
ࠂΛग़͢ଆͰར༻͞ΕΔʮ%41ʯɺ͘͠ʮΞυωοτϫʔΫʯͱ͍ͬͨผͷγ εςϜͱ࿈ܞͯ͠ʮ͍͍ײ͡ʯʹࠂΛग़͢͜ͱ͕ओͳ͓ࣄɻ ˔ ݄ؒࠂ৴ԯJNQҎ্ສαΠτҎ্ʹར༻͞Ε͍ͯͯຊ࠷େڃͷ441ɻ
三つのアプローチとその実践 広告配信設定にprotobufスキーマを入れた話 • なぜその手法を選択したのか ◦ 元はスキーマがなかった ▪ JSONライクなデータがMessagePackでエンコードされていた ◦ 開発に関わる人数が増えてきてスキーマが欲しくなった
▪ データを使うところのソースだけ見てもどういうデータが入っているか分か らない ◦ サービスを止めることはできないので、新旧を並行稼働させてうつしていく • どういう情報から事業的な意思決定をしたのか ◦ サービスを止める選択肢はそもそもない • どのように実践したか
リアーキテクティング ー Before 広告配信サーバ 配信設定作成 (ECS) 広告配信設定 <問題> • データを使う配信サーバのソ
ースを見てもデータの中身が 分かりづらい • どんなデータが入っているか を一覧するなら作成している 方のソースを読ままいといけ ない • どの枠に何の広告を出すかというよ うな設定情報ファイル(1GB程度) • フォーマットはMessagePack (JSON様のバイナリシリアライズフ ォーマット)
リアーキテクティング ー After 広告配信サーバ 配信設定作成 (ECS) 旧広告配信設 定 <対処後> •
スキーマをみればどんなデー タが入っているのか分かる • スキーマを前提とした単体テ ストも書ける 新広告配信設 定 リアーキテクティング • ProtocolBuffersでスキーマを定義 • 一部の新しいデータのみPB版を提供 • 徐々に移し替えて移行していく