Architectures de Microservices :
l’état de l’art

Définitions, enjeux, architectures, technologies, outils, méthodes, sécurité et gouvernance
Sommaire

LE MOT DE L’INTERVENANT

Avec ce séminaire, je vais vous aider à comprendre les techniques...

Avec ce séminaire, je vais vous aider à comprendre les techniques les plus modernes de conception, développement, déploiement et exploitation de SI à base de Web Services, Microservices et de Web API. J’aborde en détail les principes et pratiques d’Architectures techniques et fonctionnelles ainsi que leur sécurisation. A l’issue de la formation, vous serez en mesure de comprendre parfaitement la différence entre Service, Web Service, Microservice, API et Web API. Mais aussi de dessiner et critiquer en totale autonomie des Architectures de SI entiers basés sur ces concepts. Mon discours s’adresse aux Architectes et Développeurs mais aussi aux Chefs de projet et Urbanistes. Mon approche pédagogique est basée sur deux principes. Le premier étant ma capacité à aborder tous les sujets du séminaire de manière progressive, depuis les enjeux métiers jusqu’aux aspects techniques les plus pointus, illustrés par du code source en cas de besoin. Le second étant l’hyperinteractivité qui consiste à permettre aux participants de poser des questions à tout moment du séminaire, d’en débattre et en faire profiter l’ensemble des participants.

Habib GUERGACHI
Vingt-cinq ans d’expérience en Delivery d’Architectures logicielles complexes auprès de multinationales, de géants du Web et de startups. Douze ans d’expérience en conseil auprès des DG, DSI, DRH et Directions Métiers. Fondateur de Zengularity SA. Angel Investor dans Play framework, Libredemat et prismic.io. Administrateur de Foyer SA (LU) et conférencier exclusivement chez Capgemini Institut depuis 1998.
Lire la suite Cacher le texte

 

 

Microservices, Web Services, Serverless, Rest, API, Web API, API Management et API Mesh, Cloud Native Applications, DevOps, Event Storming, etc. Les Architectures de microservices constituent des pratiques modernes dans l’industrie de fabrication de logiciels. Elles apportent des innovations pour fabriquer des logiciels avec plus de performance, de scalabilité, d’évolutivité et de sécurité.

Beaucoup de pratiques sont aujourd’hui éprouvées et matures pour être répliquées de manière industrielle dans les entreprises. Mais des faiblesses, voire des lacunes, persistent et doivent être comprises et prises en compte pour éviter la désillusion. Mon expertise et expérience dans ce domaine depuis 2005, me permettent d’aborder le sujet des Microservices de manière très cohérente sur une dizaine de dimensions : définition, enjeux business, défis technologiques, architectures techniques, usages et UX, outils du marché, méthodes, sécurité et cybersécurité, culture d’entreprise et gouvernance.

Ce séminaire vous donnera les aptitudes nécessaires pour comprendre les Architectures de Microservices ainsi que les technologies et concepts qui gravitent autour : Web Services, API, Serverless, DevOps, etc. Après ces 2 journées, vous aurez acquis une vision cohérente, large mais aussi techniquement approfondie sur les architectures de microservices. Les connaissances acquises sont toutes pratiques et immédiatement actionnables pour améliorer les conditions de succès de vos projets de construction logiciels modernes.



Les Microservices


  • Définition formelle et non interprétable de la notion de Microservice.
  • Quelle différence entre un Web Service et un Microservice ?
  • Critères formels d’éligibilité au Microservice.
  • Qu’est-ce que la granularité d’un Microservice ?
  • Qu’est-ce que l’empreinte technique d’un Microservice ?
  • Spécificités Cloud pour un Microservice.

Web Services


  • Définition de la notion de Service en architecture techniques.
  • Quelle différence entre un Web Service et un composant ?
  • Quelles différences entre un Web Service et une application Web ?
  • Quelle place pour les Web Services en interne à l’entreprise.
  • Les surcoûts spécifiques aux Web Services.
  • Les limites de la prolifération des Web Services dans l’entreprise.

API


  • Définition formelle et non interprétable d’une API.
  • Quel rapport entre Microservice et API ?
  • Définition de l’écosystème d’une API.
  • Définition de API Gateway.
  • Qu’est-ce que l’API Management ?
  • Introduction au architectures API MESH.

Architectures de Microservices


  • Les 4 principaux modèles d’architectures Microservices.
  • Introduction aux principes de l’architecture événementielle.
  • Introduction au pattern d’architectures Event Driven.
  • Quelles sont les spécificités des approches d’architectures Message Driven ?
  • Les Principaux pièges dans les pratiques de Command Sourcing.
  • Domaine d’application du pattern CQRS (Command, Query Responsibility Segregation).
  • Les principaux pièges dans le choix du pattern d’architecture microservice et comment les éviter.

Architectures Serverless


  • Introduction au concept Serverless.
  • Les domaines d’application privilégiés pour le Serverless.
  • Serverless et Microservices : les principaux pièges et comment les éviter.
  • Les pré-requis pour tirer profit des architectures Serverless.
  • La problématique de la portabilité entre fournisseurs de Serverless Backends.
  • Les précautions essentielles pour assurer la portabilité d’une architecture serverless.

Transactionnel en Microservices


  • Rappel des principe transactionnels ACID.
  • Principes des transactions de compensation fonctionnelle.
  • Introduction à la conjecture CAP (Consistency, Availability, Partitioning).
  • Comment gérer une transaction longue entre plusieurs Microservices ?
  • Exemples de réalisations opérationnelles grâce au théorème CAP.
  • Exemples de reprise fonctionnel d’une transaction.
  • Etude de cas d’une AMS robuste "By Design".

Données et Microservices


  • Quels types de relations entre bases de données et Microservices ?
  • Comment délimiter la responsabilité technique des données ?
  • Les bons et mauvais arguments pour partager les données entre microservices.
  • Introduction aux bases de données noSQL.
  • Les 4 principaux types de bases de données noSQL.
  • Etude de cas d’une architecture avec 5 types de bases de données.

Standards Techniques des Microservices


  • HTTP : rappel des principes du protocole.
  • Quel intérêt à utiliser HTTP comme un protocole applicatif ?
  • HTTP et les microservices : intérêt et alternatives.
  • JSON : rappel des principes.
  • Les limites de JSON en langage de configuration.
  • Que penser des langages alternatifs : TOML, YAML, HOCON, HJSON, etc. ?

Patterns d’invocation de Microservices


  • Rappel des principes d’invocation RPC (Remote Procedure Call)
  • Avantages et inconvénients de l’Invocation REST HYPERMEDIA.
  • Comment invoque un microservice en mode Message ?
  • Introduction aux techniques d’invocation réactive de Microservice.
  • Rappel des principes fondamentaux du style d’architecture REST.
  • Comprendre la rupture profonde apportée par l’Hypermedia.
  • GraphQL : les principaux pièges et comment les éviter.

Workflow, Orchestration et Chorégraphie


  • Les 3 approches techniques pour coordonner les appels de Microservices.
  • Workflow, Orchestration et Choregraphie : avantages et inconvénients respectifs.
  • Comment la conception fonctionnelle influence l’option WOC ?
  • Les principaux langages WOC et comment choisir ?
  • Etude de cas de coordination d’appels entre 10 Microservices.
  • Etude de cas : orchestration "By Design" ?

Conception de Microservices


  • Démarche de conception d’une application à base de Microservices.
  • Introduction aux concepts de "protocole métier" et "espace sémantique"..
  • Introduction aux pratiques de Checkpoints.
  • Que penser de l’approche fondée sur le "Event Storming" ?
  • Les difficultés à bien connaître pour réussir une session "Event Storming" ?
  • Comment définir les indicateurs de mesure qualitative et quantitative ?
  • Etudes de cas qui illustrent le réalisme et l’enlisement de la phase conception.

Domain Driven Design (DDD)


  • Définition du concept DDD (Domain Driven Design)
  • Les points forts des Aggregates.
  • Comment bien délimiter les Bounded Context ?
  • Introduction à la notion de ’"Ubiquitous Language".
  • Les points sensibles lors du Mapping entre Bounded Context et Microservices.
  • Que penser du Principe de l’Unité de Cohésion dans DDD.
  • Domaine de sens vs Domaine d’intérêt : intérêts et limites.

UX et Microservices


  • Quel impact des microservices sur l’UX et l’UI.
  • Etude de cas d’une UI dynamique.
  • Que penser de l’approche de Micro UI ?
  • Les pratiques modernes de construction fonctionnelle l’UI par les microservices ?
  • Intérêt à générer l’UI dynamiquement.
  • Etude de cas du cas UX/UI et Microservices de Netflix, Google Maps et Amazon.

Développement de Microservices


  • Comment organiser les équipes de développement ?
  • Comment distribuer les responsabilités des développeurs sur les microservices ?
  • Comment gérer la scalabilitté des équipes de développement ?
  • Les principaux ratios entre profils expert par microservice.
  • Pourquoi le langage de développement est mineure dans une architecture de microservices ?
  • Introduction au CI (Continuous Integration) et CD (Continuous deployment).
  • Les limites d’une plateforme CI (Continuous Integration) et CD (Continuous deployment) et comment les repousser.

Tests de Microservices


  • Comment tester des centaines de microservices tous indépendants ?
  • Comment faire évoluer et gérer les versions des Microservices ?
  • Introduction aux tests de Chaos ?
  • Les idées reçues sur les tests de performance et de montée en charge ?
  • Les précautions essentielles pour réussir les tests de sécurité et cybersécurité ?
  • Introduction au architectures Microservice "Secured By Design", "Scalable By Design".

Déploiement, Exploitation et DevOps


  • Plateforme DevOps vs Pratiques DevOps.
  • Comment faire de la mise en production devient un non-évènement ?
  • Comment faire du crash d’un microservice un non-évènement ?
  • Les nouveaux défis dans l’administration des données des Microservices.
  • Comment industrialiser le déploiement des bases de données des microservices ?
  • Comment administrer des milliers d’instances de microservices ?
  • Introduction aux problèmes de l’Observabilité en mode Runtime.

Sécurité des microservices


  • Les principes de base en Design d’architectures de microservices robustes.
  • Comment simplifier et uniformiser la mise en œuvre de la sécurité ?
  • Etude de cas avec oAuth et OpenID.
  • Comment contrôler finement les autorisations ?
  • Comment concilier ouvertures d’API et sécurité.
  • Introduction à la sécurité applicative.
  • Introduction aux techniques de durcissement fonctionnel.

Défis et faiblesse des Microservices


  • A quelle vitesse durable opérer la transformation de l’existant ?
  • Quels sont les risques post rupture culturelle ?
  • Comment gérer culturellement l’éclatement des structures de données ?
  • Comment faire face à la complexité multidimensionnelle ?
  • Que faire des salariés qui ne peuvent pas supporter la rupture technologique.
  • Comment opérer la rupture dans la culture DevOps ?
  • Quel discours face aux exigences d’hyper automatisation et industrialisation ?

Gouvernance


  • Modèles d’organisation autour d’une plateforme microservices.
  • Les limites définitives de l’organisation MOA/MOE.
  • Quelle reconversion heureuse pour la MOA ?
  • La problématique des organisation bi-modales.
  • Définition de l’approche "Produit".
  • Les limites de l’approche "Projet" dans les architectures microservices.
  • Comment allouer les budgets en approche Produit ?
  • Comment gérer l’échec "Fail Fast" dans une grande entreprise ?
  • Introduction à la loi Netflix : "You build it You Run It".
  • Comment tirer le meilleur parti des frameworks agiles (Scrum, Kanban, SAFe, etc.) ?
  • Les points sensibles pour catalyser une transformation culturelle.
  • Réflexions contemporaines sur l’Humain face aux architectures complexes et automatisées.

Panorama


Ce chapitre dresse un panorama critique de l’offre du marché, des outils et des plateformes pour concevoir, développer, déployer, exploiter, administrer et sécuriser des architectures de Microservices, Web Services et API : typologie des acteurs et de l’offre de standards, de normes et de produits, caractéristiques des principaux produits dans chaque catégorie, évolutions fonctionnelles et techniques attendues, points forts et limites, domaines d’application privilégiés et principales contre-indications respectives, etc.