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
Handling TV Ad Traffic Influx with Microservices
Search
Ryo Kubota
July 23, 2019
Programming
0
1.5k
Handling TV Ad Traffic Influx with Microservices
https://wantedly.connpass.com/event/135968/
での登壇資料です。
Ryo Kubota
July 23, 2019
Tweet
Share
More Decks by Ryo Kubota
See All by Ryo Kubota
Terraform x OPA/Conftest の tips
ryokbt
0
960
TerraformのレビューをConftestで自動化する
ryokbt
3
1.6k
Other Decks in Programming
See All in Programming
fs2-io を試してたらバグを見つけて直した話
chencmd
0
230
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
testcontainers のススメ
sgash708
1
120
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
770
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
270
선언형 UI에서의 상태관리
l2hyunwoo
0
150
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
return文におけるstd::moveについて
onihusube
1
1k
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
CSC305 Lecture 26
javiergs
PRO
0
140
Security_for_introducing_eBPF
kentatada
0
110
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Faster Mobile Websites
deanohume
305
30k
Writing Fast Ruby
sferik
628
61k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
It's Worth the Effort
3n
183
28k
Documentation Writing (for coders)
carmenintech
66
4.5k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
For a Future-Friendly Web
brad_frost
175
9.4k
Docker and Python
trallard
42
3.1k
Transcript
FiNC Technologies Ryo Kubota )BOEMJOH57"E5SBGGJD*OGMVY XJUI.JDSPTFSWJDFT
• Ryo Kubota • FiNC Technologies • SRE • New
graduate 8IPBN*
• What is Microservices? • About our TV Ad •
Discussion on Microservices after TV Ad "HFOEB
What is Microservices?
An architecture that structures a big system as a collection
of small services 8IBUJT.JDSPTFSWJDFT
• Technical heterogeneity • Resiliency • Scalability • etc #FOFGJUTPG.JDSPTFSWJDFT
8IZ'J/$BEPQU.JDSPTFSWJDFT
l0OF"QQGPS&WFSZ#PEZz The concept goes well with Microservices New functions have
been quickly released UP$BQQ "VUIFOUJDBUJPO &DPNNFSDF "* $PVQPO 8FBSBCMF 3FDPFOHJOF -JGFMPH 4/4 $IBU UP#TJUF 1PJOU 4VQQMFNFOU
About our TV Ad
57"E5SBGGJD*OGMVY
• .VMUJQMF/FX'VODUJPOT3JHIU #FGPSFUIF57"E • https://note.mu/mizoguchiyuji/n/n1267b01a3756
• Traffic influx • Parallel development right before the TV
ad • But NO DOWNTIME 8FIBOEMFE57"E
Discussion on Microservices after TV Ad
8IBUEJEXPSL 4DBMJOH
• You can scale out each function separately 8JUI.JDSPTFSWJDFTʜ
"NJDSPTFSWJDFGPSVTFSPOCPBSEJOH Transition in the number of workers → TV ad
started
• Quicker than scaling a single big monolith • Cost
saving 4DBMJOH.JDSPTFSWJDFT
8IBUEJEXPSL 'VODUJPO#BTFE1BSUJUJPOJOH
• .VMUJQMF/FX'VODUJPOTVOEFS %FWFMPQNFOUJO1BSBMMFM • https://note.mu/mizoguchiyuji/n/n1267b01a3756
• You just need to focus on a single function
• This can only be done with Microservices 1BSBMMFM%FWFMPQNFOU
'VUVSFJNQSPWFNFOU -FHBDZ.POPMJUI
"-FHBDZ.POPMJUI4UJMM3FNBJOT Legacy monolith can often be a bottleneck
&YBNQMFBU'J/$ .POPMJUI 4FSWJDF" 4FSWJDF# 4FSWJDF$ 4FSWJDF% : Synchronize user info
• This monolith has a knowledge about to which services it has to synchronize its information => Tight coupling (Anti-pattern)
• Anti-pattern emerged as a problem under increased traffic •
The queues for synchronization got stuck *ODJEFOU%VSJOH57"E
-PPTF$PVQMJOH • Each microservice should not have knowledge about other
services • Use pub/sub model instead • Microservice just publishes some event • Other microservices subscribe it if needed
.JHSBUJPOGSPN.POPMJUI • When you adopt Microservices, you often need to
migrate from monolithic architecture • Legacy monolith is likely to be tightly coupled to other services • Complete migration not to fall into anti-patterns • Otherwise you might end up increasing complexity
$PODMVTJPO
$PODMVTJPO • We ran TV ad • We handled the
traffic influx and parallel development with Microservices • Explained about a legacy monolith as future improvement