SlideShare a Scribd company logo
From monolith to microservices
What could go wrong?
By Mai and Alicia
=?
About us
Phuong Mai Nguyen
Consultant Developer at
ThoughtWorks
Code Like a Girl Member
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
Monolith
● A BIG STURDY ROCK!
Microservices
● 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
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.
Freipost
● Freipost is 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’s software allows both online and API
accesses that can integrate into a customer's
own fulfilment and labelling system and data
management process allowing for seamless
assimilation.
Background
They had:
● Large codebase built with .NET
● Six different projects
● Strongly coupled
● Ownership of projects
They wanted:
● To lower the dependencies between
each projects
● More testability
● Faster deployments
Why microservices for Freipost?
1. BAU as a distractor
● 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
● 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
Separate
responsibilities
● Have different teams and resources
that don't overlap with BAU and
developing new features.
● Again, one thing at a time.
How to improve
Don’t add new
features while extracting
What went wrong
2. Trying to be cool and take out the most
complicated first!
● 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?
Start with a simple capability with fewer
dependencies
● “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
Carsales
● 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
Background
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?
3. Lack of observability
What went wrong
● 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?
Boatsales
Microservices dependency graph
Monitoring and logging before everything else
How to improve
● 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!
BankX
Background
● One of the biggest banks in Australia
● 30,000 employees
● 2500 developers
● Over 9 million customers around the
world
● 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.
● This kind of setting also requires team members understand the whole system,
including all the dependencies. New team member will take a long time to
understand and contribute to the release.
● One of the main reasons going microservices was the need to speed up the
delivery time of features and leverage cloud technologies.
Why microservices for Bank X?
4. Semantic diffusion causes distributed
monoliths
● Chinese whispers equivalent of teams sharing what their idea of microservices are.
● Misconceptions
● Buzzwords or real use-case?
What went wrong
Understand before implementing
How to improve
● 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?
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
Evolve your team to suit your architecture
● 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. Ideally your
technology architecture will display isomorphism with your business architecture.
How to improve
Evolve your team to suit your architecture
● A cross-functional team owns a vertical capability and includes all aspects of the
architecture requirements including security, removing the potential blockers or at
least accelerating the path to prod.
● Organisations can set guidelines and standards, but if the teams are built around
these verticals and they include all the people required to get to prod (including
security architects), agility is enabled and the bank can get closer to continuous
delivery.
How to improve
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
Retro action points
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
Two more points before
you start!
1. Identify your expectations with microservices
2. Make sure you are competent enough for microservices
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...
Conclusion
● 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?”
Thanks!
Follow us:
@mai_isthebest
https://www.linkedin.com/in/mai-isthebest/
https://www.linkedin.com/in/alicia-siau-jia-bong-91ab78116/

More Related Content

What's hot

Cutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in ITCutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in IT
Andrea Tino
 
Starting out with Scrum
Starting out with ScrumStarting out with Scrum
Starting out with Scrum
Joshua Partogi
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
Nitin Bhide
 
An Introduction To Agile Development
An Introduction To Agile DevelopmentAn Introduction To Agile Development
An Introduction To Agile Development
elliando dias
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
Knoldus Inc.
 
Lean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять дней
Lean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять днейLean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять дней
Lean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять дней
CEE-SEC(R)
 
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Sandeep Mankar
 
ClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny DuekClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny Duek
AgileSparks
 
Quality Assurance in Scrum
Quality Assurance in ScrumQuality Assurance in Scrum
Quality Assurance in Scrum
Krystian Kaczor
 
ReleaseIQ's Next Gen Enterprise Devops Platform Webinar Slides
ReleaseIQ's  Next Gen Enterprise Devops Platform Webinar SlidesReleaseIQ's  Next Gen Enterprise Devops Platform Webinar Slides
ReleaseIQ's Next Gen Enterprise Devops Platform Webinar Slides
Wayne Greene
 
Intel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen EzraIntel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen Ezra
AgileSparks
 
ROOTS2011 Continuous Delivery
ROOTS2011 Continuous DeliveryROOTS2011 Continuous Delivery
ROOTS2011 Continuous Delivery
Ole Christian Rynning
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
Zend by Rogue Wave Software
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
Andrea Tino
 
Automating The New York Times Crossword by Phil Wells
Automating The New York Times Crossword by Phil WellsAutomating The New York Times Crossword by Phil Wells
Automating The New York Times Crossword by Phil Wells
Sauce Labs
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
Andrea Tino
 
Meteorjs
MeteorjsMeteorjs
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
Kris Buytaert
 
Extreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumExtreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond Scrum
Christian Hujer
 
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Manuel Padilha
 

What's hot (20)

Cutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in ITCutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in IT
 
Starting out with Scrum
Starting out with ScrumStarting out with Scrum
Starting out with Scrum
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
An Introduction To Agile Development
An Introduction To Agile DevelopmentAn Introduction To Agile Development
An Introduction To Agile Development
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
 
Lean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять дней
Lean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять днейLean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять дней
Lean UX и дизайн-спринты: как построить ведущий продукт на рынке за пять дней
 
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
 
ClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny DuekClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny Duek
 
Quality Assurance in Scrum
Quality Assurance in ScrumQuality Assurance in Scrum
Quality Assurance in Scrum
 
ReleaseIQ's Next Gen Enterprise Devops Platform Webinar Slides
ReleaseIQ's  Next Gen Enterprise Devops Platform Webinar SlidesReleaseIQ's  Next Gen Enterprise Devops Platform Webinar Slides
ReleaseIQ's Next Gen Enterprise Devops Platform Webinar Slides
 
Intel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen EzraIntel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen Ezra
 
ROOTS2011 Continuous Delivery
ROOTS2011 Continuous DeliveryROOTS2011 Continuous Delivery
ROOTS2011 Continuous Delivery
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Automating The New York Times Crossword by Phil Wells
Automating The New York Times Crossword by Phil WellsAutomating The New York Times Crossword by Phil Wells
Automating The New York Times Crossword by Phil Wells
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Meteorjs
MeteorjsMeteorjs
Meteorjs
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
Extreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumExtreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond Scrum
 
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)
 

Similar to From Monolith to Microservices - What Could Go Wrong?

AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
Phuong Mai Nguyen
 
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporaçõesLuiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Agile Trends
 
Pivotal's Secret Sauce
Pivotal's Secret SaucePivotal's Secret Sauce
Pivotal's Secret Sauce
VMware Tanzu
 
The Agile Readiness Assessment Tool Essay
The Agile Readiness Assessment Tool EssayThe Agile Readiness Assessment Tool Essay
The Agile Readiness Assessment Tool Essay
Heidi Owens
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software development
eSAT Journals
 
Difference Between Agile And Scrum
Difference Between Agile And ScrumDifference Between Agile And Scrum
Difference Between Agile And Scrum
Michelle Madero
 
Dev ops lpi-701
Dev ops lpi-701Dev ops lpi-701
Dev ops lpi-701
Radhouen Assakra
 
Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023
Matt Tesauro
 
Improving software quality for the future of connected vehicles
Improving software quality for the future of connected vehiclesImproving software quality for the future of connected vehicles
Improving software quality for the future of connected vehicles
Devon Bleibtrey
 
Microservices
MicroservicesMicroservices
Microservices
PT.JUG
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
Kris Buytaert
 
Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...
Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...
Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...
Vipin Jain
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
Jaewoo Ahn
 
Learn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLife
Learn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLifeLearn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLife
Learn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLife
Docker, Inc.
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
The Real Dyl
 
Approaches for Distributed Agile
Approaches for Distributed AgileApproaches for Distributed Agile
Approaches for Distributed Agile
Brad Kaufman
 
Agile Delivery Methods And Leadership
Agile Delivery Methods And LeadershipAgile Delivery Methods And Leadership
Agile Delivery Methods And Leadership
Ranjith Varghese
 
· Stability in the Frequency Domain1. Consider a closed-loop sys.docx
· Stability in the Frequency Domain1. Consider a closed-loop sys.docx· Stability in the Frequency Domain1. Consider a closed-loop sys.docx
· Stability in the Frequency Domain1. Consider a closed-loop sys.docx
oswald1horne84988
 
Owasp summit debrief v1.0 (jun 2017)
Owasp summit debrief v1.0 (jun 2017)Owasp summit debrief v1.0 (jun 2017)
Owasp summit debrief v1.0 (jun 2017)
owaspsummit
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf
 

Similar to From Monolith to Microservices - What Could Go Wrong? (20)

AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
 
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporaçõesLuiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
 
Pivotal's Secret Sauce
Pivotal's Secret SaucePivotal's Secret Sauce
Pivotal's Secret Sauce
 
The Agile Readiness Assessment Tool Essay
The Agile Readiness Assessment Tool EssayThe Agile Readiness Assessment Tool Essay
The Agile Readiness Assessment Tool Essay
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software development
 
Difference Between Agile And Scrum
Difference Between Agile And ScrumDifference Between Agile And Scrum
Difference Between Agile And Scrum
 
Dev ops lpi-701
Dev ops lpi-701Dev ops lpi-701
Dev ops lpi-701
 
Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023
 
Improving software quality for the future of connected vehicles
Improving software quality for the future of connected vehiclesImproving software quality for the future of connected vehicles
Improving software quality for the future of connected vehicles
 
Microservices
MicroservicesMicroservices
Microservices
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 
Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...
Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...
Agile and Startups - What can go wrong - a Case study (Presented at ExpoQA 20...
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
Learn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLife
Learn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLifeLearn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLife
Learn Fast, Fail Fast, Deliver Fast: The MOD Squad Way at MetLife
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
Approaches for Distributed Agile
Approaches for Distributed AgileApproaches for Distributed Agile
Approaches for Distributed Agile
 
Agile Delivery Methods And Leadership
Agile Delivery Methods And LeadershipAgile Delivery Methods And Leadership
Agile Delivery Methods And Leadership
 
· Stability in the Frequency Domain1. Consider a closed-loop sys.docx
· Stability in the Frequency Domain1. Consider a closed-loop sys.docx· Stability in the Frequency Domain1. Consider a closed-loop sys.docx
· Stability in the Frequency Domain1. Consider a closed-loop sys.docx
 
Owasp summit debrief v1.0 (jun 2017)
Owasp summit debrief v1.0 (jun 2017)Owasp summit debrief v1.0 (jun 2017)
Owasp summit debrief v1.0 (jun 2017)
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 

Recently uploaded

Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
XP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to LeadershipXP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to Leadership
samililja
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
OECD Directorate for Financial and Enterprise Affairs
 
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
OECD Directorate for Financial and Enterprise Affairs
 
nationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptxnationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptx
silki0908
 
Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
Raheem Muhammad
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
gpww3sf4
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
kekzed
 
Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
kainatfatyma9
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
SkillCertProExams
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdfBRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
Robin Haunschild
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
OECD Directorate for Financial and Enterprise Affairs
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
artemacademy2
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
Claudio Gallicchio
 

Recently uploaded (20)

Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
 
XP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to LeadershipXP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to Leadership
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
 
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
 
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
 
nationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptxnationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptx
 
Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
 
Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
 
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdfBRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
 
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
 

From Monolith to Microservices - What Could Go Wrong?

  • 1. From monolith to microservices What could go wrong? By Mai and Alicia =?
  • 2. About us Phuong Mai Nguyen Consultant Developer at ThoughtWorks Code Like a Girl Member Alicia Bong Consultant Developer at ThoughtWorks
  • 3. 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
  • 4. Monolith ● A BIG STURDY ROCK!
  • 5. Microservices ● 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
  • 6. 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.
  • 7. Freipost ● Freipost is 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’s software allows both online and API accesses that can integrate into a customer's own fulfilment and labelling system and data management process allowing for seamless assimilation. Background
  • 8. They had: ● Large codebase built with .NET ● Six different projects ● Strongly coupled ● Ownership of projects They wanted: ● To lower the dependencies between each projects ● More testability ● Faster deployments Why microservices for Freipost?
  • 9. 1. BAU as a distractor ● 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
  • 10. 1. BAU as a distractor ● 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
  • 11. Separate responsibilities ● Have different teams and resources that don't overlap with BAU and developing new features. ● Again, one thing at a time. How to improve Don’t add new features while extracting
  • 12. What went wrong 2. Trying to be cool and take out the most complicated first! ● 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?
  • 13. Start with a simple capability with fewer dependencies ● “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
  • 14. Carsales ● 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 Background
  • 16. ● 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?
  • 17. 3. Lack of observability What went wrong ● 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?
  • 19. Monitoring and logging before everything else How to improve ● 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!
  • 20.
  • 21. BankX Background ● One of the biggest banks in Australia ● 30,000 employees ● 2500 developers ● Over 9 million customers around the world
  • 22. ● 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. ● This kind of setting also requires team members understand the whole system, including all the dependencies. New team member will take a long time to understand and contribute to the release. ● One of the main reasons going microservices was the need to speed up the delivery time of features and leverage cloud technologies. Why microservices for Bank X?
  • 23. 4. Semantic diffusion causes distributed monoliths ● Chinese whispers equivalent of teams sharing what their idea of microservices are. ● Misconceptions ● Buzzwords or real use-case? What went wrong
  • 24. Understand before implementing How to improve ● 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?
  • 25. 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
  • 26. Now let's address two of the most important requirements for banks: ● Security ● Stability What went wrong 5. Not completely agile, not completely waterfall
  • 27. Aren’t those points conflicting with each other? ● You bet! What went wrong 5. Not completely agile, not completely waterfall
  • 28. 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
  • 29. Evolve your team to suit your architecture ● 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. Ideally your technology architecture will display isomorphism with your business architecture. How to improve
  • 30. Evolve your team to suit your architecture ● A cross-functional team owns a vertical capability and includes all aspects of the architecture requirements including security, removing the potential blockers or at least accelerating the path to prod. ● Organisations can set guidelines and standards, but if the teams are built around these verticals and they include all the people required to get to prod (including security architects), agility is enabled and the bank can get closer to continuous delivery. How to improve
  • 31. 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
  • 32. Retro action points 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
  • 33. Two more points before you start! 1. Identify your expectations with microservices 2. Make sure you are competent enough for microservices
  • 34. 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...
  • 35. Conclusion ● 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?”