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
Cookpad and Microservices
Search
taiki45
December 18, 2014
Programming
4.2k
4
Share
Cookpad and Microservices
at 第1回 えびスタ! ~ 恵比寿スタートアップ勉強会 ~
http://ebista.connpass.com/event/10258/
taiki45
December 18, 2014
More Decks by taiki45
See All by taiki45
Mocking in Rust Applications
taiki45
2
750
Error Handling in Rust Applications
taiki45
3
830
Efficient Platform for Security and Compliance
taiki45
6
1.7k
RustでAWS Lambda functionをいい感じに書く
taiki45
2
840
SPIFFE Meetup Tokyo #2 LT: Envoy SDS
taiki45
0
840
builderscon Tokyo 2019: Intro Service Mesh
taiki45
6
3.7k
NoOps Meetup Tokyo #7: 入門サービスメッシュ
taiki45
4
2k
CloudNative Days Tokyo 2019: Understanding Envoy
taiki45
3
3.6k
Cloud Native Meetup Tokyo #8 ServiceMesh Day Recap
taiki45
2
420
Other Decks in Programming
See All in Programming
Explore CoroutineScope
tomoeng11
0
150
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
160
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
160
JAWS-UG横浜 #100 祝・第100回スペシャルAWS は VPC レスの時代へ
maroon1st
0
210
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1k
Back to the roots of date
jinroq
0
650
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
180
Vibe NLP for Applied NLP
inesmontani
PRO
0
580
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
130
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
200
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
110
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
300
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.2M
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
370
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
330
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
240
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
We Are The Robots
honzajavorek
0
220
Mind Mapping
helmedeiros
PRO
1
180
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
A better future with KSS
kneath
240
18k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
Transcript
Cookpad and Microservices Why and how we move to Microservices
architecture style
Taiki Ono • @taiki45 • Joined Cookpad at 2014/3 •
Dev-Infra group • Working with service integration related things and Web API
Sponsored by
Hi, we are Cookpad
None
over 50M users/month over 1.8M recipes
Not only recipe site…
None
None
None
You can see more products!
To make everyday cooking fun.
Why Microservices?
• Environment changes • Limit of Monolithic
• Environment changes • Limit of Monolithic
Our business changes
User agent changes
• Environment changes • Limit of Monolithic
A huge Rails app +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines |
LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 46173 | 37194 | 493 | 3754 | 7 | 7 | | Helpers | 14251 | 11687 | 13 | 1367 | 105 | 6 | | Models | 10153 | 7799 | 319 | 1152 | 3 | 4 | | Mailers | 402 | 326 | 16 | 35 | 2 | 7 | | Javascripts | 40217 | 34405 | 36 | 4940 | 137 | 4 | | Libraries | 2341 | 1833 | 112 | 252 | 2 | 5 | | Async_view specs | 247 | 212 | 0 | 0 | 0 | 0 | | Controller specs | 58856 | 48671 | 7 | 121 | 17 | 400 | | Feature specs | 40886 | 33590 | 0 | 196 | 0 | 169 | | Helper specs | 4151 | 3396 | 1 | 10 | 10 | 337 | | Lib specs | 22537 | 18817 | 27 | 128 | 4 | 145 | | Mailer specs | 421 | 346 | 0 | 0 | 0 | 0 | | Model specs | 71128 | 58668 | 4 | 70 | 17 | 836 | | Policy specs | 1487 | 1219 | 0 | 0 | 0 | 0 | | Request specs | 34595 | 29677 | 0 | 12 | 0 | 2471 | | Routing specs | 661 | 533 | 0 | 0 | 0 | 0 | | View specs | 619 | 508 | 0 | 2 | 0 | 252 | | Worker specs | 862 | 715 | 0 | 1 | 0 | 713 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 349987 | 289596 | 1028 | 12040 | 11 | 22 | +----------------------+-------+-------+---------+---------+-----+-------+
Slow test issue
RRRSpec solved
Slow deployment
mamiya solved
and some difficulties like scaling, upgrading Rails, etc…
We can’t control our own application.
We've found Microservices while we were challenging these issues.
Microservices
–James Lewis & Martin Fowler “an approach to developing a
single application as a suite of small services” IUUQNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM
Build around business capabilities
None
Own process and lightweight messaging
HTTP JSON REST
Decentralization and polyglot
Ruby + MySQL Go + Redshift Java + MySQL
Characteristics of Microservices • Build around business capabilities • Own
process and lightweight messaging • Decentralization and polyglot
We can handle our own application, by paying cost of
complexity as a whole.
In Cookpad What we did?
Published service data
Garage Garage Garage Rails app
Garage and garage-client • RESTful hyper-media API • JSON message
enveloped in HTTP • Implemented as a Rails extension • Standardized communication pattern
Solutions for product common problems
º
̋
Backend products • Auth server (OAuth2.0) • Personal information server
• Notification base • Video backend
Data synchronization between products
Pub-Sub Topic
Pub-Sub Topic
Ping • Pub-Sub pattern • Implemented as a Rails extension
• A thin wrapper of Amazon SNS and fluentd • Receive events via webhook
What we did are… • Published product data with Garage
• Built some backend products • Built Ping for data synchronization
We are challenging more problems around Microservices
Join us!! http://recruit.cookpad.com/