@duffleit
Patterns Of
Architectural
Modernization
Beyond Strangler Fig
Slide 2
Slide 2 text
@duffleit
DAVID LEITNER
Coding Architect
👋 [email protected]
🌎 @duffleit
Slide 3
Slide 3 text
@duffleit
Where is all this
legacy coming from?
Slide 4
Slide 4 text
@duffleit
🖼
🏢
👾
🚀
🗺
🧑💻
💭
👩🦰 👦 🧑
💭
🌱
Slide 5
Slide 5 text
@duffleit
🖼
🏢
👾
🚀
🗺
🌱
🧑💻
💭
👩🦰 👦 🧑
💭
Slide 6
Slide 6 text
@duffleit
Slide 7
Slide 7 text
@duffleit
Software
Slide 8
Slide 8 text
@duffleit
Software
Slide 9
Slide 9 text
@duffleit
Software
🖼
Slide 10
Slide 10 text
@duffleit
🖼
🏢
👾
👩🦰 👦 🧑
Software
Slide 11
Slide 11 text
@duffleit
Everything constantly changes in
unpredictable ways; that's the
main constant in software.
— Neal Ford
Slide 12
Slide 12 text
@duffleit
Software
🖼
🏢
👾
👩🦰 👦 🧑
GAP
✨
Slide 13
Slide 13 text
@duffleit
1996:
Technical Debt too high in Version 4
Complete Rewrite
2000:
Netscape Version 6 Released
The story of Netscape
Slide 14
Slide 14 text
@duffleit
If you do a big bang migration,
the only thing you're certain of
is a big bang.
— Martin Fowler
Slide 15
Slide 15 text
@duffleit
GAP
✨
Software
Slide 16
Slide 16 text
@duffleit
Software
Slide 17
Slide 17 text
@duffleit
Software
Slide 18
Slide 18 text
@duffleit
Constant architectural evolution and
modernization are key to keeping engineering
organizations effective in delivering value.
As our constraints and the environment, we
operate in are constantly changing.
Slide 19
Slide 19 text
@duffleit
Even if you make consistently
good architecture decisions, the
assumptions your decisions are
based on will change over time.
— Nick Tune
Slide 20
Slide 20 text
@duffleit
Software
Slide 21
Slide 21 text
@duffleit
Current State
Target State
Shift of Business
Shift of Technology
Reduction of Costs
Organizational Change
Shift Of Pace
Slide 22
Slide 22 text
@duffleit
Define what your are
optimizing for
Shift of Business Shift of Technology Reduction of Costs
Organizational Change Shift Of Pace
and how you can measure it.
Slide 23
Slide 23 text
@duffleit
Define what your are
optimizing for
Shift of Business Shift of Technology Reduction of Costs
Organizational Change Shift Of Pace
and how you can measure it.
Slide 24
Slide 24 text
@duffleit
Define what your are
optimizing for
Shift of Business Shift of Technology Reduction of Costs
Organizational Change Shift Of Pace
and how you can measure it.
Slide 25
Slide 25 text
@duffleit
Define what your are
optimizing for
Shift of Business Shift of Technology Reduction of Costs
Organizational Change Shift Of Pace
and how you can measure it.
on
Fitness Functions
Slide 26
Slide 26 text
@duffleit
Current State
Target State
Shift of Business
Shift of Technology
Reduction of Costs
Organizational Change
Shift Of Pace
Why?
Target Picture
Measure
In Iterations
Slide 27
Slide 27 text
@duffleit
Divide And
Conquer
Finding
Boundaries
Slide 28
Slide 28 text
@duffleit
Business Capability Map
Slide 29
Slide 29 text
@duffleit
Improve the
Modularisation
Maintainability
Adaptability
Products
Categories
Users
Orders
Slide 30
Slide 30 text
@duffleit
Decrease the
Cycle Time
Products
Categories
Users
Orders
Slide 31
Slide 31 text
@duffleit
Decrease the
Cycle Time
👩🦰 👧
👱
Products
Categories
Users
Orders
@duffleit
Product
Search
Prodcut
Delivery
Structure Around
Customer Journeys
Service
👧 🧑
🧑
🧑 👧
👧
👩🦰 👧
👱
Service
Product
ORDERing
Service
Slide 37
Slide 37 text
@duffleit
Organizations which design are
constrained to produce designs
which are copies of the
communication structures of
these organizations.
— Melvin Conway
Slide 38
Slide 38 text
@duffleit
Product
Search
Team
👧 🧑
🧑
Inverse Conway
Maneuver
Slide 39
Slide 39 text
@duffleit
Product
Search
Team
👧 🧑
🧑
Inverse Conway
Maneuver
Slide 40
Slide 40 text
@duffleit
Nick Tune
the-engineering.club
Slide 41
Slide 41 text
@duffleit
👧 🧑
🧑
Slide 42
Slide 42 text
@duffleit
ALL MONOLITHS MUST DIE
Slide 43
Slide 43 text
@duffleit
Good & Bad Bank
Strategy
New web Banking
Solution
✨
20% of the
functionality
That is Used by
80% of the users
Legacy web
Banking Solution
🧟
80% of the
functionality
That is Used by
20% of the users
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
Slide 46
Slide 46 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
Distributed
MOnolith
WelL-Structured
MOdulith
Slide 47
Slide 47 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
WelL-Structured
Modulith
Distributed
Monolith
Distributed
Self-Sufficient
Services
Independent
Deployability
achieved higher
Resilience
Slide 48
Slide 48 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
WelL-Structured
Modulith
Distributed
Monolith
Distributed
Self-Sufficient
Services
Decomposition Fallacy
Slide 49
Slide 49 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
WelL-Structured
Modulith
Distributed
Monolith
Distributed
Self-Sufficient
Services
Decomposition Fallacy
Slide 50
Slide 50 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
WelL-Structured
Modulith
Distributed
Monolith
Distributed
Self-Sufficient
Services
Decomposition Fallacy
Slide 51
Slide 51 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
WelL-Structured
Modulith
Distributed
Monolith
Distributed
Self-Sufficient
Services
Decomposition Fallacy
Slide 52
Slide 52 text
@duffleit
Deployment Units
Monolithic Distributed
Modularisa3on
Bad
Well
Big Ball
Of Mud
WelL-Structured
Modulith
Distributed
Monolith
Distributed
Self-Sufficient
Services
Decomposition Fallacy
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
90%
10%
Canary
Releases
🦜
Slide 80
Slide 80 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
80%
20%
Canary
Releases
🦜
Slide 81
Slide 81 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
50%
50%
Canary
Releases
🦜
Slide 82
Slide 82 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
100%
Canary
Releases
🦜
Slide 83
Slide 83 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
100%
0%
Dark
Launching
🥷
Slide 84
Slide 84 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
Scientist
Pattern
👨🔬
Slide 85
Slide 85 text
@duffleit
Scientist: Measure Twice,
Cut Once
— Github
https://github.blog/2016-02-03-scientist/
Slide 86
Slide 86 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
Scientist
Pattern
👨🔬
Slide 87
Slide 87 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
Scientist
Pattern
👨🔬
Slide 88
Slide 88 text
@duffleit
Slide 89
Slide 89 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
Scientist
Pattern
👨🔬
Slide 90
Slide 90 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
New Frau
Product
Old Frau
Product
Dual
Transformation
🪢
Slide 91
Slide 91 text
@duffleit
Transformation A:
Improve the current solution
Transformation B:
Rebuild a new solution from scratch
Slide 92
Slide 92 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Payment
Serivce
Slide 93
Slide 93 text
@duffleit
Event
User Fraud
Data
Readers
Writers
API
User Fraud
Data
Event
Readers
Writers
Incrementally
Incrementally
Incrementally
Slide 94
Slide 94 text
@duffleit
So many thing to consider,
Let’s sum up.
Slide 95
Slide 95 text
@duffleit
Architecture modernization is like
open-heart surgery on your legacy system.
Ensure your systems stays alive.
Slide 96
Slide 96 text
@duffleit
Architecture modernization is like
open-heart surgery on your legacy system.
Ensure it stays alive by incremental adoptions.
Clarify what to
optimize for
Streamline your
target picture
Incrementally move to
this target picture
Fine a way to
Measure it
As Long as it
brings Value
Slide 97
Slide 97 text
@duffleit
Architecture modernization is like
open-heart surgery on your legacy system.
Ensure it stays alive by incremental adoptions.
Clarify what to
optimize for
Streamline your
target picture
Incrementally move to
this target picture
Fine a way to
Measure it
As Long as it
brings Value