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

[LYON JUG 2023] Améliorer les compétences et les infrastructures avec les katas d'architecture

[LYON JUG 2023] Améliorer les compétences et les infrastructures avec les katas d'architecture

Comment devenir architecte ? Comment progresser dans ce domaine ? A quoi reconnaît-on une bonne ou une mauvaise architecture ? Il existe certes un grand nombre d' ouvrages et formations sur le sujet, mais le mieux est quand même de pratiquer !

Une solution à ce problème pourrait être donc de s’entraîner régulièrement sur des sujets différents pour gagner en expérience.

Pour rendre l’apprentissage de l’architecture et de la conception plus empirique - et plus ludique, nous allons découvrir les Katas d’Architecture au travers d’un retour d’expérience. Nous découvrirons comment les mettre en œuvre ainsi que les bénéfices que j’en ai tirés.

Alexandre Touret

February 21, 2023
Tweet

More Decks by Alexandre Touret

Other Decks in Technology

Transcript

  1. Architecture & Microservices
    Bienvenue au LYONJUG

    View Slide

  2. Sponsors :
    Partenaires :

    View Slide

  3. Evènements à venir
    ● Mercredi 21 Février
    DDD: Dessine moi une patate (Crafters)
    ● Jeudi 23 Février
    Retours de la PyConFR 2023
    ● Mercredi 15 Mars
    9 mois de prod sans avoir codé de back-end &
    Mob Programming 🤯 (JS)
    ● Mardi 22 Mars
    jOOQ, la joie du SQL
    Par Kevin Davin

    View Slide

  4. Prochains Talks :
    Proposez vos sujets !
    https://www.meetup.com/fr-FR/lyonjug/
    @LyonJUG
    http://www.lyonjug.org
    [email protected]

    View Slide

  5. Architecture Katas and Microservices
    Par Alexandre Touret
    Architecture microservices et cohérence des
    données : mais on fait comment pour de vrai
    ?
    Par Jean-Francois James

    View Slide

  6. Améliorer les compétences et
    les infrastructures avec les
    katas d'architecture
    21 février 2023

    View Slide

  7. Alexandre Touret
    Architecte / Développeur
    #Java #API #CI #Cloud
    #Software_Craftsmanship
    9
    https://blog.touret.info
    @touret_alex
    @[email protected]

    View Slide

  8. Histoire d’un
    développeur
    Toute ressemblance avec des personnes existantes ou
    ayant existé...
    1.

    View Slide

  9. 11

    View Slide

  10. 12

    View Slide

  11. 13
    All architecture is design but not all
    design is architecture. Architecture
    represents the significant design
    decisions that shape a system, where
    significant is measured by cost of
    change.
    Grady Booch

    View Slide

  12. 14

    View Slide

  13. 15

    View Slide

  14. 16
    bit.ly/lyonjug-sondage1

    View Slide

  15. 17

    View Slide

  16. 18
    So how are we supposed to get great
    architects, if they only get the chance
    to architect fewer than a half-dozen
    times in their career?"
    Ted Neward

    View Slide

  17. Les katas
    2.

    View Slide

  18. Il s'agit de mouvements codifiés à partir
    de l'expérience de combattants dont les
    noms ont été perdus. Les katas sont par
    la suite devenus des outils de
    transmission de techniques, mais aussi
    de principes, de combat.
    20

    View Slide

  19. Les katas
    d’architecture
    Du coding dojo pour architectes
    3.

    View Slide

  20. On constitue les équipes en “brassant” les populations
    Pas besoin d’ordinateur
    → du papier et des marqueurs suffisent
    On essaye de se focaliser sur le formalisme à adopter
    22
    Phase 1 : Warm-up (5mn)

    View Slide

  21. Le modèle C4

    View Slide

  22. 24
    User
    My wonderful system
    Enables magic
    API Management
    Identifies/authorizes customers requests
    Calls API endpoint
    External System
    User
    Call / Usage
    System Internal
    System
    Chart legend:
    FILE GATEWAY
    Sends files
    Fetchs files regularly
    S3 STORAGE
    Stores files

    View Slide

  23. 25
    External System
    User
    Call / Usage
    System Internal
    System
    Chart legend:
    User
    My API GATEWAY
    API Proxy
    Runtime:[Api Gateway]
    Mediation to back end
    OAUTHv2 Provider
    Runtime:[Api Gateway]
    Identifies and
    authorizes
    (1) API Call
    [JSON/HTTPS]
    My Wonderful System
    My App
    Runtime:[K8S,Docker,Spring
    Boot,JAVA11]
    (2) API Call
    [JSON/HTTPS]
    (3) Queries and stores datas
    [mongodb]
    Kubernetes
    MongoDB Replicaset
    Primary Secondary Arbiter

    View Slide

  24. Phase 2: Conception (1H)
    Les équipes reçoivent le sujet
    On peut demander toutes les questions que l’on veut au
    modérateur
    Les équipes peuvent prendre des hypothèses
    On peut utiliser toutes les technologies que l’on veut
    26

    View Slide

  25. Un exemple:
    Les plus mauvaises routes
    Les collectivités territoriales ont du mal à identifier les routes à
    rénover et ont de moins en moins de moyens. Elles souhaitent avoir
    des rapports dynamiques et précis sur l’utilisation des routes à la
    journée.
    Les données proviendront des voitures. Le traitement des données
    doit être anonymisé et compatible GDPR.
    Volumétrie: 1 transaction par seconde par voiture
    27

    View Slide

  26. Quelques conseils
    ▪ Clarifier le besoin (pourquoi une nouvelle application ?)
    ▪ Identifier les chiffres clés
    ▪ Zoomer progressivement
    28

    View Slide

  27. 29

    View Slide

  28. 30
    Postulat:
    On ne gère pas les
    zones blanches. Un
    simple rejeu est fait
    coté voiture

    View Slide

  29. Phase 3 : Peer Review
    (5mn/équipe)
    Vous devez présenter votre vision tout au long de la
    conception …
    … et présenter votre solution aux autres équipes.
    31

    View Slide

  30. Comment
    évaluer
    une
    architecture?
    32

    View Slide

  31. Trois caractéristiques
    33
    Simplicité Evolutivité
    Adapté à
    l’environnement

    View Slide

  32. 34
    A Worldline
    ▪ Kata mensuel (avant le COVID19) sur certains sites
    ▪ On a contextualisé et complexifié les sujets au fur et à mesure
    ▪ Certaines équipes l’ont personnalisé

    View Slide

  33. ▪ Travailler en équipe sur un nouveau sujet
    ▪ Identifier et s’adapter aux contraintes
    ▪ Communiquer et convaincre
    ▪ D’appréhender d’autres manières de penser
    ▪ Progresser grâce à l’expérience de vos collègues
    35
    Les bénéfices

    View Slide

  34. Pour aller plus loin
    http://nealford.com/katas/list.html
    https://archkatas.herokuapp.com/
    https://blog.worldline.tech/2019/12/12/architecture-katas.html
    36

    View Slide

  35. 37
    Un grand architecte ne se développe
    que par la pratique.
    Franck Brooks (Design of Design)

    View Slide

  36. 38

    View Slide

  37. Merci!
    Des questions?
    @touret_alex
    39
    21 février 2023
    @[email protected]

    View Slide