SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Ionut Mihalcea – Effective Labs – @imihalceaMeet-up .Net Toulouse
ARCHITECTURE
MICROSERVICES
Effective Labs
 Rendre la conception et le développement logiciel plus
qualitatif et inspirant.
 La mission est d’apporter des solutions et d'assurer la
montée en compétences des personnes en travaillant sur 3
thèmes :
 Conception produit
 Culture Lean & Agile
 Software Craftsmanship
Pourquoi le sujet ?
 Un sujet qui fait le buzz depuis 2 - 3 ans
 Faire un point sur le sujet
 Vous raconter une expérience en cours
 Mais aussi parce que :
 On commence à parler plus d’outils que des principes
(je trouve ça dangereux)
 Une tendance, chez certains, à penser que ça va résoudre
tous leurs problèmes (je ne suis pas si sur)
Existe t-il une définition pour les
Architectures Microservices ?
Réponse :
Non !
Définition par opposition !
 Monolithe  Microservices
Besoin : « Componentisation » des applications
 Composant :
 Changé indépendamment
 Mis à jour indépendamment
 Un problème déjà résolu :
 Les librairies
 IoC
Besoin : Scalabilité et maitrise des couts et délais
de la mise en production
 Monolythe
Besoin : Scalabilité et maitrise des couts et délais
de la mise en production
 Microservices
Besoin : Scalabilité des équipes
 1 Microservice = 1 équipe
 2 pizzas
 Autonome
 Avec son propre rythme de mise
en production
https://youtu.be/4GK1NDTWbkY
 Monolithe vs Microservices
Une vue de haut niveau
https://martinfowler.com/articles/microservices.html
Principes de conception
Cohésion
 Fait une seule chose
 Un seul focus
Approche
 Découper un service : un
service a une seule raison
de changer
Résilience
 Comportement par défaut
 Fonctionnalité dégradée
Approche
 Prévoir les cas d’erreurs
 MTTR vs MTBF
Autonomie
 Pouvoir les remplacer et
déployer indépendamment
Approche
 Faible couplage
 Versioning
 1 service = 1 équipe
Orienté métier
 Une fonction ou domaine
métier
Approche
 Identifier les domaines
 Découper puis grouper les
fonctionnalités
Observable
 Etat du système
 Log et monitoring
Approche
 Outils monitoring et log
centralisés
 Comprendre l’ensemble
Automatisation
 Tests
 Déploiements
 Containers
Approche
 Intégration continue
 Déploiement continuu
Du moins quelques unes…
Quels sont les difficultés ?
La taille compte
 Trop gros => architecture
à base de monolithes
 Trop micro => pas de
consistance trop complexe
 Pistes
 Découpage des domaines business
en fonctions ou groupes de fonction
 2 pizzas teams
Communication asynchrone
 Asynchrone
 C’est indispensable
 Peut résoudre en même temps un problème
de couplage
A
 Synchrone
 Ce scenario n’est pas toujours possible
B
m A
m B
A B
Message
Broker
Découverte des services
 Contexte
 Plusieurs clients (site web,
applications mobiles)
 Plusieurs services
(catalogue, commande,
payement…)
 Le problème
 Comment les clients
accèdent aux services
individuels?
 Solution possible
https://microservices.io
Trace Distribuée
 Solution possible
 Log centralisé
 Générer et tracer un
CorrelationID (cId)
A B C
D E
 Un scenario utilisateur implique
plusieurs services
 Comment l’identifier en cas de
problème ?
m + cId
m + cId
m + cId
Changements culturels
 Petites équipes autonomes
 Décentralisation de la gouvernance
 Produits vs projets
Et ce n’est pas tout
 Transactions distribuées
 Operations de « undo » ?
 2 phase commit ?
 Sécurité
 centralisée au niveau API Getway, ou pour chaque service ?
 Reporting
 Passer par une base de Reporting systématiquement ?
 Conception fonctionnelle
 Prévoir les fonctionnalités dégradées, gestion des cas d’erreur
 …
Peler le monolithe…
Un scenario d’adoption heureux ?
Contexte
 Editeur de logiciels
 Produits (age 15 ans)
 ASP.NET WebForms, Framework 4
 Hébergement Cloud et On-Premise
 Clients : Grands comptes et administration
 Utilisateurs : 450 000, 17 pays
 Equipe : 9 devs, 3 fonctionnels, 3 Ops
 Organisation : Scrum
Problème
 Monolithe
 Défauts de conception
 Problèmes de
performances
 Nb croissant d’incidents
client
 Perte de connaissance
fonctionnelle
 Volonté
 Refondre le produit de
manière incrémentale
 Répondre aux
problèmes du moment
 Qualité
 Performance
Architecture en place
Ged
Dématérialisation
de flux
Quel processus ?
1. Identification des domaines et
sous-domaine fonctionnels
2. Ecriture de tests fonctionnels
3. Automatisation des tests
fonctionnels
4. Refonte totale ou refactoring
dans un librairie séparée
4. Mise en place du
microservice
5. Prod. 2 sem. sur 500
utilisateurs
6. Prod. 4 sem. sur 10000
utilisateurs
7. Prod. pour tous les
utilisateurs
Internet
UI
Service
Business
DAL
BD
Client
Internet
UI
Service
Business
DAL
BD
Client
Domaine 1
Domaine 2
Domaine 3
…
Internet
UI
Service
DAL
BD
Client
Domaine1Domaine2Domaine3
…
Service
Domaine 1
Internet
UI
Service
DAL
BD
Client
Domaine2Domaine3
…
Message
Broker
Domaine1
Log /Monitoring
Centralisé
DAL
Domaine
1
BD
Et avant …
 Formation technique
des développeurs
 Recrutement d’un chef
produit
 Culture DevOps
 Mise en place de
l’infrastructure
 Fonctionnement en
double des systèmes
 Automatisation
Conclusion
Les microservices
 Composants
 Orienté Métier
 Produits pas Projets
 Services intelligents et
« plomberie » basique
 Conçus en prenant en
compte l’échec :
résilience
 Conception évolutive
 Décentralisation de la
gouvernance
 Décentralisation des
données
 Automatisation
Comparaison
 Simplicité
 Consistance
 Refactoring inter-
module
 Déploiement
 Disponibilité
 Frontières fortes
 Multi-plateforme
Monolithe Microservices
Les microservices
 C’est pas nouveau (peut-être un renouveau plus pragmatique de la SOA)
 Résout des problèmes mais ajoute aussi de la complexité
 Au-delà de la technique nécessitent beaucoup plus de réflexion sur le plan
fonctionnel
 Réflexion sur l’organisation : petites équipes autonomes
 Formation technique et culture DevOps
3 points importants
 Répondent à besoin de « Scalabilité »
 Approche intéressante dans la refonte d’un « monolithe »
 Si on démarre un nouveau produit
 Démarrer avec « monolithe » que nous maintenons modulaire
 Passer aux microservices quand le monolithe devient un problème

Contenu connexe

Tendances

Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Saâd Zerhouni
 
Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010LINAGORA
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?Microsoft
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Architectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeArchitectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeMicrosoft
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideMicrosoft
 
Ateliers Silverlight 2 à l'Epitech
Ateliers Silverlight 2 à l'EpitechAteliers Silverlight 2 à l'Epitech
Ateliers Silverlight 2 à l'EpitechChristophe Lauer
 
Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...
Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...
Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...Microsoft Technet France
 
Principes et Fonctionnalités Velocity 6.1
Principes et Fonctionnalités Velocity 6.1Principes et Fonctionnalités Velocity 6.1
Principes et Fonctionnalités Velocity 6.1Social Computing
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Laurent Guérin
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemeStéphane Traumat
 
Implémenter son Cloud privé pour héberger ses machines virtuelles
Implémenter son Cloud privé pour héberger ses machines virtuellesImplémenter son Cloud privé pour héberger ses machines virtuelles
Implémenter son Cloud privé pour héberger ses machines virtuellesMicrosoft Décideurs IT
 

Tendances (17)

Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
 
Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
 
J2 ee
J2 eeJ2 ee
J2 ee
 
LinPKI
LinPKILinPKI
LinPKI
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Architectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeArchitectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythme
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybride
 
Ateliers Silverlight 2 à l'Epitech
Ateliers Silverlight 2 à l'EpitechAteliers Silverlight 2 à l'Epitech
Ateliers Silverlight 2 à l'Epitech
 
Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...
Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...
Architecture Réseau des clouds privés avec Hyper-V et System Center Virtual M...
 
Principes et Fonctionnalités Velocity 6.1
Principes et Fonctionnalités Velocity 6.1Principes et Fonctionnalités Velocity 6.1
Principes et Fonctionnalités Velocity 6.1
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
Struts
StrutsStruts
Struts
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Implémenter son Cloud privé pour héberger ses machines virtuelles
Implémenter son Cloud privé pour héberger ses machines virtuellesImplémenter son Cloud privé pour héberger ses machines virtuelles
Implémenter son Cloud privé pour héberger ses machines virtuelles
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 

Similaire à Architecture MicroServices - DotNetTlse

Cellenza microservices - tour d'horizon - v0.1
Cellenza   microservices - tour d'horizon - v0.1Cellenza   microservices - tour d'horizon - v0.1
Cellenza microservices - tour d'horizon - v0.1Radoine Douhou
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimLaurent Broudoux
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!Alexandre Touret
 
L’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitaleL’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitaleManon PERNIN
 
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Publicis Sapient Engineering
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
Kit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursKit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursStéphanie Hertrich
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficienceMichel Bruchet
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Patterns Windows Azure
Patterns Windows AzurePatterns Windows Azure
Patterns Windows AzureMicrosoft
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanneDidier Durand
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_finalagnes_crepet
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2RomainKuzniak
 
Projets collaboratifs : faites la difference avec Confluence !
Projets collaboratifs : faites la difference avec Confluence !Projets collaboratifs : faites la difference avec Confluence !
Projets collaboratifs : faites la difference avec Confluence !Ideo - Groupe Netapsys
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
devops.pdf
devops.pdfdevops.pdf
devops.pdfqsdqsd4
 
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...Djamel Zouaoui
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgile Toulouse
 

Similaire à Architecture MicroServices - DotNetTlse (20)

Cellenza microservices - tour d'horizon - v0.1
Cellenza   microservices - tour d'horizon - v0.1Cellenza   microservices - tour d'horizon - v0.1
Cellenza microservices - tour d'horizon - v0.1
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
 
L’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitaleL’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitale
 
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Kit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursKit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des Entrepreneurs
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
PFE PPT2
PFE PPT2PFE PPT2
PFE PPT2
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Patterns Windows Azure
Patterns Windows AzurePatterns Windows Azure
Patterns Windows Azure
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_final
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
 
Projets collaboratifs : faites la difference avec Confluence !
Projets collaboratifs : faites la difference avec Confluence !Projets collaboratifs : faites la difference avec Confluence !
Projets collaboratifs : faites la difference avec Confluence !
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
devops.pdf
devops.pdfdevops.pdf
devops.pdf
 
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 

Dernier

BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairidelewebmestre
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsidelewebmestre
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvreidelewebmestre
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogneidelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...idelewebmestre
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresidelewebmestre
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airidelewebmestre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsidelewebmestre
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesPierreFournier32
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleuridelewebmestre
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en Franceidelewebmestre
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 

Dernier (20)

BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chair
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Webinaire lésions podales_04.04.2024.pptx
Webinaire lésions podales_04.04.2024.pptxWebinaire lésions podales_04.04.2024.pptx
Webinaire lésions podales_04.04.2024.pptx
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitières
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pages
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en France
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 

Architecture MicroServices - DotNetTlse

  • 1. Ionut Mihalcea – Effective Labs – @imihalceaMeet-up .Net Toulouse ARCHITECTURE MICROSERVICES
  • 2. Effective Labs  Rendre la conception et le développement logiciel plus qualitatif et inspirant.  La mission est d’apporter des solutions et d'assurer la montée en compétences des personnes en travaillant sur 3 thèmes :  Conception produit  Culture Lean & Agile  Software Craftsmanship
  • 3. Pourquoi le sujet ?  Un sujet qui fait le buzz depuis 2 - 3 ans  Faire un point sur le sujet  Vous raconter une expérience en cours  Mais aussi parce que :  On commence à parler plus d’outils que des principes (je trouve ça dangereux)  Une tendance, chez certains, à penser que ça va résoudre tous leurs problèmes (je ne suis pas si sur)
  • 4. Existe t-il une définition pour les Architectures Microservices ? Réponse : Non !
  • 5. Définition par opposition !  Monolithe  Microservices
  • 6. Besoin : « Componentisation » des applications  Composant :  Changé indépendamment  Mis à jour indépendamment  Un problème déjà résolu :  Les librairies  IoC
  • 7. Besoin : Scalabilité et maitrise des couts et délais de la mise en production  Monolythe
  • 8. Besoin : Scalabilité et maitrise des couts et délais de la mise en production  Microservices
  • 9. Besoin : Scalabilité des équipes  1 Microservice = 1 équipe  2 pizzas  Autonome  Avec son propre rythme de mise en production https://youtu.be/4GK1NDTWbkY  Monolithe vs Microservices
  • 10. Une vue de haut niveau https://martinfowler.com/articles/microservices.html
  • 11. Principes de conception Cohésion  Fait une seule chose  Un seul focus Approche  Découper un service : un service a une seule raison de changer Résilience  Comportement par défaut  Fonctionnalité dégradée Approche  Prévoir les cas d’erreurs  MTTR vs MTBF Autonomie  Pouvoir les remplacer et déployer indépendamment Approche  Faible couplage  Versioning  1 service = 1 équipe Orienté métier  Une fonction ou domaine métier Approche  Identifier les domaines  Découper puis grouper les fonctionnalités Observable  Etat du système  Log et monitoring Approche  Outils monitoring et log centralisés  Comprendre l’ensemble Automatisation  Tests  Déploiements  Containers Approche  Intégration continue  Déploiement continuu
  • 12. Du moins quelques unes… Quels sont les difficultés ?
  • 13. La taille compte  Trop gros => architecture à base de monolithes  Trop micro => pas de consistance trop complexe  Pistes  Découpage des domaines business en fonctions ou groupes de fonction  2 pizzas teams
  • 14. Communication asynchrone  Asynchrone  C’est indispensable  Peut résoudre en même temps un problème de couplage A  Synchrone  Ce scenario n’est pas toujours possible B m A m B A B Message Broker
  • 15. Découverte des services  Contexte  Plusieurs clients (site web, applications mobiles)  Plusieurs services (catalogue, commande, payement…)  Le problème  Comment les clients accèdent aux services individuels?  Solution possible https://microservices.io
  • 16. Trace Distribuée  Solution possible  Log centralisé  Générer et tracer un CorrelationID (cId) A B C D E  Un scenario utilisateur implique plusieurs services  Comment l’identifier en cas de problème ? m + cId m + cId m + cId
  • 17. Changements culturels  Petites équipes autonomes  Décentralisation de la gouvernance  Produits vs projets
  • 18. Et ce n’est pas tout  Transactions distribuées  Operations de « undo » ?  2 phase commit ?  Sécurité  centralisée au niveau API Getway, ou pour chaque service ?  Reporting  Passer par une base de Reporting systématiquement ?  Conception fonctionnelle  Prévoir les fonctionnalités dégradées, gestion des cas d’erreur  …
  • 19. Peler le monolithe… Un scenario d’adoption heureux ?
  • 20. Contexte  Editeur de logiciels  Produits (age 15 ans)  ASP.NET WebForms, Framework 4  Hébergement Cloud et On-Premise  Clients : Grands comptes et administration  Utilisateurs : 450 000, 17 pays  Equipe : 9 devs, 3 fonctionnels, 3 Ops  Organisation : Scrum
  • 21. Problème  Monolithe  Défauts de conception  Problèmes de performances  Nb croissant d’incidents client  Perte de connaissance fonctionnelle  Volonté  Refondre le produit de manière incrémentale  Répondre aux problèmes du moment  Qualité  Performance
  • 23. Quel processus ? 1. Identification des domaines et sous-domaine fonctionnels 2. Ecriture de tests fonctionnels 3. Automatisation des tests fonctionnels 4. Refonte totale ou refactoring dans un librairie séparée 4. Mise en place du microservice 5. Prod. 2 sem. sur 500 utilisateurs 6. Prod. 4 sem. sur 10000 utilisateurs 7. Prod. pour tous les utilisateurs
  • 29. Et avant …  Formation technique des développeurs  Recrutement d’un chef produit  Culture DevOps  Mise en place de l’infrastructure  Fonctionnement en double des systèmes  Automatisation
  • 31. Les microservices  Composants  Orienté Métier  Produits pas Projets  Services intelligents et « plomberie » basique  Conçus en prenant en compte l’échec : résilience  Conception évolutive  Décentralisation de la gouvernance  Décentralisation des données  Automatisation
  • 32. Comparaison  Simplicité  Consistance  Refactoring inter- module  Déploiement  Disponibilité  Frontières fortes  Multi-plateforme Monolithe Microservices
  • 33. Les microservices  C’est pas nouveau (peut-être un renouveau plus pragmatique de la SOA)  Résout des problèmes mais ajoute aussi de la complexité  Au-delà de la technique nécessitent beaucoup plus de réflexion sur le plan fonctionnel  Réflexion sur l’organisation : petites équipes autonomes  Formation technique et culture DevOps
  • 34. 3 points importants  Répondent à besoin de « Scalabilité »  Approche intéressante dans la refonte d’un « monolithe »  Si on démarre un nouveau produit  Démarrer avec « monolithe » que nous maintenons modulaire  Passer aux microservices quand le monolithe devient un problème

Notes de l'éditeur

  1. Monolithe = 1 exe avec plusieurs composants qui rendent des services differents Microservices = 1 coposant = 1 exe = communication interprocess
  2. MTBF (Mean Time between Failure) : C'est la durée moyenne entre 2 défaillances. Elle est calculée sur un produit. MTTR (Mean Time To Repair) : C'est le temps moyen pour réparer le système. Il est calculé sur un équipement.