$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
広告配信システムにおけるリアーキテクティング
Search
CARTA Engineering
June 28, 2021
Technology
0
1.2k
広告配信システムにおけるリアーキテクティング
技術的負債の返済するアプローチの一つとしてのリアーキテクティングについて、VOYAGE GROUP/fluctでの事例をご紹介します。
CARTA Engineering
June 28, 2021
Tweet
Share
More Decks by CARTA Engineering
See All by CARTA Engineering
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
2.1k
実例と表現で学ぶWeb Components 〜"愛される"広告表現とShadowDOM〜 / practical-guide-to-lovable-ads-shadow-dom
carta_engineering
0
29
Snowflakeとdbtで加速する 「TVCMデータで価値を生む組織」への進化論 / Evolving TVCM Data Value in TELECY with Snowflake and dbt
carta_engineering
2
510
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
560
AIに淘汰されない技術力とは?事業を進化させるエンジニアの実践知 / engineering-skills-that-ai-cant-replace-and-drive-business-evolution
carta_engineering
0
170
AIは脅威でなくチャンス。 AIと共に進化するエンジニアの成長戦略 / spz-colab-conf-2025
carta_engineering
0
250
鳴り止まないアラート対応の中で学んだ 監視改善の進め方 / team-based-monitoring-improvement-from-alert
carta_engineering
0
620
撤退危機からのピボット : 4年目エンジニアがリードする TypeScript で挑む事業復活 / crisis-to-pivot-4th-year-engineer-ts-relaunch
carta_engineering
2
1.6k
4社統合におけるマスタデータ管理に立ち向かう / Towards master data management in the four-company integration
carta_engineering
0
1.2k
Other Decks in Technology
See All in Technology
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
1.5k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
720
日本Rubyの会: これまでとこれから
snoozer05
PRO
5
210
障害対応訓練、その前に
coconala_engineer
0
140
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
330
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
AWS re:Invent 2025 re:Cap LT大会 データベース好きが語る re:Invent 2025 データベースアップデート/セッションの紹介
coldairflow
0
130
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
3
220
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
620
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
420
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
240
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
470
Featured
See All Featured
Practical Orchestrator
shlominoach
190
11k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
40
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
170
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
98
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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版を提供 • 徐々に移し替えて移行していく