SlideShare a Scribd company logo
1 of 46
Strangle The Monolith
A Data Driven Approach
Amjad Sidqi, Associate Director | Pivotal Labs
David Julia, Director | Pivotal Labs
HARD TO
CHANGE
The Situation
The Data Driven Strangler
How to Get Started
The Situation
The Data Driven Strangler
How to Get Started
The Scenario
Additional business features
Cost Estimator for medical procedures
Financial Penalties for inaccurate estimations
Existing
Architecture
3rd Party Web UI
Monolith
Source
System 1
Source
System 2
Source
System 3
… Source
System N
Peeking Inside
the Monolith
Main Member-Facing
Web UI
Account
Customization
Member Store
Secure Messages
...etc.
Member Liability
Estimator SOAP
Service Component
Source System
1
Source System
2
Source System
3
… Source
System N
Peeking Inside
the Monolith
Main Member-Facing
Web UI
Account
Customization
Member Store
Secure Messages
...etc.
Member Liability
Estimator SOAP
Service Component
Source System
1
Source System
2
Source System
3
… Source
System N
Commit to the rewrite:
A new API that returns the same
results & supports “tiered”
networks
Initial approach
The expert leads the way
The Strangler
Pattern: An
Iterative Rewrite
Benefits of a rewrite with
reduced risk, faster time to
value
Does require investment in the
approach.
Strangler Fig Hollow Inside of Strangler Fig
Uncertainty
Complex flows create anxiety
Fundamental assumptions were wrong
Pssst… This isn’t working
Strangler is great for
decomposition.
BUT
We couldn’t know what logic to
build in our new services.
The Data Driven Strangler
The Situation
How to Get Started
Enter The Data
Driven Strangler
+
=
☺
Pass-through &
Log (in prod)
3rd Party Web UI
Monolith
Source
System 1
Source
System 2
Source
System 3
Project X
Collect Request/Response Data
3rd Party Web UI
1 week
It was like turning on the lights
Log Both Results
& Default
3rd Party Web UI
Monolith
Source
System 1
Source
System 2
Source
System 3
Project X
Collect Request/Response Data
for Both
Defaulting → No Risk of Bad Result
3rd Party Web UI
Monolith
Source
System 1
Source
System 2
Source
System 3
Project X
Calculation Module
2 weeks
Log The Deltas!
Automate
Analysis
Web App UI
Monolith
Source
System 1
Source
System 2
Source
System 3
Project X
Calculation Module
3 weeks
We optimized for near real time
feedback loops
Let’s focus on
what matters ...
% Error Cases ✖ Avg. $ Diff ✖ Avg. Requests/Day
=
Possible Financial Impact/Day
Starting to strangle stable cases
Started to turn
off path to old
system for some
cases
Web App UI
Monolith
Project X
Calculation Module
Source
System 1
Source
System 2
Source
System 3
5 weeks
Possible Financial Impact/Day
<
Cost to Maintain Legacy
When
Then...
Shut down the
Legacy
Calculation Path
Project X
Only call into our new calculation
module
We’ve now strangled a large part
of the monolith!
3rd Party Web UI
Source
System 1
Source
System 2
Source
System 3
Project X
Calculation Module
13 weeks
This made us feel
great!
The Data Driven Strangler
The Situation
How to Get Started
Did any of that sound familiar?
Are you thinking of a rewrite?
Is legacy technology holding you
back?
Data-Driven Strangler is Not a
Silver Bullet
Options
1. Rewrite from scratch
2. Buy off the shelf
3. Do nothing
4. Containerize
5. Strangler Pattern
Build vs Buy →
Build & Buy
Is it core to your business?
Somewhere you want to differentiate?
Will the buy option require a lot of customization--
building logic into the system?
Often, the best option is both: Build the differentiating
parts, “buy” commodity components (eg don’t build
your own SendGrid, don’t build Stripe, don’t build your
own cloud platform).
When to ‘Do
nothing’?
● No delivery pressures
● Low strategic importance
● Stable enough if not touched
● Opex costs under control
What about
Containerizing?
Doesn’t actually solve your
problem
Fragmented
business rules
Painful deployment
processSlow to augment
Technical Debt
Hard to test
When should you rewrite?
Maturity/Traction of product
● Original product was way off the mark, didn’t
achieve goals (eg no user adoption).
When should you rewrite?
Maturity/Traction of product
● Original product was way off the mark, didn’t
achieve goals (eg no user adoption).
● Original product does not have traction
When should you rewrite?
Maturity/Traction of product
● Original product was way off the mark, didn’t
achieve goals (eg no user adoption).
● Original product does not have traction
● Significant deviation from original intent of product,
going after a new market
When should you rewrite?
Maturity/Traction of product
● Original product was way off the mark, didn’t
achieve goals (eg no user adoption).
● Original product does not have traction
● Significant deviation from original intent of product,
going after a new market
● Technology holding you back (Mainframe, Visual
Basic overly-customized SFDC or AEM)
When should you rewrite?
Maturity/Traction of product
● Original product was way off the mark, didn’t
achieve goals (eg no user adoption).
● Original product does not have traction
● Significant deviation from original intent of product,
going after a new market
● Technology holding you back (Mainframe, Visual
Basic overly-customized SFDC or AEM)
● You can redefine the business process around the
new system.
When to use the
Strangler Pattern
● Well established product with significant user
base
● A significant risk to revenue streams
● Lots of necessary complexity in your existing
product (eg complex regulatory compliance rules)
● You don’t know the business rules in the existing
system
Learnings/Takeaways
● This sounds technical but don’t compromise User Centred Design
● An opportunity to remove complexity
● Get laser focused on what really matters 80:20
● Don’t rebuild like for like
● When rewriting take an iterative approach
How do you do this in your organization?
Start Small
Put together a business case around a subset of the capabilities that will deliver value over
a matter of months, not years. Frame it as a “no regrets” move with near term benefits.
Quantify Outcomes
Establish a baseline and measure against it (dev cycle time is good, but
cost/revenue/acquisition metrics are even better)
Use one win to build momentum for the next
By starting small, you can prove out the process and build support to keep going. Once you
have a first win, a technical foundation, and understanding of the system, you can “double
down” and scale the effort.
With the support of Pivotal!
email: djulia@pivotal.io
Twitter: @DavidJulia
email: asidqi@pivotal.io
We Love Feedback
What would you like to
hear more about?
What questions do you still
have?
And…
We are hiring
Get in Touch!

More Related Content

What's hot

10 patterns in successful api programs 2
10 patterns in successful api programs 210 patterns in successful api programs 2
10 patterns in successful api programs 2
Apigee | Google Cloud
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 
Onion Architecture
Onion ArchitectureOnion Architecture
Onion Architecture
matthidinger
 

What's hot (20)

Advanced Automation in Your API Lifecycle
Advanced Automation in Your API Lifecycle Advanced Automation in Your API Lifecycle
Advanced Automation in Your API Lifecycle
 
Automated Processes for Even Better APIs
Automated Processes for Even Better APIsAutomated Processes for Even Better APIs
Automated Processes for Even Better APIs
 
Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
Public API
Public APIPublic API
Public API
 
10 patterns in successful api programs 2
10 patterns in successful api programs 210 patterns in successful api programs 2
10 patterns in successful api programs 2
 
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilioapidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
 
API-first development
API-first developmentAPI-first development
API-first development
 
Why APIs Call for 2xs the DevOps
Why APIs Call for 2xs the DevOpsWhy APIs Call for 2xs the DevOps
Why APIs Call for 2xs the DevOps
 
Lessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc SiteLessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc Site
 
Scale a Swagger based Web API (Guillaume Laforge)
Scale a Swagger based Web API (Guillaume Laforge)Scale a Swagger based Web API (Guillaume Laforge)
Scale a Swagger based Web API (Guillaume Laforge)
 
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflixapidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
 
Your API is not a Website!
Your API is not a Website!Your API is not a Website!
Your API is not a Website!
 
Onion Architecture
Onion ArchitectureOnion Architecture
Onion Architecture
 
Scaling API Design
Scaling API DesignScaling API Design
Scaling API Design
 
Scaling API Design - Nordic APIs 2014
Scaling API Design - Nordic APIs 2014Scaling API Design - Nordic APIs 2014
Scaling API Design - Nordic APIs 2014
 
DevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with DynatraceDevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with Dynatrace
 

Similar to Strangle The Monolith: A Data Driven Approach

Using Data Science to Build an End-to-End Recommendation System
Using Data Science to Build an End-to-End Recommendation SystemUsing Data Science to Build an End-to-End Recommendation System
Using Data Science to Build an End-to-End Recommendation System
VMware Tanzu
 
2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris
Eric Ries
 

Similar to Strangle The Monolith: A Data Driven Approach (20)

The Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web ServiceThe Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web Service
 
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
 
Enterprise Architecture in Practice: from Datastore to APIs and Apps
Enterprise Architecture in Practice: from Datastore to APIs and AppsEnterprise Architecture in Practice: from Datastore to APIs and Apps
Enterprise Architecture in Practice: from Datastore to APIs and Apps
 
Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile Methodologies
 
Softwareudvikling og vaerdiskabelse
Softwareudvikling og vaerdiskabelseSoftwareudvikling og vaerdiskabelse
Softwareudvikling og vaerdiskabelse
 
Softwareudvikling og vaerdiskabelse
Softwareudvikling og vaerdiskabelseSoftwareudvikling og vaerdiskabelse
Softwareudvikling og vaerdiskabelse
 
Using Data Science to Build an End-to-End Recommendation System
Using Data Science to Build an End-to-End Recommendation SystemUsing Data Science to Build an End-to-End Recommendation System
Using Data Science to Build an End-to-End Recommendation System
 
IoT Product Design and Prototyping
IoT Product Design and PrototypingIoT Product Design and Prototyping
IoT Product Design and Prototyping
 
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
 
Startup Product Development
Startup Product DevelopmentStartup Product Development
Startup Product Development
 
Apm andre santos
Apm andre santosApm andre santos
Apm andre santos
 
Fast and effective analysis of architecture diagrams
Fast and effective analysis of architecture diagrams Fast and effective analysis of architecture diagrams
Fast and effective analysis of architecture diagrams
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Pixels.camp - Machine Learning: Building Successful Products at Scale
Pixels.camp - Machine Learning: Building Successful Products at ScalePixels.camp - Machine Learning: Building Successful Products at Scale
Pixels.camp - Machine Learning: Building Successful Products at Scale
 
The 6k startup - How to Launch a Startup on a Budget
The 6k startup - How to Launch a Startup on a BudgetThe 6k startup - How to Launch a Startup on a Budget
The 6k startup - How to Launch a Startup on a Budget
 
2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris
 
Agile experiences from the trenches #DBART 2020
Agile experiences from the trenches #DBART 2020Agile experiences from the trenches #DBART 2020
Agile experiences from the trenches #DBART 2020
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary Software
 
Cloud Computing Design Best Practices
Cloud Computing Design Best PracticesCloud Computing Design Best Practices
Cloud Computing Design Best Practices
 
Nitin bondre
Nitin bondreNitin bondre
Nitin bondre
 

More from VMware Tanzu

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Recently uploaded (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Strangle The Monolith: A Data Driven Approach

  • 1. Strangle The Monolith A Data Driven Approach Amjad Sidqi, Associate Director | Pivotal Labs David Julia, Director | Pivotal Labs
  • 3. The Situation The Data Driven Strangler How to Get Started
  • 4. The Situation The Data Driven Strangler How to Get Started
  • 5. The Scenario Additional business features Cost Estimator for medical procedures Financial Penalties for inaccurate estimations
  • 6. Existing Architecture 3rd Party Web UI Monolith Source System 1 Source System 2 Source System 3 … Source System N
  • 7. Peeking Inside the Monolith Main Member-Facing Web UI Account Customization Member Store Secure Messages ...etc. Member Liability Estimator SOAP Service Component Source System 1 Source System 2 Source System 3 … Source System N
  • 8. Peeking Inside the Monolith Main Member-Facing Web UI Account Customization Member Store Secure Messages ...etc. Member Liability Estimator SOAP Service Component Source System 1 Source System 2 Source System 3 … Source System N
  • 9. Commit to the rewrite: A new API that returns the same results & supports “tiered” networks
  • 11. The Strangler Pattern: An Iterative Rewrite Benefits of a rewrite with reduced risk, faster time to value Does require investment in the approach. Strangler Fig Hollow Inside of Strangler Fig
  • 12. Uncertainty Complex flows create anxiety Fundamental assumptions were wrong
  • 14. Strangler is great for decomposition. BUT We couldn’t know what logic to build in our new services.
  • 15. The Data Driven Strangler The Situation How to Get Started
  • 16. Enter The Data Driven Strangler + = ☺
  • 17. Pass-through & Log (in prod) 3rd Party Web UI Monolith Source System 1 Source System 2 Source System 3 Project X Collect Request/Response Data 3rd Party Web UI 1 week
  • 18. It was like turning on the lights
  • 19. Log Both Results & Default 3rd Party Web UI Monolith Source System 1 Source System 2 Source System 3 Project X Collect Request/Response Data for Both Defaulting → No Risk of Bad Result 3rd Party Web UI Monolith Source System 1 Source System 2 Source System 3 Project X Calculation Module 2 weeks
  • 20. Log The Deltas! Automate Analysis Web App UI Monolith Source System 1 Source System 2 Source System 3 Project X Calculation Module 3 weeks
  • 21. We optimized for near real time feedback loops
  • 22. Let’s focus on what matters ...
  • 23. % Error Cases ✖ Avg. $ Diff ✖ Avg. Requests/Day = Possible Financial Impact/Day
  • 24. Starting to strangle stable cases Started to turn off path to old system for some cases Web App UI Monolith Project X Calculation Module Source System 1 Source System 2 Source System 3 5 weeks
  • 25. Possible Financial Impact/Day < Cost to Maintain Legacy When Then...
  • 26.
  • 27. Shut down the Legacy Calculation Path Project X Only call into our new calculation module We’ve now strangled a large part of the monolith! 3rd Party Web UI Source System 1 Source System 2 Source System 3 Project X Calculation Module 13 weeks
  • 28. This made us feel great!
  • 29. The Data Driven Strangler The Situation How to Get Started
  • 30. Did any of that sound familiar? Are you thinking of a rewrite?
  • 31. Is legacy technology holding you back?
  • 32. Data-Driven Strangler is Not a Silver Bullet
  • 33. Options 1. Rewrite from scratch 2. Buy off the shelf 3. Do nothing 4. Containerize 5. Strangler Pattern
  • 34. Build vs Buy → Build & Buy Is it core to your business? Somewhere you want to differentiate? Will the buy option require a lot of customization-- building logic into the system? Often, the best option is both: Build the differentiating parts, “buy” commodity components (eg don’t build your own SendGrid, don’t build Stripe, don’t build your own cloud platform).
  • 35. When to ‘Do nothing’? ● No delivery pressures ● Low strategic importance ● Stable enough if not touched ● Opex costs under control
  • 36. What about Containerizing? Doesn’t actually solve your problem Fragmented business rules Painful deployment processSlow to augment Technical Debt Hard to test
  • 37. When should you rewrite? Maturity/Traction of product ● Original product was way off the mark, didn’t achieve goals (eg no user adoption).
  • 38. When should you rewrite? Maturity/Traction of product ● Original product was way off the mark, didn’t achieve goals (eg no user adoption). ● Original product does not have traction
  • 39. When should you rewrite? Maturity/Traction of product ● Original product was way off the mark, didn’t achieve goals (eg no user adoption). ● Original product does not have traction ● Significant deviation from original intent of product, going after a new market
  • 40. When should you rewrite? Maturity/Traction of product ● Original product was way off the mark, didn’t achieve goals (eg no user adoption). ● Original product does not have traction ● Significant deviation from original intent of product, going after a new market ● Technology holding you back (Mainframe, Visual Basic overly-customized SFDC or AEM)
  • 41. When should you rewrite? Maturity/Traction of product ● Original product was way off the mark, didn’t achieve goals (eg no user adoption). ● Original product does not have traction ● Significant deviation from original intent of product, going after a new market ● Technology holding you back (Mainframe, Visual Basic overly-customized SFDC or AEM) ● You can redefine the business process around the new system.
  • 42. When to use the Strangler Pattern ● Well established product with significant user base ● A significant risk to revenue streams ● Lots of necessary complexity in your existing product (eg complex regulatory compliance rules) ● You don’t know the business rules in the existing system
  • 43. Learnings/Takeaways ● This sounds technical but don’t compromise User Centred Design ● An opportunity to remove complexity ● Get laser focused on what really matters 80:20 ● Don’t rebuild like for like ● When rewriting take an iterative approach
  • 44. How do you do this in your organization? Start Small Put together a business case around a subset of the capabilities that will deliver value over a matter of months, not years. Frame it as a “no regrets” move with near term benefits. Quantify Outcomes Establish a baseline and measure against it (dev cycle time is good, but cost/revenue/acquisition metrics are even better) Use one win to build momentum for the next By starting small, you can prove out the process and build support to keep going. Once you have a first win, a technical foundation, and understanding of the system, you can “double down” and scale the effort.
  • 45. With the support of Pivotal!
  • 46. email: djulia@pivotal.io Twitter: @DavidJulia email: asidqi@pivotal.io We Love Feedback What would you like to hear more about? What questions do you still have? And… We are hiring Get in Touch!

Editor's Notes

  1. Hey everyone, my name is Simon Duffy. I’m currently a product manager at Pivotal Labs and have been working with enterprise clients and startups and back home in Australia for about 13 years of which I’ve been building products for about the last 8. I was the product manager helping build the new app that is the protagonist of the case study that we will be exploring today.
  2. Low confidence Reduced Velocity
  3. David and I will be presenting a case study on how we approached a pretty common technical challenge in the enterprise today. That is, how to incrementally and with minimal risk perform a legacy monolith application re-write to take advantage of modern architecture and cloud infrastructure as well as building out some new business features. We will provide an overview of our product the challenge we found ourselves in how we pivoted to data driven delivery approach steps on how we executed this We’ll wrap with key learnings I will primarily talk to product management related discussion points and David the implementation and engineering.
  4. Let’s get into it. A quick raise of hands, how many of you in your careers have ever replaced a legacy system? Ok… so some of this might sound pretty familiar.
  5. So in our scenario we were working with a large health insurance company tasked with extending the capability of a component of the monolith. Our product would estimate the cost an individual would pay for medical procedures and the impact would have on your health insurance coverage. Example: if you need a knee replacement, here’s how much it will cost at each of the providers within a given location and here’s what it means for your health insurance annual deduction amount, coinsurance etc. The accuracy of the estimate was very important. If the procedure estimate was $100, a member went to the doctor, and the bill ended up being $1500, then the insurance company would typically pay the difference to the member so they weren’t left out of pocket.
  6. Existing app
  7. Existing app
  8. Existing app
  9. For further context, the monolith programmers had long since left the company, there is no documentation and we are heavily reliant on a single expert who has worked with the system for years. We had a level understanding of the monolith to know that change is super risky and continued investment in old technology doesn’t make sense. So we commit to a re-write to a cloud native app that enables us to incrementally build out our new required features.
  10. I would work very closely with the expert and she would describe the behaviour of the system and surface the detailed logic of how the member cost liability was calculated for each provider. She would also describe how the various systems passed through information and what each of the various fields represented. Due to the complexity of the calculations we were extremely lucky to have a 20 year expert on our team otherwise it would have been almost impossible to start. Myself and the expert would work together and break these calculations down into small user stories that our engineers would develop and then we would test the result of the calculation manually against the result from the monolith. And this was working well as the team was ramping up. After a couple of months, we had the core happy-path flows through the app developed. It was as we were unpacking the nuance of the alternate flows through the system that things started to get tricky.
  11. Existing app
  12. I recall on one day we were looking at a 6000 line xml response from a source system that included information about the relationship between a member and what insurance policy they had. We had been using a particular field as a key element in defining that relationship and after troubleshooting some issues we realized that we were using that field incorrectly. This was such a basic field. Gee...If we got this wrong….how many other things had we got wrong. Over the proceeding weeks other similar scenarios started to surface that ultimately made us question our detailed understanding of the all the different calculation permutations.
  13. So we are a few months into the re-write and our understanding of our product has deepened. A combination of unknown business rules, large lead times on QA and lack of robust testing was causing nervousness. So one evening a few of us were sitting around and sharing with David our frustrations and started to think about how we could approach this differently. 8.30
  14. Strangler is very well suited when there is a clear understanding of how to breakdown the monolith and you have high confidence in: What the business logic is that is built in the new That you can ensure MECE (mutually exclusive and collectively exhaustive) routing rules We didn’t have either of these. Firstly, there were calculation complexities being newly discovered and secondly, due to these complexities we didn’t think we could ensure MECE routing. Sure - we could have spent the effort in meticulously analysing the monolith codebase to etch out all these scenarios and equally what the routing rules were. But we didn’t want to do that, and so we thought about how we can build a system that will surface that information to us.
  15. 11 mins
  16. This initial step provided a huge amount of value to understand the product we were building and gave us 2 quick wins. Firstly, we gained detailed insight into the utilization of the monolith. We could clearly identify all the different types of requests for different calculation types. We were finding new scenarios that were not previously understood and we could sharpen our feature prioritization by addressing the calculations for high volume request types. Secondly, We now had a vast set of test cases to leverage that represented real Production data. So less time and effort spent on test data prep.
  17. Automation of comparing the results between systems was a big efficiency gain. We could now query our database for cases marked in error and further deep dive into those, rather than manually assessing all cases. In effect, we were testing, at scale, in real time in Production without putting the results for the user at risk! It also allowed us to produce aggregate metrics on our performance that was reflective of the value our team wanted to track.
  18. What are we looking at here. This is a picture of a key metric that we were tracking during our delivery. We are tracking the percentage of matched cases on the vertical axis and time on the horizontal axis. There are numbers on each of the post-it notes that is the % match of cases that matched for a day. Our goal was to move up and to the right. Ie, we would have a higher rate of calculation matches between the old and new over time. As this metric was produced, it immediately became the metric that we all cared about. Velocity, volatility, story cycle time…. While these may be good reference points to assess our team’s performance, how much of that actually mattered if we weren’t delivering accurate calculation outcomes. So, we had a better metric that was more reflective of the value we were delivering.
  19. Our metric allowed us to engage in a really cool discussion with our stakeholders on the financial risk of deploying our app into Production. We were able to put a dollar value on what we thought it would cost to deploy into Prod and turn off the monolith by applying the following formula….
  20. After progressively strangling calculations of high confidence, we reached a point where our stats were telling us we were hitting about 98% accuracy between old and new. This was the threshold where the possible financial impact was close to the cost to maintain the legacy monolith component. We also knew that we were overstating the financial risk as were confident there were a few more false positives in there that hadn’t yet surfaced. So we started to talk about completely shutting down the monolith calculation capability. Typically legacy system cutovers is a big deal. However, this turned out to be a pretty simple decision. Referencing our metric earlier we had a clear view on how to make the decision. Is it cheaper to accept the possible financial impact of paying out differences to members or maintain the monolith?
  21. It was time to ‘shut it down’. By it, I’m referring to the member calculation component of the legacy monolith.
  22. REFERENCE: WHAT ARE WE GOING TO TALK ABOUT
  23. Example: Real Estate Valuation Reporting System Built logic, core flows, etc. “Bought” PDF Generation Software. PCF Example on platform side. AWS + Full-time employees to manage AWS, write chef scripts, etc. on each team. VS Focusing on differentiators: Your apps
  24. Example of ETDB rewrite SFDC, No traction and Pivot from original idea