Meetup microservice

Post on 07-Jan-2017

241 views 1 download

transcript

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).