introduction to microservices
TRANSCRIPT
Introduction to
MicroservicesDuduman 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