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
11k
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
3k
経営・意思・エンジニアリング
ymatsuwitter
23
21k
LLM in 2023 and 2024
ymatsuwitter
8
5.9k
Turbulent Technological Changes and Career Strategies
ymatsuwitter
2
2.9k
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
11k
Monorepo on AWS
ymatsuwitter
0
330
Other Decks in Programming
See All in Programming
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
250
AI Agent 時代的開發者生存指南
eddie
4
2.1k
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
340
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
190
理論と実務のギャップを超える
eycjur
0
180
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
320
CSC305 Lecture 08
javiergs
PRO
0
270
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
890
Catch Up: Go Style Guide Update
andpad
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
210
Introduce Hono CLI
yusukebe
6
3.1k
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
What's in a price? How to price your products and services
michaelherold
246
12k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
A Tale of Four Properties
chriscoyier
161
23k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Automating Front-end Workflow
addyosmani
1371
200k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
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 ·Ͱ