Slide 1

Slide 1 text

@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

Slide 32

Slide 32 text

@duffleit Decrease the Cycle Time 👩🦰 👧 👱 🧑 👧 👧 👧 🧑 🧑 👧 🧑 🧑 Products Categories Users Orders Distribtued Monolith

Slide 33

Slide 33 text

@duffleit Product Search Product ORDERing Prodcut Delivery Modularize Around Customer Journeys

Slide 34

Slide 34 text

@duffleit Event Storming Event Storming

Slide 35

Slide 35 text

@duffleit Product Search Product ORDERing Prodcut Delivery Modularize Around Customer Journeys Pivotal Events

Slide 36

Slide 36 text

@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

Slide 44

Slide 44 text

@duffleit Product Search Prodcut Delivery Service 👧 🧑 🧑 🧑 👧 👧 👩🦰 👧 👱 Product ORDERing Independent Deployability Higher Resilience Dynamic Scaling Decrease Failure Rate

Slide 45

Slide 45 text

@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

Slide 53

Slide 53 text

@duffleit Product Search Prodcut Delivery Service 👧 🧑 🧑 🧑 👧 👧 👩🦰 👧 👱 Product ORDERing Independent Deployability Higher Resilience Dynamic Scaling

Slide 54

Slide 54 text

@duffleit Strangler Fig Pattern

Slide 55

Slide 55 text

@duffleit Strangler Fig Application. — Martin Fowler’s Bliki https://martinfowler.com/bliki/ StranglerFigApplication.html

Slide 56

Slide 56 text

@duffleit Product Search Prodcut Delivery Service 👧 🧑 🧑 🧑 👧 👧 👩🦰 👧 👱 Product ORDERing Independent Deployability Higher Resilience Dynamic Scaling API Reverse Proxy

Slide 57

Slide 57 text

@duffleit Product Search Prodcut Delivery Service 👧 🧑 🧑 🧑 👧 👧 👩🦰 👧 👱 Product ORDERing Independent Deployability Higher Resilience Dynamic Scaling API Reverse Proxy

Slide 58

Slide 58 text

@duffleit 👧 🧑 🧑 Payment Serivce 👩🦰 👧 FrauD Logic

Slide 59

Slide 59 text

@duffleit User Fraud Data Readers Writers Readers Writers API FrauD Service 👧 🧑 🧑 👩🦰 👧 Payment Serivce

Slide 60

Slide 60 text

@duffleit Payment Serivce FrauD Service User Fraud Data Readers Writers Readers Writers API 👧 🧑 🧑

Slide 61

Slide 61 text

@duffleit Payment Serivce FrauD Service User Fraud Data Readers Writers Readers Writers API 👧 🧑 🧑 Downtime ⏳

Slide 62

Slide 62 text

@duffleit Payment Serivce User Fraud Data Readers Writers Readers Writers API Downtime ⏳

Slide 63

Slide 63 text

@duffleit Readers Writers Readers Writers API User Fraud Data 🔥 Payment Serivce

Slide 64

Slide 64 text

@duffleit Readers Writers Readers Writers API User Fraud Data 🔥 Payment Serivce

Slide 65

Slide 65 text

@duffleit User Fraud Data Readers Writers API 🔥 Readers Writers Payment Serivce

Slide 66

Slide 66 text

@duffleit User Fraud Data Readers Writers API Readers Writers Payment Serivce Event Inception Pattern 🌊

Slide 67

Slide 67 text

@duffleit Event User Fraud Data Readers Writers Readers Writers API User Fraud Data CDC Payment Serivce Event Inception Pattern 🌊

Slide 68

Slide 68 text

@duffleit squer.link/cdc

Slide 69

Slide 69 text

@duffleit Event User Fraud Data Readers Writers Readers Writers API User Fraud Data CDC Payment Serivce Event Inception Pattern 🌊

Slide 70

Slide 70 text

@duffleit Event User Fraud Data Readers Readers Writers API User Fraud Data Event Writers Payment Serivce Event Inception Pattern 🌊

Slide 71

Slide 71 text

@duffleit Event User Fraud Data Readers Writers Readers Writers API User Fraud Data Event Payment Serivce Transitional Architecture 👷

Slide 72

Slide 72 text

@duffleit Event User Fraud Data Readers Readers Writers API User Fraud Data API Payment Serivce Legacy Mimic Pattern 🤡 Writers

Slide 73

Slide 73 text

@duffleit Event User Fraud Data Readers Writers Readers Writers API User Fraud Data Event 🔥 Payment Serivce Event Inception Pattern 🌊

Slide 74

Slide 74 text

@duffleit Event User Fraud Data Readers Readers Writers API User Fraud Data Event Writers 👷 Payment Serivce

Slide 75

Slide 75 text

@duffleit Event User Fraud Data Readers Writers Readers Writers API User Fraud Data Event Payment Serivce

Slide 76

Slide 76 text

@duffleit Event User Fraud Data Readers Writers API User Fraud Data Event Readers Writers Payment Serivce Transitional Architecture 👷

Slide 77

Slide 77 text

@duffleit Event User Fraud Data Readers Writers API User Fraud Data Event Readers Writers Payment Serivce Transitional Architecture 👷 Feature Flags 🚦

Slide 78

Slide 78 text

@duffleit Transitional Architecture 👷 Legacy Readmodel 📒

Slide 79

Slide 79 text

@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

Slide 98

Slide 98 text

@duffleit Transitional Architecture 👷 Event Inception Pattern 🌊 Legacy Mimic Pattern 🤡 Feature Flags 🚦 Canary Releases 🦜 Dark Launching 🥷 Scientist Pattern 👨🔬 Dual Transformation 🪢

Slide 99

Slide 99 text

@duffleit DAVID LEITNER Coding Architect 👋 [email protected] 🌎 @duffleit