Slide 1

Slide 1 text

VoxxedDaysBrussels 2023 The Hitchhiker's guide to Software Architecture Design Raphaël SEMETEYS - Alexandre TOURET

Slide 2

Slide 2 text

Alexandre TOURET Software Architect @touret_alex blog.touret.info Raphaël SEMETEYS Software Architect @RaphaelSemeteys blog.worldline.tech Who are we? 2

Slide 3

Slide 3 text

We design payments technology that powers the growth of millions of businesses around the world. Who are we? 3 | @worldlinetech

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

Business View 5

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

SLOs (Service Level Objectives) Availability, TTR, Data loss Compliancy? Cloud vs On-premise Requirements 7

Slide 8

Slide 8 text

Fill and store every key architectural decision as close as possible to the code Architecture Decision Record # Title # Status - [ ] proposed - [X] accepted - [ ] rejected - [ ] deprecated - [ ] superseded # Context # Decision # Consequences # ADR01 – Cloud hosting # Status - [X] proposed - [ ] accepted - [ ] rejected - [ ] deprecated - [ ] superseded # Context Capacity of the platform capacity must adapt according to Donut@Home success # Decision Cloud hosting to optimize pay-per-use and intrinsic scalability # Consequences Cloud-native architecture (12 factors) 8

Slide 9

Slide 9 text

Risk Analysis? Source: riskstorming.com 9

Slide 10

Slide 10 text

Low 1 Medium 2 High 3 Low 1 Medium 2 High 3 - Unavailability of middleware - Database access error - SAN error - VLAN network error Probability Impact 10

Slide 11

Slide 11 text

Business view wrap-up • Donut design and delivery application User needs • Retrieved Time Objective, Recovery Point Objective: ? • TTR: 90% of the transactions up to 2sec • Availability: 95% • Number of users: 500 000 / day → Currently a little bit foggy • Ability to easily integrate new features Requirements • Compliant with banking and payment standards • GDPR compliant Compliancy • Track every decision into ADRs • Look into and write risks to deal with (or not) Last but not least 11

Slide 12

Slide 12 text

Architecture Approach 12

Slide 13

Slide 13 text

c4model.com C4 13

Slide 14

Slide 14 text

C4 System View 14

Slide 15

Slide 15 text

C4 Container View 15

Slide 16

Slide 16 text

Functional View 16

Slide 17

Slide 17 text

Functional view Alexandre’s… 17

Slide 18

Slide 18 text

Functional view …and Raphaël’s 18

Slide 19

Slide 19 text

19 In your opinion? 1 ’ ? Or ë ’ ? 2 Delivery Payment Payment Delivery

Slide 20

Slide 20 text

Functional view In the end 20

Slide 21

Slide 21 text

To sum-up Design the architecture through several views Confront different viewpoints Avoid « Not Invented Here » 21

Slide 22

Slide 22 text

Application View 22

Slide 23

Slide 23 text

Main characteristics of an architecture Evolutivity Modularity Cost Performance Simplicity Testability Fault tolerance 23

Slide 24

Slide 24 text

Types of architecture 24| Monolith SOA Orchestration Event Driven Micro services

Slide 25

Slide 25 text

Monolith 25

Slide 26

Slide 26 text

SOA 26

Slide 27

Slide 27 text

Orchestration 27

Slide 28

Slide 28 text

Event Driven 28

Slide 29

Slide 29 text

Microservices 29

Slide 30

Slide 30 text

When to use them? Monolith SOA Orchest- ration Event Driven Micro- services Evolutivity ▲ ▲▲▲ ▲ ▲▲▲▲▲ ▲▲▲▲▲ Scalability ▲ ▲▲▲ ▲▲▲▲ ▲▲▲▲▲ ▲▲▲▲▲ Modularity ▲ ▲▲▲▲ ▲▲▲ ▲▲▲▲ ▲▲▲▲▲ Cost ▲▲▲▲▲ ▲▲▲▲ ▲ ▲▲▲ ▲▲▲ Performance ▲▲ ▲▲▲ ▲▲ ▲▲▲▲▲ ▲▲ Simplicity ▲▲▲▲▲ ▲▲▲ ▲ ▲ ▲ Testability ▲▲ ▲▲▲ ▲ ▲▲ ▲▲▲▲ Fault tolerance ▲ ▲▲▲▲ ▲▲▲ ▲▲▲▲▲ ▲▲▲▲▲ 30

Slide 31

Slide 31 text

31

Slide 32

Slide 32 text

32

Slide 33

Slide 33 text

33

Slide 34

Slide 34 text

34 or or or

Slide 35

Slide 35 text

35 or or or

Slide 36

Slide 36 text

It's a capability of the platform more than just a bunch of tools... Think Observability by Design! 36 Visualize Alert Metrics Traces Logs Global Dashboard Technical console for advanced logs Prometheus ecosystem Elastic ecosystem CaaS specific OpenTelemetry ecosystem Legacy

Slide 37

Slide 37 text

Low 1 Medium 2 High 3 Low 1 Medium 2 - Response times are too high (> SLO) - Unavailability of external systems - Unobservable platform High 3 - Unavailability of middleware - Database access error - SAN error - VLAN network error Probability Impact 37

Slide 38

Slide 38 text

Some good practices Risk analysis at different levels Accept new points of view When to innovate? Organizational impacts 38

Slide 39

Slide 39 text

Infrastructure View 39

Slide 40

Slide 40 text

Private or Public Cloud? 40

Slide 41

Slide 41 text

How to use the Cloud? 41 PaaS CaaS IaaS SaaS Consume external services Use managed services Deploy containers Deploy virtual machines Payment … Quarkus Spring Boot MongoDB PostgreSQL Kafka APIM IAM Observability

Slide 42

Slide 42 text

’ q - Involve Business, Devs, Ops, Finance, Experts - Formalize commitment if necessary - Possible validation steps Architecture validation 42 Regarding infrastructure Verification of feasibility or technical hypotheses (POC) - Non Functional Requirements - Sizing elements - Iterative work!

Slide 43

Slide 43 text

Conclusion 43 |

Slide 44

Slide 44 text

46 | Approach Best practices & tools • Step back • Remain open-minded • Share w/ all the stakeholders • Formalise and trace • Collaborate & iterate • Align different views • Blueprints & Patterns • Technical roadmap • Keep pragmatic Attitude

Slide 45

Slide 45 text

Thanks for your feedback! https://bit.ly/vdb_archi 47 |

Slide 46

Slide 46 text

’ ! Follow & get in touch @RaphaelSemeteys linkedin.com/in /raphaelsemeteys blog.worldline.tech @WorldlineTech Follow our tech team: Follow us: @touret_alex linkedin.com/in /atouret 48 |

Slide 47

Slide 47 text

Explore our jobs in tech: careers.worldline.com Want to shape how the world pays and get paid? 49 |