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
CARTA Engineering
June 28, 2021
Technology
0
820
広告配信システムにおけるリアーキテクティング
技術的負債の返済するアプローチの一つとしてのリアーキテクティングについて、VOYAGE GROUP/fluctでの事例をご紹介します。
CARTA Engineering
June 28, 2021
Tweet
Share
More Decks by CARTA Engineering
See All by CARTA Engineering
スペシャリスト?フルスタック?whichではないフルサイクル開発者という生き方 / 42TOKYO-SPECIAL-LECTURE-231106
carta_engineering
1
700
内製ハイブリッドイベントの創り方 / how to make hybrid event in carta
carta_engineering
0
510
成長は小さな失敗の積み重ね 事業を支えるCARTAのフルサイクルエンジニアリング / growth-for-small-fail-fast-carta-fullcycle
carta_engineering
1
330
TECH BLOGから CARTAを見る / Learning about CARTA from TECH BLOG
carta_engineering
0
74
思わず目にとまる コンテンツの作り方、届け方 / how-to-create-deliver-content-catches-the-eye
carta_engineering
0
600
仕事でWeb API開発するときに考えていること / 技育CAMPアカデミア2023
carta_engineering
2
760
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
11k
DBのロックについてあまり意識したことがない人に向けた、実は覚えておきたいロックについての知識 / 技育CAMPアカデミア2023
carta_engineering
1
2k
新卒入社から1500人規模のCTOに: エンジニアが圧倒的に成長する3つのコツ / 技育祭2023春
carta_engineering
2
1.2k
Other Decks in Technology
See All in Technology
生成AI・LLM時代における 機械学習エンジニアとしてのキャリア戦略・開発戦略 / my-career-and-development-strategies-for-ml-engineer-2024
yuya4
4
510
コードレビューを支援するAI技術の応用
akkie76
2
110
バッチ処理のSLOをどう設計するか
rynsuke
7
560
Challenges - Open Farming Hackdays 2024
loleg
0
560
エンジニア候補者向け資料2024.03.28.pdf
macloud
0
2.9k
大規模なアジャイル開発の現場と技術負債 / Technical Debt
yoshiitaka
20
4k
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
7
100k
統計的学習理論読み Chapter 1
kmatsui
3
860
KubeCon EU 2024 : Knative Maintainers Session
salaboy
0
370
Cloud Friendly(?) Jenkins. How we failed to make Jenkins cloud native and what we learned?
onenashev
PRO
0
110
あらゆる商品を扱う商品データベースを再設計した話 / product db re-architecture
rince
8
3.7k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
nihonbuson
4
740
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1023
450k
Typedesign – Prime Four
hannesfritz
36
2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
Statistics for Hackers
jakevdp
789
220k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
Building Applications with DynamoDB
mza
88
5.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
1.9k
Clear Off the Table
cherdarchuk
82
310k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
319
20k
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版を提供 • 徐々に移し替えて移行していく