Strangle The Monolith A Data Driven Approach Amjad Sidqi, Associate - - PowerPoint PPT Presentation

strangle the monolith
SMART_READER_LITE
LIVE PREVIEW

Strangle The Monolith A Data Driven Approach Amjad Sidqi, Associate - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Strangle The Monolith

A Data Driven Approach

Amjad Sidqi, Associate Director | Pivotal Labs David Julia, Director | Pivotal Labs

slide-2
SLIDE 2

HARD TO CHANGE

slide-3
SLIDE 3

The Situation The Data Driven Strangler How to Get Started

slide-4
SLIDE 4

The Situation The Data Driven Strangler How to Get Started

slide-5
SLIDE 5

The Scenario

Additional business features Cost Estimator for medical procedures Financial Penalties for inaccurate estimations

slide-6
SLIDE 6

Existing Architecture

3rd Party Web UI Monolith Source System 1 Source System 2 Source System 3 … Source System N

slide-7
SLIDE 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

slide-8
SLIDE 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

slide-9
SLIDE 9

Commit to the rewrite: A new API that returns the same results & supports “tiered” networks

slide-10
SLIDE 10

Initial approach

The expert leads the way

slide-11
SLIDE 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

slide-12
SLIDE 12

Uncertainty

Complex flows create anxiety Fundamental assumptions were wrong

slide-13
SLIDE 13

Pssst… This isn’t working

slide-14
SLIDE 14

Strangler is great for decomposition. BUT We couldn’t know what logic to build in our new services.

slide-15
SLIDE 15

The Data Driven Strangler The Situation How to Get Started

slide-16
SLIDE 16

Enter The Data Driven Strangler

+

= ☺

slide-17
SLIDE 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

slide-18
SLIDE 18

It was like turning on the lights

slide-19
SLIDE 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

slide-20
SLIDE 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

slide-21
SLIDE 21

We optimized for near real time feedback loops

slide-22
SLIDE 22

Let’s focus on what matters ...

slide-23
SLIDE 23

% Error Cases ✖ Avg. $ Diff ✖ Avg. Requests/Day = Possible Financial Impact/Day

slide-24
SLIDE 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

slide-25
SLIDE 25

Possible Financial Impact/Day < Cost to Maintain Legacy When Then...

slide-26
SLIDE 26
slide-27
SLIDE 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

slide-28
SLIDE 28

This made us feel great!

slide-29
SLIDE 29

The Data Driven Strangler The Situation How to Get Started

slide-30
SLIDE 30

Did any of that sound familiar? Are you thinking of a rewrite?

slide-31
SLIDE 31

Is legacy technology holding you back?

slide-32
SLIDE 32

Data-Driven Strangler is Not a Silver Bullet

slide-33
SLIDE 33

Options

1. Rewrite from scratch 2. Buy off the shelf 3. Do nothing 4. Containerize 5. Strangler Pattern

slide-34
SLIDE 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

  • wn cloud platform).
slide-35
SLIDE 35

When to ‘Do nothing’?

  • No delivery pressures
  • Low strategic importance
  • Stable enough if not touched
  • Opex costs under control
slide-36
SLIDE 36

What about Containerizing?

Doesn’t actually solve your problem

Fragmented business rules Painful deployment process Slow to augment Technical Debt Hard to test

slide-37
SLIDE 37

When should you rewrite?

Maturity/Traction of product

  • Original product was way off the mark, didn’t

achieve goals (eg no user adoption).

slide-38
SLIDE 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
slide-39
SLIDE 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

slide-40
SLIDE 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)

slide-41
SLIDE 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.

slide-42
SLIDE 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

slide-43
SLIDE 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
slide-44
SLIDE 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.

slide-45
SLIDE 45

With the support of Pivotal!

slide-46
SLIDE 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!