Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[VDB23] The Hitchhiker's guide to Software Architecture Design

[VDB23] The Hitchhiker's guide to Software Architecture Design

Designing a new platform is always tricky to set up.

How to start? What is the best strategy to adopt while designing a platform? What kind of architecture should we deploy: event streaming, orchestration, or choreography?

For a brand-new platform: "Donut @ Home", we will proceed a live architecture study.

After analysing the customer needs, brainstorming, and exchanging our ideas, we will choose among all the potential solutions the *least worst* option.

You will be asked to validate our design and the different implementation examples.

At the end of this talk, you will have tips and tricks for thinking about it and starting working on architecture studies in complete peace of mind.

Alexandre Touret

May 23, 2023
Tweet

More Decks by Alexandre Touret

Other Decks in Programming

Transcript

  1. We design payments technology that powers the growth of millions

    of businesses around the world. Who are we? 3 | @worldlinetech
  2. 4

  3. 6

  4. 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
  5. 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
  6. 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
  7. 19 In your opinion? 1 ’ ? Or ë ’

    ? 2 Delivery Payment Payment Delivery
  8. When to use them? Monolith SOA Orchest- ration Event Driven

    Micro- services Evolutivity ▲ ▲▲▲ ▲ ▲▲▲▲▲ ▲▲▲▲▲ Scalability ▲ ▲▲▲ ▲▲▲▲ ▲▲▲▲▲ ▲▲▲▲▲ Modularity ▲ ▲▲▲▲ ▲▲▲ ▲▲▲▲ ▲▲▲▲▲ Cost ▲▲▲▲▲ ▲▲▲▲ ▲ ▲▲▲ ▲▲▲ Performance ▲▲ ▲▲▲ ▲▲ ▲▲▲▲▲ ▲▲ Simplicity ▲▲▲▲▲ ▲▲▲ ▲ ▲ ▲ Testability ▲▲ ▲▲▲ ▲ ▲▲ ▲▲▲▲ Fault tolerance ▲ ▲▲▲▲ ▲▲▲ ▲▲▲▲▲ ▲▲▲▲▲ 30
  9. 31

  10. 32

  11. 33

  12. 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
  13. 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
  14. Some good practices Risk analysis at different levels Accept new

    points of view When to innovate? Organizational impacts 38
  15. 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
  16. ’ 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!
  17. 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
  18. ’ ! 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 |