SlideShare a Scribd company logo
1 of 38
Download to read offline
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
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

WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf
 
How to choose tools for DevOps
How to choose tools for DevOpsHow to choose tools for DevOps
How to choose tools for DevOpsMatthew Skelton
 
The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)dev2ops
 
Intro to Puppet Enterprise 2016.2
Intro to Puppet Enterprise 2016.2Intro to Puppet Enterprise 2016.2
Intro to Puppet Enterprise 2016.2Puppet
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
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
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachiSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachIevgenii Katsan
 
Debunking DevOps Myths in Banking Industry
Debunking DevOps Myths in Banking IndustryDebunking DevOps Myths in Banking Industry
Debunking DevOps Myths in Banking IndustryDevOps Indonesia
 
IPSE QA Freelancer Awards - We are the Makers
IPSE QA Freelancer Awards - We are the MakersIPSE QA Freelancer Awards - We are the Makers
IPSE QA Freelancer Awards - We are the MakersDavid Walker
 
Why is dev ops essential for fintech development
Why is dev ops essential for fintech developmentWhy is dev ops essential for fintech development
Why is dev ops essential for fintech developmentnimbleappgenie
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps IntroductionRobert Sell
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015Ernest Mueller
 
Very first introduction to DevOps
Very first introduction to DevOps Very first introduction to DevOps
Very first introduction to DevOps Hien Nguyen
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?Soumya De
 

What's hot (20)

WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
 
How to choose tools for DevOps
How to choose tools for DevOpsHow to choose tools for DevOps
How to choose tools for DevOps
 
The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)
 
Breaking DevOps Illusion
Breaking DevOps IllusionBreaking DevOps Illusion
Breaking DevOps Illusion
 
The Human Side of DevSecOps
The Human Side of DevSecOpsThe Human Side of DevSecOps
The Human Side of DevSecOps
 
DevOps
DevOps DevOps
DevOps
 
Intro to Puppet Enterprise 2016.2
Intro to Puppet Enterprise 2016.2Intro to Puppet Enterprise 2016.2
Intro to Puppet Enterprise 2016.2
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
 
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachiSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
 
Debunking DevOps Myths in Banking Industry
Debunking DevOps Myths in Banking IndustryDebunking DevOps Myths in Banking Industry
Debunking DevOps Myths in Banking Industry
 
IPSE QA Freelancer Awards - We are the Makers
IPSE QA Freelancer Awards - We are the MakersIPSE QA Freelancer Awards - We are the Makers
IPSE QA Freelancer Awards - We are the Makers
 
devops
devops devops
devops
 
Why is dev ops essential for fintech development
Why is dev ops essential for fintech developmentWhy is dev ops essential for fintech development
Why is dev ops essential for fintech development
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
 
Dev ops lpi-701
Dev ops lpi-701Dev ops lpi-701
Dev ops lpi-701
 
Very first introduction to DevOps
Very first introduction to DevOps Very first introduction to DevOps
Very first introduction to DevOps
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
 

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

Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
 
Culture is more important than competence in IT outsourcing
Culture is more important than competence in IT outsourcingCulture is more important than competence in IT outsourcing
Culture is more important than competence in IT outsourcingBJIT Ltd
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker XebiaLabs
 
Culture Is More Important Than Competence In IT.pptx
Culture Is More Important Than Competence In IT.pptxCulture Is More Important Than Competence In IT.pptx
Culture Is More Important Than Competence In IT.pptxmushrunayasmin
 
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...Shahir Daya
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-CommerceDivante
 
Moving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learningsMoving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learningsGeshan Manandhar
 
Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps TourChef
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineDevOps.com
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Rodrigo Antonialli
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018Gregory Taylor
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
Code to Cloud: Three Trends for Faster, Safer Continuous Delivery
Code to Cloud: Three Trends for Faster, Safer Continuous DeliveryCode to Cloud: Three Trends for Faster, Safer Continuous Delivery
Code to Cloud: Three Trends for Faster, Safer Continuous DeliveryVMware Tanzu
 

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

Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Culture is more important than competence in IT outsourcing
Culture is more important than competence in IT outsourcingCulture is more important than competence in IT outsourcing
Culture is more important than competence in IT outsourcing
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker
 
Culture Is More Important Than Competence In IT.pptx
Culture Is More Important Than Competence In IT.pptxCulture Is More Important Than Competence In IT.pptx
Culture Is More Important Than Competence In IT.pptx
 
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
ICS - Introduction
ICS - IntroductionICS - Introduction
ICS - Introduction
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
 
Moving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learningsMoving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learnings
 
Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps Tour
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Ahmed El Mawaziny CV
Ahmed El Mawaziny CVAhmed El Mawaziny CV
Ahmed El Mawaziny CV
 
Brainstack offerings
Brainstack offeringsBrainstack offerings
Brainstack offerings
 
Microservices
MicroservicesMicroservices
Microservices
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
intro to DevOps
intro to DevOpsintro to DevOps
intro to DevOps
 
Code to Cloud: Three Trends for Faster, Safer Continuous Delivery
Code to Cloud: Three Trends for Faster, Safer Continuous DeliveryCode to Cloud: Three Trends for Faster, Safer Continuous Delivery
Code to Cloud: Three Trends for Faster, Safer Continuous Delivery
 

Recently uploaded

OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxaryanv1753
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...NETWAYS
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxCarrieButtitta
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxAnne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxnoorehahmad
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...marjmae69
 
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Escort Service
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 

Recently uploaded (20)

OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptx
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptx
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxAnne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
 
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 

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
  • 21.
  • 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