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
Gunosyの施策を支える技術
Search
y_matsuwitter
February 07, 2015
Programming
20
10k
Gunosyの施策を支える技術
dots summit 2015にて。
y_matsuwitter
February 07, 2015
Tweet
Share
More Decks by y_matsuwitter
See All by y_matsuwitter
Building Products in the LLM Era
ymatsuwitter
11
9.3k
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
2.8k
経営・意思・エンジニアリング
ymatsuwitter
23
20k
LLM in 2023 and 2024
ymatsuwitter
8
5.8k
Turbulent Technological Changes and Career Strategies
ymatsuwitter
2
2.8k
LLM in toB Service and Its UX
ymatsuwitter
7
11k
Agent and small LLM validation
ymatsuwitter
7
3k
Information management for a culture of speed: The story of Notion and LayerX
ymatsuwitter
4
10k
Monorepo on AWS
ymatsuwitter
0
320
Other Decks in Programming
See All in Programming
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
770
GoのGenericsによるslice操作との付き合い方
syumai
2
660
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
800
TypeScript LSP の今までとこれから
quramy
1
510
イベントストーミングから始めるドメイン駆動設計
jgeem
4
860
A comprehensive view of refactoring
marabesi
0
970
XSLTで作るBrainfuck処理系
makki_d
0
210
Java on Azure で LangGraph!
kohei3110
0
160
エンジニア向け採用ピッチ資料
inusan
0
140
C++20 射影変換
faithandbrave
0
500
SODA - FACT BOOK
sodainc
1
1.1k
プロダクト開発でも使おう 関数のオーバーロード
yoiwamoto
0
160
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Speed Design
sergeychernyshev
31
1k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Become a Pro
speakerdeck
PRO
28
5.4k
BBQ
matthewcrist
89
9.7k
What's in a price? How to price your products and services
michaelherold
245
12k
Designing Experiences People Love
moore
142
24k
Faster Mobile Websites
deanohume
307
31k
How to Ace a Technical Interview
jacobian
277
23k
Transcript
GunosyͷࢪࡦΛ ࢧ͑Δٕज़ @y_matsuwitter
About @y_matsuwitter » ։ൃຊ෦ࣥߦһ » iOS, Android, Infrastructure, Web »
Golang!! Docker!! » ਖ਼࠲
Gunosyͱ » χϡʔεΩϡϨʔγϣϯΞϓϦ » ݱࡏ800ສDL » ػցֶश + ΞϓϦ։ൃ +
ࠂ৴ » ΤϯδχΞνʔϜ 25໊
Gunosy։ൃͷ໘ന͞ » ߴAPIαʔό ʢPeak࣌ϨΠςΠϯγ 30msʣ » ߴੑೳADαʔό » Ұઍສ݅Λࢧ͑ΔPush৴ج൫ »
৽ٕज़Λͻͨ͢ΒProduction » ...etc
ࠓͷ » GunosyͰͷࡉ͔͍ϦϦʔεΛࢧ͍͑ͯΔऔΓΈʹ͍ͭͯ » େ·͔ͳ͕ଟ͍ͷͰɺࡉ͔͍෦ޙͰ࣭͝Լ͍͞
We have... Too many problems Too too many ideas
Try, try, try... with limited time and resources.
There is no silver bullets!
Grow your app
Grow your app
Grow your app Grow your team!!
Team = Your service » ֤ࣗͷઓ͕ٕज़ྗͷ » ٕज़ྗͷ͕νʔϜͷ » νʔϜͷ͕ΞϓϦͷظతͳ
Gunosy's rule » ৽ٕज़ͷੵۃ࠾༻ » ࣈਆΑΓਖ਼͍͠ » 㙽ʹ֯ʹࢪࡦɾϦϦʔε
৫ͷ֦େ͕ݸਓͷ ઓΛ͛ͳ͍ Έͮ͘Γ
But, How did it?
Microservice Disposability
Microservices = খ͞ͳαʔϏεͷΈ߹ Θͤ
What is microservices? » దͳنͷϏδωεϩδοΫͷմ͝ͱʹ෦αʔϏεΛׂ » ΞϓϦέʔγϣϯଆ͔Β֤छAPIΛݺͼग़͢ » αʔϏεʹ߹Θٕͤͨज़બఆ
Why microservices? » Ϗδωεʹ߹ΘͤͨνʔϜͷׂɾฤ » খ͞ͳαʔϏεʹΑΔଐਓੑͷرബԽ » Ϗδωεཁٻʹର͢ΔॊೈͳରԠ ϞϊϦγοΫͳγεςϜͰɺϏδωε͕͢Δʹै͍վमίετ͕૿ Ճ͍ͯ͘͠
Disposability = ࣺͯ͢͞
What is disposability? » γεςϜؒͷ݁߹Λখ͘͞อͪɺഇغΛ༰қʹ͢Δ » ϦϑΝΫλϦϯάͰͳ͘γεςϜͷஔ͖͑ʹΑΔରॲ » ֤αʔϏεͷґଘͷ͍ΞϓϦέʔγϣϯ
Why disposability? » ͦͷ࣌ͷ৽ٕज़ͷ࠾༻ʹΑΔஔ͑Λ༰қʹ͢Δ » ෛ࠴ͱͳͬͨ࣌ʹʮࣺͯΔʯͱ͍͏அΛऔΕΔ༨ » খ͞ͳνʔϜͰଟ͘ͷ࣮ݧ ݁Ռͱͯ͠ଟ͘ͷࢼߦɾ৽ٕज़ͷTry͕ੜ·ΕΔ
But... How?
Golang, ABTesting Opsworks, Docker
Golang » ΞϓϦέʔγϣϯͷஔ͕༰қ » ฒྻॲཧͷهड़͕༰қ » APIͷຆͲ͕Golang » ࠃ࠷େͷGolang։ൃνʔϜʢࣗশʣ
Golang ӡ༻ϧʔϧ » ֤αʔϏεͰΘΕΔڞ௨Ϟδϡʔ ϧΛࣾύοέʔδͱͯ͠ఏڙ » ΤϯυϙΠϯτύεϕʔεͰසൟ ʹReplace
Golang ։ൃ࣌ͷߏ » WebϑϨʔϜϫʔΫ: guregu/kami » ͦͷଞ΄΅ύοέʔδͷΈͰӡ༻ » CircleCIʹΑΔCI
ABTesting » ଟ͘ͷࢪࡦΛABςετʹͯޮՌܭଌ » σβΠφͱͯ͠ͷઓΛࡉ͔͘ө͢ΔΈ
ABTesting ࣮ࡍͷӡ༻ » APIΑΓͲͷUIΛग़੍͔͢ޚʢը໘ભҠɾϨΠΞτͳͲʣ » RedshiftɾBigQueryͰՌूܭ » KPIશͯμογϡϘʔυʹΑΓ֬ೝ
ABTesting ࡞͍ͬͯΔͷ » ஈ৭ͳͲશͯͷଐੑΛϦϞʔτ੍ޚՄೳͳςΩετඳըΤϯδϯ
ABTesting ࡞͍ͬͯΔͷ » JSONϕʔεͷHTML likeͳಠࣗఆ ٛϏϡʔ
Opsworks » ͩΕͰඞཁͳΠϯϑϥΛGUIͷΈͰߏங » ॊೈͳεέʔϦϯάରԠ
Opsworks ϥʔϝϯτοϐϯάΠϯϑϥ » ը໘Λϙνϙν͍͚ͯͩ͘͠ͰඞཁͳΫϥελ͕࡞Մೳ
Docker » ϓϩηε࣮ߦڥΛ࣮ࡍͷαʔό͔Β » શͯͷγεςϜʹϙʔλϏϦςΟ
Docker Ұྫ: ࢄόονॲཧ
·ͱΊ » MicroservicesͱDisposability » ઓΛ͛ͳ͍։ൃମ੍Λ࡞Γଓ͚Δ » ΞϓϦͷͦ͜ʹ͍ͭͯ͘Δʂ
There is no silver bullets!
We're hiring!! ͢ΔڥͰ࠷ߴͷ։ൃΛ
࣭ @y_matsuwitter ·Ͱ