🇫🇷 Architecture Modulaire et Pragmatique

Formation de 2 jours en français avec Cyrille Martraire

Cyrille Martraire

Détails de la formation

Objectifs :

Les systèmes logiciels modernes, qu'ils soient ou non en micro-services, nécessitent toujours plus d'attention à leur architecture logicielle. Au-delà d'assurer un bon fonctionnement avec les performances et le coût attendu, l'architecture vise de plus en plus à répondre aux enjeux de modularité, d'autonomie des équipes, de modernisation d'existant, de cohérence à l'échelle. Face à ces enjeux, la somme des compétences nécessaires semble considérable, mais nous avons réussi à en proposer une synthèse compacte et structurée, quelque soit les technologies envisagées pour la mise en œuvre.

La formation Architecture Modulaire et Pragmatique couvre ainsi à la fois la théorie et les applications de l'architecture de systèmes qui peuvent être complexes, et ce dans une présentation unifiée. Le contenu est issu de notre expertise théorique ainsi que de nos nombreuses expériences d’accompagnement de nos clients sur des sujets spécifiquement d'architecture, en incluant les modes d’échec classiques que nous avons observés.

Cette formation présente la démarche et les raisonnements, introduit les concepts essentiels, dont certains empruntés à DDD, couvre les techniques et patterns clés d’architecture ainsi que les principales technologies nécessaires pour les mettre en œuvre. Et puisque cette mise en œuvre commence le plus souvent sur des systèmes existants, cette formation décrit aussi des trajectoires de migration et de cohabitation avec le legacy, ainsi que les enjeux humains associés.

Au cours de cette formation vous allez :
  • Apprendre à définir une architecture pragmatique, la documenter et la présenter
  • Acquérir une vision structurée d’un système logiciel dans ses différentes perspectives et ses différentes échelles
  • Anticiper les principales problématiques d’une architecture en évolution et en production
  • Identifier les couplages et les critères de modularité, pour la scalabilité et la disponibilité
  • Connaître les principaux patterns et styles architecturaux de l’état de l’art
  • Savoir concevoir un système à base de (micro)-services ou en monolithe modulaire
  • Définir une trajectoire de migration d’un existant vers une approche plus modulaire
Programme détaillé :
  • Introduction à l’Architecture
    • Les multiples définitions de l’architecture technique : une question de stabilité, grande échelle, savoir partagé, décisions irréversibles
    • Architecture comme moyen d’alignement entre les objectifs de l'entreprise et ses systèmes d’information
    • Les perspectives d'Architecture
    • Architecture vs. Architecte
    • Architecture Émergente
  • Principes d'architectures modulaire
    • Aperçu des Bounded Contexts et du Context Mapping
    • Comment modulariser pour favoriser l'autonomie locale
    • Microservices vs. Modular Monolith
    • L'importance des contrats rétrocompatibles entre modules
    • Federated vs. Centralized Data
    • Réaliser les conséquences en terme de duplication (DRY vs Coupling) et de cohérence à terme (Eventual Consistency)
  • Overview de styles d’architecture
    • Event-Driven Architecture
    • Choregraphie vs. Orchestration, forces et faiblesses respectives
    • Microservices Architecture, Smart Endpoints & Dumb Pipes
    • Architecture Hexagonale
    • Entreprise Integration Patterns (EIP, Gregor Hohpe), Integration styles, PoEAA (Fowler)
    • Notions de design d'API
    • Architecture globale vs. locale, Umbrella diagrams
  • Technical Architecture
    • Asynchronous messaging, queues vs topics, Events vs. Commands
    • Data consistency: Golden Source, replication, autonomy vs. authority
    • Fault-tolerance, Load balancing
    • Stateless vs. statefull, consequences, stickiness & affinité, managing sessions
    • Configuration, Discovery
    • Logging & tracing guidelines, Monitoring: guidelines, tools
    • Integration in practice: reconciliation, data migration
    • Notions de Test-Driven Architecture, métriques, static analysis
    • L’importance de la communication en architecture, techniques et astuces
    • Notions de Living Documentation appliquée à l’architecture
  • Legacy migration patterns
    • Principes de Legacy Cohabitation et non de Big Bang
    • Strangler Application Pattern
    • Legacy Read Model, Macroservice, Change Data Capture patterns appliqués au legacy
    • Principes de raisonnement de ROI sur les décisions de modernisation
    • Autres patterns de Legacy
Pré-requis :
  • Connaissance de différents langages de programmation avec des bonnes connaissances en design objet.
  • Connaissance de différents langages de programmation avec des bonnes connaissances en design objet.
  • Avoir déjà une expérience dans le développement de logiciel.
Public :

Cette formation s’adresse aux développeurs expérimentés, team leads, responsables d’architectes, mais aussi aux architectes confirmés ou en devenir.

About Cyrille MARTRAIRE

Cyrille Martraire (@cyriux) is CTO and partner at Arolla (@ArollaFr), the founder of the Paris Software Craftsmanship community and a regular speaker at international conferences.

Cyrille has experience in startups, software vendors and banks since 1999, but he still calls himself a developer.

He's passionate about design in every aspect: TDD, BDD and in particular DDD.

Cyrille also has an extensive knowledge of capital market finance, and he's the author of the book Living Documentation published by Addison-Wesley Professional.