SlideShare a Scribd company logo
MELBOURNE
From monolith to
microservices
What could go wrong?
BY MAI AND ALICIA | 2019
About us
Phuong Mai Nguyen
Consultant Developer at
ThoughtWorks
Code Like a Girl Member
@mai_isthebest
Alicia Bong
Consultant Developer at
ThoughtWorks
Welcome to the
microservices
team retro!
In today’s retro, we will be addressing the
following:
1. What are microservices?
2. How did some of the migration from monolith
to microservices go?
3. What went wrong during the migration?
4. How to improve upon them?
5. Retro action points
● A BIG STURDY ROCK!
Monolith
● Sets of loosely coupled services which work
together to create a system
● Enables "incremental tech refresh”
● Scalable cost savings
● Flexible: can have THE right tool for the job
● Reliable: faster and independent deployments
● Velocity: enable innovation quickly
Microservices
Migrating from monolith to
microservices
“You cannot learn without making
mistakes. Thankfully, there are
others who have made mistakes
and we can learn from them.”
Cool, so microservices
are awesome, let’s all
go today and change
our app to
microservice, shall
we?
It’s not as easy as it
sounds.
Background
● A global mail logistics operation presenting
connections to over 200 countries
● It offers cross-border solutions for international mail
shipments – whether a few grams or large parcels.
Freipost
They had:
● Large codebase built with .NET
● Six different projects
● Strongly coupled
● Ownership of projects
Why microservices for Freipost?
They wanted:
● To lower the dependencies between
each projects
● More testability
● Faster deployments
● Single team was tasked with dealing with both BAU and extracting monolith to
microservices.
● BAU is a never-ending rabbit hole
● Will you concentrate on BAU or try to finish extracting your microservices?
What went wrong
1. BAU as a distractor
Separate responsibilities
● Have different teams and resources
that don't overlap with BAU and
developing new features.
How to improve
Don’t add new features
while extracting
● Again, one thing at a time.
● Would you take the hardest, complex part and convert it to microservice?
● Would you take the least impactful part and convert?
● Would you take the most important part and convert first?
What went wrong
2. Trying to be cool and take out the most complicated
first!
● “Do something you believe you can do in 3 months.” (Evan Bottcher)
● By starting small, your team will start shaking off patterns and potential issues in
the new architecture. Start defining a dev process, CI/CD and release cadence.
● Use Domain-Driven Design to help separate monolithic applications into multiple
standalone service applications or develop them separately from the beginning
with the help of bounded contexts.
How to improve
Start with a simple capability with fewer dependencies
Microservice abstractions at Freipost
Background
● Australia’s number one online classifieds network
for cars, bikes, boats, industry machinery and
equipment. Anyone here been to our website
before?
● Around 200 developers, QA engineers, DevOps
engineers in total.
● Three main platforms - Desktop, Mobi and App
Carsales
Tradernet
● Developers unhappy with the sheer size of code
● Release process took weeks to plan and test
● Deployments around 2am to get it on prod by 6am
● Rollbacks were similar too!
● Want a new feature? It may take some time (like a few months…)
Why microservices for Carsales?
● How do you know if your deployment was a success?
● How do you tell if something goes wrong among your few
hundred microservices?
● How do you debug the nature of issues with microservices?
What went wrong
3. Lack of observability
Boatsales
Microservices dependency graph
● Setup monitoring for each microservice and give each team
ownership of their apps
● Setup alerts and keep refining the metrics as the applications mature
● Log! Log! Log! Without logging, good luck fixing issues on cloud!
How to improve
Monitoring and logging before everything else
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
Microservice abstractions at Carsales
Background
● One of the biggest banks in Australia
● 30,000 employees
● 2500 developers
● Over 9 million customers around the world
BankX
● The monolithic system has a lot of system dependencies. Whenever
there is a new release, the whole system will be tested. This requires a
huge operational cost.
● Hard to onboard new people
● Need to speed up the delivery time of features and leverage cloud
technologies.
Why microservices for Bank X?
● Chinese whispers equivalent of teams sharing what their idea of microservices
are.
● Misconceptions
● Buzzwords or real use-case?
What went wrong
4. Semantic diffusion causes distributed monoliths
● Understand not just what microservices are, but is it really for you?
● Do you have the capacity for it?
● Can your teams and management be re-arranged around new technology and
methodologies?
● Are you actually ready for it?
How to improve
Understand before implementing
Let's talk about the two most enticing parts of microservices architecture:
● Ability to follow agile methodology and release at fast pace
● Fail fast, fix fast mantra
What went wrong
5. Not completely agile, not completely waterfall
Now let's address two of the most important requirements for banks:
● Security
● Stability
What went wrong
5. Not completely agile, not completely waterfall
Aren’t those points conflicting with each other?
● You bet!
What went wrong
5. Not completely agile, not completely waterfall
Internet Banking
Department
Cards Team Control & Governance
Security TeamRelease Team
Solution Design
Team
Cards Delivery &
Support Team
Integration &
Performance Team
Support TeamDevOps TeamCards Team Production Team
Integration Test
Squad
Back-End SquadFront-End SquadDelivery Squad Performance Squad
Release Schedule
Squad
● Conway's Law asserts that organizations are constrained to produce application
designs which are copies of their communication structures. This often leads to
unintended friction points.
● The Inverse Conway Maneuver recommends evolving your team and
organizational structure to promote your desired architecture.
How to improve
Evolve your team to suit your architecture
Security Team
Release Team
Solution Design Team
DevOps Team
Integration Test Squad
Back-End Squad
Front-End Squad
Delivery Squad
Performance Squad
Release Schedule Squad
Front-End &
Back-End
Developers
QAs (testing,
integration,
performance tests)
Security controls &
governance people
Solution Architects
Release to Prod
people
Product
Team
Microservice abstractions at Bank X
1. Separate responsibilities: have different teams and resources that don't overlap
with BAU and developing new features
2. Do not add new features while extracting microservices
3. Warm up with a simple capability that has fewer dependencies
4. Get your monitoring and logging in place first
5. Build a shared understanding before you implement
6. Evolve your team and organizational structure to promote your desired architecture
Retro action points
Evolve your team to suit your architecture
1. Identify your expectations with microservices
2. Make sure you are competent enough for microservices
Two more points before
you start!
Freipost, Carsales & Bank X
2010
Carsales: Monolith
Carpoint acquisition
(inherited the old
codebase)
2012
Carsales: Small chunks of
monolith
Carsales, Bikesales were
separated Started
migrating to AWS
2014
Carsales: Infrastructure
change
Migrated to AWS and
started adopting CI/CD
2016
Freipost: Monolith
2017
Carsales: Microservices
Using dockers and
separating microservices
based on features.
Freipost: Half Done
Microservices
2019
Bank X: Monolith
Started out as
Distributed Monoliths
and on the journey...
● Going microservices is an EPIC journey
● You need stamina, perseverance, and grit!
● Be prepared for lots of trials and fails that could take years!
● You need to keep asking yourself: “WHY MICROSERVICES? Is it really for me?”
Conclusion
Thanks!
Follow us:
@mai_isthebest
https://www.linkedin.com/in/mai-isthebest/
https://www.linkedin.com/in/aliciabong/

More Related Content

What's hot (20)

PPTX
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf
 
PPTX
How to choose tools for DevOps
Matthew Skelton
 
PDF
The History of DevOps (and what you need to do about it)
dev2ops
 
PDF
Breaking DevOps Illusion
DevOps Indonesia
 
PPTX
The Human Side of DevSecOps
Jules Pierre-Louis
 
PDF
DevOps
Hakan Yüksel
 
PPTX
Intro to Puppet Enterprise 2016.2
Puppet
 
PPTX
DevOps explained
Jérôme Kehrli
 
PPTX
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
DevOpsDays Tel Aviv
 
PDF
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
Ievgenii Katsan
 
PDF
Debunking DevOps Myths in Banking Industry
DevOps Indonesia
 
PPTX
IPSE QA Freelancer Awards - We are the Makers
David Walker
 
PDF
Why is dev ops essential for fintech development
nimbleappgenie
 
PDF
Introduction to DevOps
OCTO Technology
 
PPTX
DevOps Introduction
Robert Sell
 
PPTX
DevOps State of the Union 2015
Ernest Mueller
 
PDF
Dev ops lpi-701
Radhouen Assakra
 
PPTX
Very first introduction to DevOps
Hien Nguyen
 
PPTX
What Is DevOps?
Soumya De
 
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf
 
How to choose tools for DevOps
Matthew Skelton
 
The History of DevOps (and what you need to do about it)
dev2ops
 
Breaking DevOps Illusion
DevOps Indonesia
 
The Human Side of DevSecOps
Jules Pierre-Louis
 
DevOps
Hakan Yüksel
 
Intro to Puppet Enterprise 2016.2
Puppet
 
DevOps explained
Jérôme Kehrli
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
DevOpsDays Tel Aviv
 
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
Ievgenii Katsan
 
Debunking DevOps Myths in Banking Industry
DevOps Indonesia
 
IPSE QA Freelancer Awards - We are the Makers
David Walker
 
Why is dev ops essential for fintech development
nimbleappgenie
 
Introduction to DevOps
OCTO Technology
 
DevOps Introduction
Robert Sell
 
DevOps State of the Union 2015
Ernest Mueller
 
Dev ops lpi-701
Radhouen Assakra
 
Very first introduction to DevOps
Hien Nguyen
 
What Is DevOps?
Soumya De
 

Similar to AWS Community Day: From Monolith to Microservices - What Could Go Wrong? (20)

PPTX
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
PDF
Culture is more important than competence in IT outsourcing
BJIT Ltd
 
PDF
Diving Into Docker
XebiaLabs
 
PPTX
Culture Is More Important Than Competence In IT.pptx
mushrunayasmin
 
PPTX
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
Shahir Daya
 
PPTX
Technology insights: Decision Science Platform
Decision Science Community
 
PPT
ICS - Introduction
ICube Systems Pvt Ltd
 
PDF
Microservices Architecture for e-Commerce
Divante
 
PDF
Automating deployments and monitoring for faster delivery by DevOps microserv...
mohitd6
 
PDF
Moving from A and B to 150 microservices, the journey, and learnings
Geshan Manandhar
 
PPTX
Automation, Audits, and Apps Tour
Chef
 
PDF
All you need to know about cloud native development for your business.pdf
mohitd6
 
PDF
The Reality of Managing Microservices in Your CD Pipeline
DevOps.com
 
PDF
Introduction to Microservices Architecture - SECCOMP 2020
Rodrigo Antonialli
 
PPTX
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
PDF
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
PDF
Ahmed El Mawaziny CV
Ahmed El Mawaziny
 
PDF
Brainstack offerings
Brainstack Technologies
 
PDF
Microservices
PT.JUG
 
PPTX
Webinar : Microservices and Containerization
Newt Global Consulting LLC
 
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
Culture is more important than competence in IT outsourcing
BJIT Ltd
 
Diving Into Docker
XebiaLabs
 
Culture Is More Important Than Competence In IT.pptx
mushrunayasmin
 
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
Shahir Daya
 
Technology insights: Decision Science Platform
Decision Science Community
 
ICS - Introduction
ICube Systems Pvt Ltd
 
Microservices Architecture for e-Commerce
Divante
 
Automating deployments and monitoring for faster delivery by DevOps microserv...
mohitd6
 
Moving from A and B to 150 microservices, the journey, and learnings
Geshan Manandhar
 
Automation, Audits, and Apps Tour
Chef
 
All you need to know about cloud native development for your business.pdf
mohitd6
 
The Reality of Managing Microservices in Your CD Pipeline
DevOps.com
 
Introduction to Microservices Architecture - SECCOMP 2020
Rodrigo Antonialli
 
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
Ahmed El Mawaziny CV
Ahmed El Mawaziny
 
Brainstack offerings
Brainstack Technologies
 
Microservices
PT.JUG
 
Webinar : Microservices and Containerization
Newt Global Consulting LLC
 
Ad

Recently uploaded (20)

PPTX
Great-Books. Powerpoint presentation. files
tamayocrisgie
 
PDF
The Impact of Game Live Streaming on In-Game Purchases of Chinese Young Game ...
Shibaura Institute of Technology
 
PDF
Planning the parliament of the future in greece – considerations for a data-d...
Dr. Fotios Fitsilis
 
PDF
Committee-Skills-Handbook---MUNprep.org.pdf
SatvikAgarwal9
 
DOC
STABILITY INDICATING METHOD DEVELOPMENT AND VALIDATION FOR SIMULTANEOUS ESTIM...
jmkeans624
 
DOCX
How Digital Marketplaces are Empowering Emerging MedTech Brands
Ram Gopal Varma
 
PDF
Jotform Presentation Agents: Features and Benefits
Jotform
 
PDF
Buy Verified Payoneer Accounts — The Ultimate Guide for 2025 (Rank #1 on Goog...
Buy Verified Cash App Accounts
 
PDF
From Draft to DSN - How to Get your Paper In [DSN 2025 Doctoral Forum Keynote]
vschiavoni
 
PDF
Model Project Report_36DR_G&P.pdf for investors understanding
MeetAgrawal23
 
PPTX
presentation on legal and regulatory action
raoharsh4122001
 
PDF
The Family Secret (essence of loveliness)
Favour Biodun
 
PPTX
STURGEON BAY WI AG PPT JULY 6 2025.pptx
FamilyWorshipCenterD
 
PPTX
Melbourne_Keynote_June_19_2013_without_photos.pptx
BryInfanteRayos
 
PDF
Jotform Presentation Agents: Use Cases and Examples
Jotform
 
PPTX
INTRO-TO-EMPOWERMENT-TECHNOLGY grade 11 lesson
ReyAcosta8
 
PDF
Buy Verified Coinbase Accounts — The Ultimate Guide for 2025 (Rank #1 on Goog...
Buy Verified Cash App Accounts
 
PPTX
Lesson 1-3(Learners' copy).pptxucspctopi
KrizeAnneCorneja
 
PPTX
Unit 1, 2 & 3 - Pharmacognosy - Defn_history_scope.pptx
bagewadivarsha2024
 
PDF
The Origin - A Simple Presentation on any project
RishabhDwivedi43
 
Great-Books. Powerpoint presentation. files
tamayocrisgie
 
The Impact of Game Live Streaming on In-Game Purchases of Chinese Young Game ...
Shibaura Institute of Technology
 
Planning the parliament of the future in greece – considerations for a data-d...
Dr. Fotios Fitsilis
 
Committee-Skills-Handbook---MUNprep.org.pdf
SatvikAgarwal9
 
STABILITY INDICATING METHOD DEVELOPMENT AND VALIDATION FOR SIMULTANEOUS ESTIM...
jmkeans624
 
How Digital Marketplaces are Empowering Emerging MedTech Brands
Ram Gopal Varma
 
Jotform Presentation Agents: Features and Benefits
Jotform
 
Buy Verified Payoneer Accounts — The Ultimate Guide for 2025 (Rank #1 on Goog...
Buy Verified Cash App Accounts
 
From Draft to DSN - How to Get your Paper In [DSN 2025 Doctoral Forum Keynote]
vschiavoni
 
Model Project Report_36DR_G&P.pdf for investors understanding
MeetAgrawal23
 
presentation on legal and regulatory action
raoharsh4122001
 
The Family Secret (essence of loveliness)
Favour Biodun
 
STURGEON BAY WI AG PPT JULY 6 2025.pptx
FamilyWorshipCenterD
 
Melbourne_Keynote_June_19_2013_without_photos.pptx
BryInfanteRayos
 
Jotform Presentation Agents: Use Cases and Examples
Jotform
 
INTRO-TO-EMPOWERMENT-TECHNOLGY grade 11 lesson
ReyAcosta8
 
Buy Verified Coinbase Accounts — The Ultimate Guide for 2025 (Rank #1 on Goog...
Buy Verified Cash App Accounts
 
Lesson 1-3(Learners' copy).pptxucspctopi
KrizeAnneCorneja
 
Unit 1, 2 & 3 - Pharmacognosy - Defn_history_scope.pptx
bagewadivarsha2024
 
The Origin - A Simple Presentation on any project
RishabhDwivedi43
 
Ad

AWS Community Day: From Monolith to Microservices - What Could Go Wrong?

  • 2. From monolith to microservices What could go wrong? BY MAI AND ALICIA | 2019
  • 3. About us Phuong Mai Nguyen Consultant Developer at ThoughtWorks Code Like a Girl Member @mai_isthebest Alicia Bong Consultant Developer at ThoughtWorks
  • 4. Welcome to the microservices team retro! In today’s retro, we will be addressing the following: 1. What are microservices? 2. How did some of the migration from monolith to microservices go? 3. What went wrong during the migration? 4. How to improve upon them? 5. Retro action points
  • 5. ● A BIG STURDY ROCK! Monolith
  • 6. ● Sets of loosely coupled services which work together to create a system ● Enables "incremental tech refresh” ● Scalable cost savings ● Flexible: can have THE right tool for the job ● Reliable: faster and independent deployments ● Velocity: enable innovation quickly Microservices
  • 7. Migrating from monolith to microservices “You cannot learn without making mistakes. Thankfully, there are others who have made mistakes and we can learn from them.” Cool, so microservices are awesome, let’s all go today and change our app to microservice, shall we? It’s not as easy as it sounds.
  • 8. Background ● A global mail logistics operation presenting connections to over 200 countries ● It offers cross-border solutions for international mail shipments – whether a few grams or large parcels. Freipost
  • 9. They had: ● Large codebase built with .NET ● Six different projects ● Strongly coupled ● Ownership of projects Why microservices for Freipost? They wanted: ● To lower the dependencies between each projects ● More testability ● Faster deployments
  • 10. ● Single team was tasked with dealing with both BAU and extracting monolith to microservices. ● BAU is a never-ending rabbit hole ● Will you concentrate on BAU or try to finish extracting your microservices? What went wrong 1. BAU as a distractor
  • 11. Separate responsibilities ● Have different teams and resources that don't overlap with BAU and developing new features. How to improve Don’t add new features while extracting ● Again, one thing at a time.
  • 12. ● Would you take the hardest, complex part and convert it to microservice? ● Would you take the least impactful part and convert? ● Would you take the most important part and convert first? What went wrong 2. Trying to be cool and take out the most complicated first!
  • 13. ● “Do something you believe you can do in 3 months.” (Evan Bottcher) ● By starting small, your team will start shaking off patterns and potential issues in the new architecture. Start defining a dev process, CI/CD and release cadence. ● Use Domain-Driven Design to help separate monolithic applications into multiple standalone service applications or develop them separately from the beginning with the help of bounded contexts. How to improve Start with a simple capability with fewer dependencies
  • 15. Background ● Australia’s number one online classifieds network for cars, bikes, boats, industry machinery and equipment. Anyone here been to our website before? ● Around 200 developers, QA engineers, DevOps engineers in total. ● Three main platforms - Desktop, Mobi and App Carsales
  • 17. ● Developers unhappy with the sheer size of code ● Release process took weeks to plan and test ● Deployments around 2am to get it on prod by 6am ● Rollbacks were similar too! ● Want a new feature? It may take some time (like a few months…) Why microservices for Carsales?
  • 18. ● How do you know if your deployment was a success? ● How do you tell if something goes wrong among your few hundred microservices? ● How do you debug the nature of issues with microservices? What went wrong 3. Lack of observability
  • 20. ● Setup monitoring for each microservice and give each team ownership of their apps ● Setup alerts and keep refining the metrics as the applications mature ● Log! Log! Log! Without logging, good luck fixing issues on cloud! How to improve Monitoring and logging before everything else
  • 23. Background ● One of the biggest banks in Australia ● 30,000 employees ● 2500 developers ● Over 9 million customers around the world BankX
  • 24. ● The monolithic system has a lot of system dependencies. Whenever there is a new release, the whole system will be tested. This requires a huge operational cost. ● Hard to onboard new people ● Need to speed up the delivery time of features and leverage cloud technologies. Why microservices for Bank X?
  • 25. ● Chinese whispers equivalent of teams sharing what their idea of microservices are. ● Misconceptions ● Buzzwords or real use-case? What went wrong 4. Semantic diffusion causes distributed monoliths
  • 26. ● Understand not just what microservices are, but is it really for you? ● Do you have the capacity for it? ● Can your teams and management be re-arranged around new technology and methodologies? ● Are you actually ready for it? How to improve Understand before implementing
  • 27. Let's talk about the two most enticing parts of microservices architecture: ● Ability to follow agile methodology and release at fast pace ● Fail fast, fix fast mantra What went wrong 5. Not completely agile, not completely waterfall
  • 28. Now let's address two of the most important requirements for banks: ● Security ● Stability What went wrong 5. Not completely agile, not completely waterfall
  • 29. Aren’t those points conflicting with each other? ● You bet! What went wrong 5. Not completely agile, not completely waterfall
  • 30. Internet Banking Department Cards Team Control & Governance Security TeamRelease Team Solution Design Team Cards Delivery & Support Team Integration & Performance Team Support TeamDevOps TeamCards Team Production Team Integration Test Squad Back-End SquadFront-End SquadDelivery Squad Performance Squad Release Schedule Squad
  • 31. ● Conway's Law asserts that organizations are constrained to produce application designs which are copies of their communication structures. This often leads to unintended friction points. ● The Inverse Conway Maneuver recommends evolving your team and organizational structure to promote your desired architecture. How to improve Evolve your team to suit your architecture
  • 32. Security Team Release Team Solution Design Team DevOps Team Integration Test Squad Back-End Squad Front-End Squad Delivery Squad Performance Squad Release Schedule Squad Front-End & Back-End Developers QAs (testing, integration, performance tests) Security controls & governance people Solution Architects Release to Prod people Product Team
  • 34. 1. Separate responsibilities: have different teams and resources that don't overlap with BAU and developing new features 2. Do not add new features while extracting microservices 3. Warm up with a simple capability that has fewer dependencies 4. Get your monitoring and logging in place first 5. Build a shared understanding before you implement 6. Evolve your team and organizational structure to promote your desired architecture Retro action points Evolve your team to suit your architecture
  • 35. 1. Identify your expectations with microservices 2. Make sure you are competent enough for microservices Two more points before you start!
  • 36. Freipost, Carsales & Bank X 2010 Carsales: Monolith Carpoint acquisition (inherited the old codebase) 2012 Carsales: Small chunks of monolith Carsales, Bikesales were separated Started migrating to AWS 2014 Carsales: Infrastructure change Migrated to AWS and started adopting CI/CD 2016 Freipost: Monolith 2017 Carsales: Microservices Using dockers and separating microservices based on features. Freipost: Half Done Microservices 2019 Bank X: Monolith Started out as Distributed Monoliths and on the journey...
  • 37. ● Going microservices is an EPIC journey ● You need stamina, perseverance, and grit! ● Be prepared for lots of trials and fails that could take years! ● You need to keep asking yourself: “WHY MICROSERVICES? Is it really for me?” Conclusion