Baku DevOpsDays AZ’2020
Scaling with Microservices
Derya SEZEN a.k.a Dorian
Consultant @kloia (CNCF Member)
DevOpsDays Istanbul Organizer
@derya_sezen
Microservices is not Docker/Kubernetes
Microservices is not just smaller services
Ref: https://www.xenonstack.com/insights/service-oriented-architecture-vs-microservices/
Ref: https://www.browserlondon.com/blog/2019/07/01/do-you-need-microservices/
Microservices is a new data model
What if you have a Monolith?
Splitting the Monolith
with Strangler-Fig Pattern
What is Strangler-Fig?
Ref: https://medium.com/@ddarie/the-strangler-fig-migration-pattern-2e20a7350511
Ref: https://www.michielrook.nl/2016/11/strangler-pattern-practice/
/serviceA
Problem?
Why we need scaling?
Is your business/data/load is growing?
“Global mobile users to exceed 5.5B by 2022”
-- Forrester
Bottlenecks?
Solution?
How you will scale?
How you will scale?
How you will scale?
Scale Cube
Why not invest on Scale Cube?
Bottlenecks?
Conway’s Law:
“Any organization that designs a system will inevitably
produce a design whose structure is a copy of the
organization's communication structure”
Is your architecture
ready to be
decoupled?
Is your
organisation
ready to be
decoupled?
Is your business
convinced to
invest on that
non-functional
change?
Are Microservices the ultimate
solution to scaling?
Depends...
Microservices is not an
architecture!
Consistency
Stock = 1
Stock = 1
Replication
Checkout
Product Page
Inconsistency
Stock = 0
Stock = 1
Replication
Checkout
Product Page
Inconsistency
Stock = 0
Stock = 1
Broken link!
Checkout
Product Page
Choose Availability or Consistency?
A or C?
Availability Consistency
Continue with
Inconsistency
Return Error to User
“Availability over consistency is not a
technical choice, it is a business choice.”
-- Anonymous
Ask your business?
Which one they prefer?
1- The website goes down
2- Website shows products with Stock=0
Eventual Consistency examples?
Twitter likes/timelines
Facebook news
Amazon Cart/Payment
Benefits of Microservices
Prior to moving to Microservices
● Consider your organizational structure
● Know your domain-model (i.e. Apply Event Storming)
● Go over the consistency requirements with business
● Increase the maturity of software teams
● Adapt a DevOps Culture
Thank you!
Derya SEZEN a.k.a Dorian
Consultant @kloia
@derya_sezen

DevOpsDays AZ 2020

Editor's Notes

  • #6 Servislerin DB uzerinden haberlestigi yapilara Monolith diyoruz
  • #7 Servislerin DB uzerinden haberlestigi yapilara Monolith diyoruz
  • #11 Incrementally migrate a legacy system by gradually replacing specific pieces of functionality with new applications and services. As features from the legacy system are replaced, the new system eventually replaces all of the old system's features, strangling the old system and allowing you to decommission it.