Introduction to
Microservices
Duduman Bogdan Vlad
@vlad_duduman
Agenda
 Monoliths
 Monoliths advantages and disadvantages
 Microservices
 Principles of microservices
 Microservices advantages and disadvantages
Monoliths
 Netflix. Amazon.com, Ebay, Paypal
 Single-Tiered Software application
 Responsible not for a particular task
 Long build time
 Building and deploying the whole application
 Support only vertical scaling
Monoliths - Example
Monoliths
 Advantages
 A single layered architecture
 A single technology stack
 A single code base maintained by multiple teams
 Disadvantages
 All parts are interconnected
 Many other systems are connected to your system
 Hard to change, hard to maintain
 Slow innovation
 Hard to move to newer technologies
 Doesn’t scale very well
Monoliths
 Disadvantages
 As the team grows, will eventually start to break down
 Technical debt – “Not broken, don’t fix it”
Monoliths. Dependencies will kill you
The Microservices Way
“An approach to developing a single application as a suite of small
services.” - Martin Fowler
Gartner hype cycle
Microservices
 First time discussed – 2011
 Just a rebranding of SOA?
 “Micro” indicates the scope is limited to a single functionality
Microservices
Microservices
Microservices. Evolution
Microservices. Evolution
Microservices - Example
Monoliths. Scalability
Microservices. Scalability
Microservices. Scalability
Monoliths. Persistence
Microservices. Polyglot persistence
Microservices. Advantages
 Simple
 Modularity
 New features as microservices
 Small codebase
 Easy to scale
 Easy to deploy - loosely coupled
 System resilience
Microservices. Advantages
 Technology independent
 Replaceable parts
 High performance
 Polyglot persistence
 Easy to test
 Autonomous
 Specification change is frequent
Microservices. Advantages
 Single Responsibility Principle
 Light-weight communication
Microservices. Principles and practices
 Set up a set of guiding principles
 Create practices that support these principles
 Create example implementations and service templates
 Make it easy for the team to do the right thing
 In order to move to this, you will need to get better at:
 Architecture
 Testing
 Deployment
 A team should be able to rebuild a service in two weeks
Microservices. Common Patterns
1. “Almost all the successful microservice stories have started with a monolith
that got too big and was broken up”
2. “Almost all the cases where I’ve heard of a system that was built as a
microservice system from scratch, it has ended up in a serious trouble”
Microservices. How? When?
Thanks

Introduction to Microservices