SlideShare a Scribd company logo
Adventures
with
micro-Services
Mohit Thatte (@mohitthatte)
Anand Agrawal (@anand_agrawal)
ThoughtWorks Inc.
Enough about us.
What’s in it for you?
What?
Why?
How?
When?
What are micro services?services?micro
What are micro services?
services?
micro
What are micro services?
A real thing that does some thing!
services?
micro
What are micro services?
A real thing that does some thing!Implementation Contract
services?
micro
What are micro services?
small independent composable
services
that do one thing well
Unix philosophy
Write programs that do one thing well.
Write programs that work together.
cat | grep | sed | awk | ...
HTTP is the new pipe!
Single responsibility
Low coupling, high cohesion
Small, well defined interfaces
Object Oriented philosophy
use micro services?Why we
Once upon a time...
lots of legacy, no reuse
not flexible, high cost of change
no one knows how it works
concentrated complexity
90 year old business
lots of legacy, no reuse
not flexible, high cost of change
no one knows how it works
concentrated complexity
independent small that do one thingcomposable
90 year old business
“A 100k loc app is
just 100 1k loc apps
waiting to happen”
- Jeff Bay
Adventure so far
25 VM’s in production
10 micro-services
one click deployment
60+ VM’s across environments
µService
DB
µService
DB
µService
DB
µService
DB
How did we start?
Solve small, valuable problems
Start with high level services
When a service starts doing too much,
extract a smaller one
Orders PaymentsCustomers
Catalog
(Games)
Orders PaymentsCustomers
Legacy
Catalog
(Games)
Orders PaymentsCustomers
Legacy
Order
Processing
Catalog
(Games)
Orders PaymentsCustomers
Legacy Results
Order
Processing
Catalog
(Games)
Looks like plain old services,
what makes them ‘micro’?
single responsibility
1 service = 1 ‘resource’
(maybe 2!)
I can haz code of conduct?
respect service boundaries
focus on contracts
avoid coupling
extract cross cutting concerns
Orders PaymentsCustomers
Communications
Legacy Results
Order
Processing
Scheduled
Jobs
Error
reporting
Catalog
(Games)
So many repos,
how do you stay productive?
automate, automate, automate...
DevOps #ftw
15 minute dev box setup
spin up a new service in minutes*
Vagrant + Puppet = AWESOME!
feature toggles over branches
client gems
Is that all captain?
add health checks + circuit breaker
logging
can you trace a request through?
Avoid / Defer
versioning services
manual tinkering on VM’s
How do I make a change
and still stay sane?
Test It!
Unit Tests
Contract Tests
is my service doing what it should?
out of container
strictly black box
Integration Tests
are all my services playing nicely together?
testing distributed effects
testing async actions
Continuous Integration
Integration
Tests
UAT Performance
Production
Service
Tests
Ok, so you tested it, now
release it!
Step 1: Set up ze VM’s
Puppet Solo + SSH in a loop
Puppet goes through CI just like app code
Our ideal : ImmutableServer
deploy all or nothing
Step 2: Deploy ze code
Continuous Integration
Integration
Tests
UAT Performance
Production
Service
Tests
CI + DevOps
enables
single-click deployment
so easy, our product owner does it!
it just works™
3 mins to production (~25 servers)
“we’re effectively pushing the
complexity from the application
into the infrastructure...”
- James Lewis
When to use micro-services?
Tradeoffs
benefit cost
small units of reuse/maintain complex infrastructure
grow independently learning curve
scale independently network overhead
independent DB fragmented data
Polyglot
Thanks!
Questions?

More Related Content

PDF
Mastering Async/Await in JavaScript
PDF
Introducing Async/Await
PDF
The Economics of Microservices (redux)
PDF
The Economics of Microservices (2017 CraftConf)
PDF
From microservices to serverless - Chicago CTO Summit 2019
PDF
Assignment 5 Deol Jagjit
PPTX
Tarea De Softvare ENMA GRIFFIN
PDF
Vagrant+Puppet = #WIN
Mastering Async/Await in JavaScript
Introducing Async/Await
The Economics of Microservices (redux)
The Economics of Microservices (2017 CraftConf)
From microservices to serverless - Chicago CTO Summit 2019
Assignment 5 Deol Jagjit
Tarea De Softvare ENMA GRIFFIN
Vagrant+Puppet = #WIN

Similar to Microservices rubyconf-2013 (20)

PDF
Adventures with Microservices
PDF
When e-commerce meets Symfony
PDF
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
PDF
Adventureswith micro services
PDF
Richardrodger nodeday-2014-final
PDF
Richardrodger nodeday-2014-final
PDF
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
PDF
Microservices, Microfrontends and Feature Teams
PDF
Responsible Microservices
PDF
Serverless is more findev than devops
PPTX
Let's talk about... Microservices
PPTX
Architecting Microservices in .Net
PPTX
Microservices for performance - GOTO Chicago 2016
PDF
How to build a social network on serverless | Yan Cui
PDF
How to build a social network on Serverless (AWS Community Summit)
PDF
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
PDF
2017 Melbourne YOW! CTO Summit - Monolith to micro-services with CQRS & Event...
PPTX
Mciro Services & Zookeeper
PDF
Scaling micro services at gilt
PPTX
The 7 deadly sins of micro services
Adventures with Microservices
When e-commerce meets Symfony
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Adventureswith micro services
Richardrodger nodeday-2014-final
Richardrodger nodeday-2014-final
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
Microservices, Microfrontends and Feature Teams
Responsible Microservices
Serverless is more findev than devops
Let's talk about... Microservices
Architecting Microservices in .Net
Microservices for performance - GOTO Chicago 2016
How to build a social network on serverless | Yan Cui
How to build a social network on Serverless (AWS Community Summit)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
2017 Melbourne YOW! CTO Summit - Monolith to micro-services with CQRS & Event...
Mciro Services & Zookeeper
Scaling micro services at gilt
The 7 deadly sins of micro services
Ad

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Spectroscopy.pptx food analysis technology
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Network Security Unit 5.pdf for BCA BBA.
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Review of recent advances in non-invasive hemoglobin estimation
Unlocking AI with Model Context Protocol (MCP)
Spectral efficient network and resource selection model in 5G networks
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectroscopy.pptx food analysis technology
sap open course for s4hana steps from ECC to s4
Dropbox Q2 2025 Financial Results & Investor Presentation
Assigned Numbers - 2025 - Bluetooth® Document
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
Empathic Computing: Creating Shared Understanding
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
MIND Revenue Release Quarter 2 2025 Press Release
A comparative analysis of optical character recognition models for extracting...
Chapter 3 Spatial Domain Image Processing.pdf
Ad

Microservices rubyconf-2013