Microservices
REXsur l’architecture
Microservices
Sommaire
• Introduction• Du développement à la production• Le bilan
Sommaire
• Introduction• Du développement à la production• Le bilan
Introduction
• Qu’est ce que l’architecture Microservices ?• Le contexte
Architecture Microservices
Transformation Lean de l’architecture
Architecture Microservices
Petit
Autonome
Fait une chose et le fait bien
Vision Business
Architecture MicroservicesCode sous contrôle
Interface simple
Interface expressive
Architecture Microservices
Couplage faible
Groupe de microservices
Architecture Microservices
Sandbox
Pas de technologie en particulier
Architecture Microservices
Architecture MicroservicesDesign
Pourquoi lesmicroservices
Module à taille humaine
Pourquoi lesmicroservices
La scalabilité
Modélisation d’un microservice
Image de base
La configuration
L’applicationComposants
Le script de démarrage
Paramètres de démarrage
Input
Le contexte
Le livre
Sommaire
• Introduction• Du développement à la production• Le bilan
Le développementGithub Flow
Création de la branche (feature, hotfix …)
Le développementGithub Flow
Commits (développements)
Le développementGithub Flow
Ouverture de la pull request (Release candidate)
Le développementGithub Flow
Revue du code & discution
Le développementGithub Flow
Déploiement de la release
Le développementGithub Flow
Merge de la release
Github FlowComment est utilisé github chez traxair
Le développement
editor.swagger.ioswagger.io
Le développement
Le développementDevBox
Devbox
Docker ComposeMakefile
DevboxFicher compose
Service_X: image: registry.com/Service_X ports: - "443:443" volumes: - Service_X/app:/app - Service_X/Service_X.env:/Service_X.env command: dev
L’outillageContinuous Integration
Continuous Integration
Continuous IntegrationArchitecture
Continuous IntegrationQu’est ce qui doit être testé ?
Relation d’ordre topologique sur composants connexes du graphe orienté acyclique
Continuous IntegrationLes tests
Environnement isolé et propre
• Test unitaire• Service• End to end
Temps moyen d’un test 1 minute
Continuous IntegrationLes tests
Emulation d’un microservice (stub)
Continuous IntegrationLe build
Temps moyen d’un build• Librairie : 1 minute• Microservice : 10 minutes• Image de base : 20 minutes
Continuous IntegrationReporting
Continuous Integration
Code ReviewQualité de code
ProductionL’infrastructure
ProductionLe déploiement
Tutum
Gestion de la configuration
Différents types de microservices
Réseau
ProductionLe monitoring
• Datadog, monitoring as a service• ELK, centralisation des logs et traitement
Sommaire
• Introduction• Du développement à la production• Le bilan
Le bilan
Les microservices, c'est bien, mais c'est difficile à mettre en place (et ça nous a ralenti).