Arolla formation microservices DDD
Arolla Formation

Infos pratiques

Arolla Formation
Téléphone
07 63 74 20 95
Email
formation@arolla.fr
PDF de la formation

Formateurs

  • Cyrille MARTRAIRE
    Cyrille MARTRAIRE

    Cyrille Martraire est le Directeur Technique d’Arolla qu’il a cofondé en 2009. Développeur senior et coach technique, il anime régulièrement nos formations sur TDD, Clean Code, BDD et DDD.

    Son engagement pour la promotion des techniques de développement orientées qualité l’a naturellement conduit à créer la communauté du Paris Software Craftmanship en 2011.

    En tant que coach technique, Cyrille excelle en programmation Java et sur les paradigmes de programmation fonctionnelle ou de Clean Code (TDD, BDD, Refactoring de Legacy, DDD). Depuis près de 5 ans, il assiste des développeurs, des manageurs ou des directeurs techniques (SGCIB, Kyriba, Axa GS, ENGIE) dans leurs projets de gouvernance et de transformation des pratiques (gestion de projet et ingénierie).

    Il anime régulièrement des conférences sur ces sujets en France ou à l’étranger telles que Devoxx France, DDD Exchange, Scrum Day, Agile France… Il est l’auteur de l’ouvrage « Living Documentation » dont BDD est un exemple iconique paru en 2019.

    DOMAINES DE COMPÉTENCES DE CYRILLE
    • TEST DRIVEN DEVELOPMENT
    • CLEAN CODE
    • BEHAVIOR-DRIVEN DEVELOPMENT
    • DOMAIN DRIVEN DESIGN

  • Dimitri MEREJKOWSKY
    Dimitri MEREJKOWSKY

    Dimitri Merejkowsky travaille dans l’informatique depuis 15 ans et possède plusieurs casquettes : développeur soucieux de la qualité de code, coach à l’écoute, formateur et enseignant passionné par la transmission de ses connaissances, et blogueur à ses heures perdues.

    Avant de rejoindre Arolla, il a aussi été Scrum Master et engineering manager dans une start-up de cyber-sécurité.

    Ses outils de prédilection sont Python, son langage préféré, le développement piloté par les tests (TDD) qu’il pratique assidûment depuis de nombreuses années, et les Post-Its (beaucoup de Post-Its).

  • Mathieu PAULY
    Mathieu PAULY

    Doté d’une forte culture informatique et très à l’aise en langages objets et fonctionnels, Mathieu est mentor sur les bonnes pratiques de développement. Formateur aguerri, il accompagne plusieurs clients d’Arolla sur TDD et Clean Code aussi bien en France qu’à l’étranger et avec des audiences francophones ou anglophones.

    En tant que coach, il est régulièrement amené à intervenir sur des missions ayant pour but de sensibiliser les développeurs aux tests sur des formats variés (accompagnement conseil, training, animation de dojos…).

    Il partage son savoir-faire en publiant des articles sur notre blog, co-animant des conférences ou en donnant des cours dans des écoles d’ingénieur.

    Evaluateur technique depuis des années, Mathieu a fêté ses 6 ans d’ancienneté chez Arolla.

    Domaines de compétences de Mathieu
    • Test Driven Development
    • Clean Code
    • Domain Driven Design
    • Behavior-driven Development

Date

03 - 07 Juil 2021
Expired!

Tarif

2 200 €

Modalités pédagogiques

Formation en distanciel et présentiel

Microservices avec DDD

Objectifs :

L’architecture microservice est une approche attractive pour construire et faire évoluer des systèmes à grande échelle, avec un grand nombre d’utilisateurs ou avec un grand nombre d’équipes de développeurs qui doivent pouvoir travailler en relative autonomie pour livrer des fonctionnalités efficacement et indépendamment.

Les objectifs de cette formation sont :
• Définir une architecture basée sur les microservices
• Maîtriser les concepts essentiels du Domain-Driven Design (DDD)
• Apprendre à modéliser et à définir le périmètre d’un microservice
• Identifier les problématiques et les patterns de résolution d’une architecture microservices
• Définir une trajectoire de migration d’un existant vers une approche microservices

En matière de microservices, le focus est souvent sur les technologies, alors que les points clés sont la définition pertinente des contours des services. Ce n’est pas facile et c’est précisément pour cela que l’approche Domain-Driven Design est essentielle pour guider le découpage. Il s’agit aussi de penser en terme de système en soignant tout ce qui est nécessaire entre les services.

Cette formation couvre à la fois la théorie et les applications dans une présentation unifiée, avec des exercices pratiques. Elle présente les concepts essentiels de DDD, les techniques clés d’architecture ainsi que les principales technologies nécessaires pour les mettre en oeuvre. Et puisque cette mise en oeuvre commence le plus souvent sur des systèmes existants, cette formation décrit aussi des trajectoires de migration et de cohabitation avec le legacy.

Cette formation s’appuie sur notre expertise théorique sur le sujet et sur nos expériences d’accompagnement de nos clients sur ces architectures microservices. En particulier, nous décrivons aussi des modes d’échec classiques que nous avons observés.

Programme :

Faire le point sur les différentes définitions et enjeux des microservices
• API et approches API-first
• Autres façons de regarder les microservices : « damage control »: size, time to replace, decoupling, scalabilité, SOLID
• Polyglot persistence, polyglot services

Comprendre l’apport de Domain-Driven Design pour aider à définir les frontières des services
• Comprendre et identifier les Bounded Contexts
• Découvrir des notions de Context Mapping
• Réaliser les conséquences en terme de duplication (DRY vs Coupling) et de cohérence à terme (Eventual Consistency)

Comprendre une architecture microservices Architecture
• Comprendre la différence entre Choreography et Orchestration
• Intégration Asynchrone avec Event-Driven Architecture, messaging et patterns d’intégration EIP
• Intégration Synchrone et les conséquences
• Réaliser l’importance de la robustesse des contrats entre services, leur gouvernance pour les enjeux de compatibilité, les heuristiques et pièges à éviter
• Compromis Autonomy vs. Authority
• CQRS, Backend for Front-End (UI-specific API vs service API), mashup techniques

Penser “Design for Failure”
• Penser en terme de zones d’échec (Failure Areas)
• Circuit breakers for graceful degradation
• Découvrir les approches de test : compile time (Consumer-Driven Contracts) or runtime (Symian Army)
• When data get out of sync : reconciliation, replay, reload, et l’importance de l’idempotence et du polling comme solutions
• Monitoring : guidelines, outils, Alerting & Distributed tracing

Implémenter un service
• Concevoir une API, au-delà de la capacité “d’exposer les entités en REST”
• Persistence privative comme source de vérité (Sources of Truth), pattern Data Pump
• L’importance d’être Stateless, pour la fault-tolerance, le Cloud et l’elasticity
• Architecture Hexagonale
• Event-Sourcing vs Event-Driven
• Découvrir des patterns spécifiques pour le Cloud, la notions de Serverless & de Function as a Service
• Microservice Chassis: Spring Boot, Dropwizard
• Horizontal Scaling, Load balancing and intelligent routing
• Configuration services, Registration and Discovery
• Principes de sécurité

Migration Legacy
• Requalifier un existant legacy en “Macroservices”
• Extension d’un existant par des nouveaux services dans une approche de fédération
• Le pattern clé Strangler Application et autres patterns legacy utiles : Legacy Read Model, Double Feeding, Services Aggregation, Change Data Capture
• Les enjeux des périmètres transactionnels historiques : Save on Out of Focus vs. Distributed Transaction vs. Large microservices

Introduire une architecture microservices et les principaux pièges à éviter
• A quel moment et comment adopter les microservices
• Un changement de culture au-delà d’un changement technique
• Alternatives aux microservices : modularité, Discipline, approche microservice-Ready, et les limites associées
• Compétences et maturité pré-requises

Public :

Cette formation s’adresse aux développeurs expérimentés, aux architectes, team leads, référents et coachs techniques.

Pré-requis :

– Bonne connaissance d’au moins un langage de programmation.
– Les participants doivent avoir un poste de travail avec un environnement de développement.
– Avoir déjà une expérience dans la conception logicielle dans le cadre de projets d’entreprise.

Pour chaque formation, un quizz de validation des pré-requis sera transmis 2 semaines en amont et en fin de session pour valider les acquis.

Matériel pédagogique :

Les formateurs distribueront les supports de la formation au format électronique PDF à la fin de la formation.

Méthodes pédagogiques :

60% Théorique,40% Pratique  

Durée :

2 jours

Pour toutes personnes en situation de handicap, n’hésitez pas à nous contacter au 07 63 74 20 95 ou formation@arolla.fr .
Par ailleurs, toutes nos formations sont accessibles en distanciel.

Arolla vous offre le petit-déjeuner sur les lieux de la formation et le déjeuner dans le restaurant « le pot de vins » pour chacune de vos journées chez nous.

 

Catalogue Arolla Fomations

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

You have Successfully Subscribed!

Catalogue Arolla Fomations

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

You have Successfully Subscribed!