2. Joseph Cooper
• Multi-entrepreneur, 3 gaming companies,
20M+ app downloads, 6 years
• Built 100+ manned companies, platforms with
250M USD transactions per year
• Eats real time data problems for breakfast
• Loves building infrastructure & tools
specifically to make life easier for developers
• Startup advisor to maximize potential
• Just founded new microservice company!
built
US$25M
biz rev per year
100+
manned
companies
20M+
app
downloads
4. The Monolith
• Quick & Easy with humble beginnings
• Simple infrastructure
• Glorious debugging
• Begin enjoying merge conflicts
• Maxed out TCP socket connections
• Deadlock and concurrency hell
• Bugs galore
5. The Monolith
• Quick & Easy with humble beginnings
• Simple infrastructure
• Glorious debugging
• Begin enjoying merge conflicts
• Maxed out TCP socket connections
• Deadlock and concurrency hell
• Bugs galore
6. EatMe.io Example
• Started as simple Agar.io style game
• Evolved into Card Collection Mechanics
with Data-backed features
• Heavy Costs @ Scale – 4M+ Downloads
• 4x Nodes per region, 10x regions
• 3x Databases (Live, Dev, Analytics)
• Microservice Savings
• Data, Auth, Real-Time decoupled
• 11K USD 4K USD per month saved!
7. PROBLEM SOFTWARE TEAM
CUSTOMER COMPLAINTS Lengthy fixes and releases
Frustrated last minute changes -
impatience
SCALE ISSUES Hard to maintain 1M+ line code Lack of agility
CRIPPLED RELEASES Takes 2 months to ship!?
Who broke the build?
Who owns this?
Solving issues not innovating
SOLUTIONS Shared libraries / code / mess
Easier to break standards
Hack fix prone
10. Microservices in One Line
Loosely coupled service oriented architecture with bounded contexts.
Adrian Cockcroft, VP of Cloud Architecture @ AWS
11. Microservices in One Line
Loosely coupled service oriented architecture with bounded contexts.
12. Microservices in One Line
Loosely coupled service oriented architecture with bounded contexts.
13. Microservices in One Line
Loosely coupled service oriented architecture with bounded contexts.
14. Microservices to Me
• A service that has the responsibility of managing one entity and/or single type of
logic
• Reusable code that is not bound by a specific project, but solves a specific
problem
15. Why Microservices?
• Clear responsibilities & dependencies – hard to put code in the wrong place
• Small & clean packages of code
• Less issues with parallel computing due to the simplicity, put scalability on infra
• Opens up language agnostic possibilities
• Easier to build -> dev -> test -> deploy
23. The Microservice Journey
• Session Management?
• Shared Data?
• Forking Microservices?
• Why split into 5 servers for my original monolithic app? Isn’t that 15 servers in DEV, QA
and PROD?! ~ragequit~
• What is the right tool? Config, Logs, Tracing, Debugging, Discovery, Orchestration?!?!
25. The Decision
• Easier to manage in the long run.
• Clean code, responsibilities & deps
• Operationally reusable code
• It’s poised to be the future.
• Team size > 3
• Plan to go planet scale or experiencing
growing pains
• New project coming up?
• Feel plateaued on product dev speed
and using monolithic designs
• Code agnostic hiring
Why? When?