Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[TNT19] Hands on: Objectif Top Architecte!

1,641 views

Published on

Comment devenir architecte ? Comment progresser dans ce domaine ? A quoi reconnait-on une bonne ou une mauvaise architecture ? Il existe certes un certain nombre d' ouvrages et formations sur le sujet, mais le mieux est quand même de pratiquer ! A la manière des coding dojos, je vais vous présenter les Architecture Katas. Ces derniers ont été initiés par Ted Neward. Son idée est venue du constat suivant :

"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?"

La solution à ce problème est donc de pratiquer régulièrement sur des sujets très différents pour gagner en expérience.

Après une présentation qui permettra dans un premier temps de donner un retour d'expérience sur ce domaine et de répondre à certaines questions, j'exposerai la démarche du hands'on et le résultat final attendu.

Ensuite, par équipe de 4-5 personnes équipées d'un papier et d'un crayon ( pas besoin de plus ! ), plusieurs sujets seront proposés. Chaque équipe devra en choisir un, définir l' architecture la plus pertinente et la présenter aux équipes adverses.

Un vote définira la meilleure architecture.

Il n'est pas nécessaire d'être architecte pour participer !

Que la meilleure équipe gagne !

Published in: Software
  • Be the first to comment

  • Be the first to like this

[TNT19] Hands on: Objectif Top Architecte!

  1. 1. Objectif Top Architecte ! Alexandre Touret : Architecte – EquensWorldline
  2. 2. Architecte JAVA, API, CI, OPEN SOURCE @touret_alex https://blog.touret.info https://blog.worldline.tech Alexandre TOURET
  3. 3. Sommaire La théorie (~40mn) La pratique (~50mn) Le comparatif (~20mn)
  4. 4. Qu’est-ce que l’architecture ?
  5. 5. Architecture represents the significant design decisions that shape a system Selon Grady Booch … All architecture is design, but not all design is architecture Most architectures are accidental, not intensional
  6. 6. Tell us what is important. Architecture is about the important stuff. Whatever that is. The best code you can write now is code you’ll discard in a couple of years Selon Martin Fowler…
  7. 7. Comment devenir architecte?
  8. 8. Il y a des ouvrages et des formations … La théorie ? … Le mieux reste encore la pratique ! F. BROOKS ( Design of Design ) Un grand architecte ne se développe que par la pratique T. NEWARD 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?
  9. 9. Qu’est-ce qu’une bonne architecture ?
  10. 10. se caractérise principalement par ces trois qualités Une “bonne” architecture Simplicité Evolutivité Adapté à l’environnement
  11. 11. Une bonne architecture : répond au cahier des charges sans être trop compliquée sans bloquer l’avenir Simplicité
  12. 12. Minimum Viable Architecture
  13. 13. Evolutivité Approche modulaire Ouverture Travailler par couches
  14. 14. Pensez aux contraintes de l’organisation Est-ce qu’il y a une stratégie de rationalisation ? Quelles sont les contraintes de sécurité ? Est-ce que l’application doit être accessible ? Quelles sont les contraintes d’ouverture de services ? Principe de CONWAY « les organisations qui définissent des systèmes ... sont contraintes de les produire sous des designs qui sont des copies de la structure de communication de leur organisation » (1967) Adaptée à l’environnement
  15. 15. Dans la “vraie vie”… Voyons comment tout ça s’articule dans un cycle projet …
  16. 16. Répondre aux questions suivantes : Quels sont les résultats attendus ? 01 Quels sont les chiffres clés ? 02 Pour démarrer Quelles sont les responsabilités ? 03
  17. 17. Les décrire dès le début ! Les résultats attendus Pourquoi construire une nouvelle application ? Quel est le produit attendu ?
  18. 18. Nous voulons construire une voiture de course Les pneus sont les parties les plus importantes Exemple par l’absurde
  19. 19. Indiquer les différents éléments qui peuvent être pertinents Exemples Mon application doit avoir un temps de réponse < 50ms La volumétrie pourra être de 10To par an Les chiffres clés
  20. 20. Responsible Ceux qui réalisent Accountable Ceux qui sont responsables Consultable Ceux qui peuvent être consultés Informed Ceux qui doivent être informés RACI
  21. 21. Méthode
  22. 22. • Un diagramme orienté système • Un diagramme orienté conteneurs • Un diagramme orienté composants • Un diagramme UML Méthode Le modèle C4 (https://c4model.com/ )
  23. 23. Le formalisme https://c4model.com/
  24. 24. Le modèle C4 Le modèle orienté conteneurs (https://c4model.com/ )
  25. 25. Le modèle C4 Le modèle orienté composant (https://c4model.com/ )
  26. 26. Prenez en considération le contexte de l’entreprise Quelles sont les normes ? Quels sont les standards de production ? Est-ce qu’il y a une stratégie de rationalisation ? Quel est le contexte réglementaire ( PCI DSS, GDPR,… ) ? Conception Utilisez des “recettes de cuisine” Utilisez des patterns et solutions (re)connu.e.s Si vous avez des solutions éprouvées qui correspondent au besoin Utilisez les !
  27. 27. Les patterns et modèles d’architecture
  28. 28. MVC 1976
  29. 29. GOF 1994
  30. 30. Architecture N-Tier 1993
  31. 31. Architecture Orientée Services Serveur1 Architecture Orientée Microservices Serveur1 Serveur2 Serveur3 Serveur1 Serveur2 Architecture services 2000 ’s
  32. 32. <<Interface>> Video Game Console Tester Arcade Box Switch PS4 Application1 Serveur 1 Application2 BUS Serveur 2 Couplâge lâche Au niveau logiciel Chaque composant n’est accessible que par le contrat exposé par une interface Au niveau intégration d’application Chaque système est ( ou tend à être ) autonome
  33. 33. Architecture Hexagonale Domain Ce qu’on fournit à l’utilisateur final. GUI, API, ... Le métier, les règles métier Infrastructure Application Accès BDD, FS, WS externes,...
  34. 34. Circuit Breaker Le circuit breaker permet de contrôler la collaboration entre différents services afin d’offrir une grande tolérance à la latence et à l’échec. Service 1 Service 2 Réponse alternative Réponse alternative Réponse attendue OK Erreur 500 Timeout
  35. 35. CQRS Le pattern CQRS (Command Query Responsibility Segregation) repose sur un principe simple : la séparation, au sein d'une application, des composants de traitement d’écriture (« command ») et lecture (« query »). Client Modèle de commande ↑ → Modèle de requête ← ↑ Evènement Ecriture Lecture Mise à jour
  36. 36. Event Sourcing L’Event Sourcing propose de se concentrer sur la séquence de changements d’état d’une application qui a amené cette dernière dans l’état où elle se trouve. On ne fait plus d’ update ou delete, mais seulement des créations d’évènements et lecture .
  37. 37. Batch ou Temps réel ? Ca dépend … Du besoin et des contraintes Penser aux reprises sur erreur Est-ce qu’il y a une transaction à gérer ? Quand est-ce que le traitement doit être déclenché ?
  38. 38. Développement Pensez à la “testabilité” ! Une approche modulaire permet de tester “facilement” chaque composant de manière isolée Au niveau logiciel Faites simple ! Automatisez le plus possible Pensez à la production ! Aux logs, aux exceptions, aux contraintes d’exécution,…
  39. 39. Les ADR Architecture Decision Records But : Capturer les décisions d’architecture qui ont un impact et les tracer tout au long du projet. Exemple de fichier ADR au format MARKDOWN . Il peut être mis directement dans le projet
  40. 40. En Production Choisissez les technologies que la production peut maîtriser Evitez d’associer une nouvelle stack et une nouvelle application métier Validez les chiffres clés émis pendant la conception
  41. 41. Les architecture katas Ou comment adapter les coding dojos à l’architecture …
  42. 42. Plusieurs équipes si possible avec répartition aléatoire Chacune reçoit un kata différent Pendant 1H : Travail sur le kata Vous pouvez poser des questions ! Présentations des katas 5mn présentation + 5mn questions /réponses par équipe Les katas
  43. 43. Sujet : Une organisation veut construire le plus grand arbre généalogique de l’histoire Besoin: On souhaite visualiser des données sous la forme de graphes et y accéder via plusieurs plateformes ( API, WEB, MOBILE,…) On souhaite l’intégration avec les réseaux sociaux et les bases de données officielles pour intégrer toutes ces données de manière automatique Une modération humaine pourra être réalisée également Volumétrie : des milliards d’enregistrements , des million de connexions et des connexions avec d’autres applications Qui est mon ancêtre ?
  44. 44. Sujet : Créer des sites automatiquement en fonction du buzz actuel Besoin: Des clients souhaitent créer dynamiquement des sites web en fonction des tendances du moment sur Internet ( réseaux sociaux, sites, forums,…). Ces sites doivent être pré remplis en fonction du buzz et avoir une forte visibilité sur Internet (SEO) . Des administrateurs fonctionnels pourront également compléter et/ou corriger le contenu. Volumétrie: ?? Suivre le buzz
  45. 45. Sujet : Utiliser les capacités des voitures connectées pour identifier les routes à rénover Besoin: Les collectivités territoriales ont du mal à identifier les routes à rénover et ont de moins en moins de moyens. Du coup, 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 Les plus mauvaises routes
  46. 46. Sujet :Mettre en oeuvre une cave à vin connectée ainsi que son assistant personalisé Besoin: On souhaite faire une cave à vin connectée qui permette la gestion des bouteilles ( date d’arrivée, date de dégustation,…), qui indique quand la boire, les plats associés,… L’ajout pourra se faire de manière automatique ( reconnaissance ?) ou manuelle L’application doit disposer dans sa base de données de tous les vins français et internationaux. Le tout centralisé, qui se connecte aux réseaux sociaux et permette des notifications ( SMS, mail,…) …. Volumétrie: On cible à terme 1 million d’utilisateurs Le nombre de transactions par seconde est très réduit Une cave à vin connectée
  47. 47. Merci ! Alexandre Touret : Architecte – EquensWoldline @touret_alex / #TNT19

×