Introduction aux Architectures Microservices : introduction générale

40
SOA – Microservices Mickaël BARON – 2016 (Rév. Janvier 2017) mailto:[email protected] ou mailto:[email protected] @mickaelbaron Introduction générale

Transcript of Introduction aux Architectures Microservices : introduction générale

Page 1: Introduction aux Architectures Microservices : introduction générale

SOA – Microservices

Mickaël BARON – 2016 (Rév. Janvier 2017)mailto:[email protected] ou mailto:[email protected]

@mickaelbaron

Introduction générale

Page 2: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

2

Creative CommonsContrat Paternité

Partage des Conditions Initiales à l'Identique

2.0 France

http://creativecommons.org/licenses/by-sa/2.0/fr

Licence

Page 3: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

3

A propos de l’auteur …

� Mickaël BARON

� Ingénieur de Recherche au LIAS

� http://www.lias-lab.fr

� Equipe : Ingénierie des Données et des Modèles

� Responsable des plateformes logicielles, « coach » technique

� Responsable Rubriques Java de Developpez.com

� Communauté Francophone dédiée au développement informatique

� http://java.developpez.com

� 4 millions de visiteurs uniques et 12 millions de pages vues par mois

� 750 00 membres, 2 000 forums et jusqu'à 5 000 messages par jour

@mickaelbaron

Page 4: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

4

Plan du cours

� Contexte des applications monolithiques

� Microservice : quels sont les besoins ?

� Architecture microservices c’est quoi ?

� Comparaison avec les architectures existantes

� Technologies mises en œuvre

Page 5: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

5

Déroulement du cours : Introduction générale

� Pédagogie du cours

� Des bulles d’aide tout au long du cours

� Comprendre l’utilité des microservices

� Pas de technique pour l’instant

� Pré-requis

� Ingénierie des données

� Cours architectures orientées services

� Service web REST

Ceci est une alerte

Ceci est une astuce

Page 6: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

6

Ressources : Liens sur le Web

� Billets issus de Blog� www.nginx.com/blog/introduction-to-microservices� blog.loof.fr/2014/05/small-is-beautiful.html� cdelmas.github.io/2015/11/01/A-comparison-of-Microservices-Frameworks.html� dzone.com/articles/building-microservices-with-java� www.touilleur-express.fr/2015/02/25/micro-services-ou-peon-architecture� klangism.tumblr.com/post/80087171446/microservices

� Articles� microservices.io/patterns/microservices.html� martinfowler.com/articles/microservices.html� www.voxxed.com/blog/2015/01/good-microservices-architectures-death-enterprise-

service-bus-part-one� dzone.com/storage/assets/293353-rc215-microservices.pdf

� Présentations� fr.slideshare.net/gboissinot/p-microservices101-20150210� www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-architectures.pdf� fr.slideshare.net/jpetazzo/docker-quels-enjeux-pour-le-stockage-et-reseau-paris-open-

source-summit-2015

Page 7: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

7

Ressources : Bibliothèque

� The art of Scalability� Auteur : Michael T. Fisher and Martin L. Abbott� Éditeur : Addison Wesley� Edition : Juin 2015 - 624 pages - ISBN : 0134032802

� Continuous Delivery� Auteur : Jez Humble et David Farley� Éditeur : Addison Wesley� Edition : Août 2010 – 512 pages - ISBN : 0321601912

� Building Microservices� Auteur : Sam Newman� Éditeur : O’Reilly� Edition : Fév. 2015 – 280 pages - ISBN : 9781491950357

Page 8: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

8

Evolution des applications … retour

� Exemple : application de co-voiturage

Architecture dite « Monolithique »

Architecture Orientée Service

Clients

ArchitectureMicroservice

Une grosse application

Clients

Base de données

Interfacesweb

Connecteur pour envoie SMS

API REST/SOAP

Connecteur pour envoie EMAIL

Connecteur pour paiement (Paypal)

Entreprise Service Bus

Une Application découpée par des services techniques reliés

par un bus d’intégration

Une Application découpée par des services fonctionnels

Clients

Service Conducteur

Interface web Passager

Connecteurs pour SMS, EMAILet paiement

Interfaces webBase de donnéesAPI REST/SOAP

Service Notification

(SMS, EMAIL)

Service Paiement

Service Facturation

Service Passager

Bus d’événements

Page 9: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onApplication monolithique : rappel

9

� Un gros code contenant toutes les fonctionnalités et les

différentes couches logicielles

� Une seule grosse compilation et un seul

livrable (un gros fichier WAR)

� Une seule pile logicielle (Linux, JVM, Tomcat

et bibliothèques tierces)

Présentation

Logique métier

Accès données

Page 10: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onArchitecture microservice : Généralités

10

� Premières discussions autour du terme microservice en

2011 lors d’un workshop sur les architectures logicielles

� Les architectures microservices sont une évolution, une

spécialisation des architectures orientées services (SOA)

� Vu comme une bonne pratique du SOA (ma vision)

� Articles de référence

� http://martinfowler.com/articles/microservices.html

� https://www.nginx.com/blog/introduction-to-microservices/

Page 11: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onMicroservice : Concepts

11

� Des concepts présentés dans le premier cours restent

valables (réutilisabilité, autonomie, sans état…)

� Huit nouveaux aspects caractérisent un microservice

� Fonctionnalité unique

� Flexibilité technologie

� Equipe réduite

� Déploiement ciblé

� Montée en charge « scalabilité »

� Tests facilités

Page 12: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onUne seule fonctionnalité

12

� Un microservice doit réaliser une seule fonctionnalité de l’application globale

� Un microservice peut contenir toutes les couches logicielles (IHM, middleware et base de données)

� Un microservice possède un contexte d’exécution séparé des autres (exemple : machine virtuelle ou conteneur)

Service ConducteurService Passager

Service Notification(SMS, EMAIL)

Service Paiement Service Facturation

Interfaces web Passager

Pour les applications web, séparer dans un

microservice spécifique permet de fournir des

expériences différentes aux utilisateurs

Page 13: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onFlexibilité technologique

13

� Utiliser les bons langages et frameworks selon la fonction-nalité à réaliser� Play/Scala� Java EE (JSF/EJB/Java), Spring� JQuery/AngularJS/NodeJS� Django/Python� Symfony/PHP

Service ConducteurService Passager

Service Notification(SMS, EMAIL)

Service Paiement Service Facturation

Interface web Passager

Page 14: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onEquipe réduite

14

� Chaque microservice à sa propre équipe de développement� L’équipe de développement orientée fonctionnalité est réduite

et pluridisciplinaire� Développeurs backend� Développeurs web� Administrateurs bases de données

Service ConducteurService Passager

Service Notification(SMS, EMAIL)

Service Paiement Service Facturation

Interface web Passager

Page 15: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onDéploiement ciblé

15

� Evolution d’une certaine partie sans tout redéployer � Un seul livrable à partir d’un seul code source� Moins de coordination entre équipe quand il y a un seul

déploiement� Plus souvent� Moins de risque� Plus rapide

Service ConducteurService Passager

Service Notification(SMS, EMAIL)

Service Paiement Service Facturation

Interface web Passager

V1.0 V1.0 V2.0

V10.0 V5.0V545.2

Page 16: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onMontée en charge / scalabilité

16

� Forte sollicitation sur un microservice ?� page web : Amazon en période de « Black Friday »

� batch : compression de vidéos

� Comme chaque fonctionnalité est isolée possibilité de multiplier le nombre d’instances d’un microservice

Service ConducteurService Passager

Service Notification(SMS, EMAIL)

Service Paiement Service Facturation

Interface web Passager

V1.0 V1.0 V2.0

V10.0 V5.0V545.2

Trois instances du même

microservice

Page 17: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onMontée en charge / scalabilité : cube de scalabilité

17

Scalabilité Axe YDécomposition

fonctionnelle

� Le livre « The art of Scalability » décrit trois dimensions pour la scalabilité

Scalabilité Axe XCloner

Application monolithique

(JEE Application)

Partitionner les données selon les besoins• Volumétrie excessive pour les

fichiers vidéos ou musiques • Zone géographique

Autant de microservicesque de fonctionnalités

Cloner les microservices qui ont une forte sollicitation (nécessite un loadbalancer)

Utilisation d’un loadbalancerdans le cours

suivant

Netflix

Page 18: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onFacilite les tests

18

� Comme chaque fonctionnalité est isolée dans un microserviceil est plus facile de les tester

� Les tests unitaires concernent la partie intrinsèque d’un microservice => on sait déjà faire

� Quels types de tests restants ?

� Service : stresser l’API exposée du microservice

� Bout-en-bout : intégrer les autres microservice (voir architecturemicroservice)

� Si c’est facile à tester alors c’est facile à déployer (principe du déploiement continu)

Page 19: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onArchitecture microservice

19

� Une architecture microservice est donc un ensemble de microservices autonomes

� Pas de bus d’intégration (ESB) car il y a de la logique et donc cela force le couplage

� Utilisation d’un Bus d’événements pour le faible couplage � Utilisation d’un Load Balancer pour équilibrer la charge

Service ConducteurService Passager

Service Notification(SMS, EMAIL)

Service Paiement Service Facturation

Interface web Passager

V1.0 V1.0 V2.0

V10.0V5.0

V545.2

Bus d’événements

LoadBalancer

Synchrone

AsynchroneCharge équilibrée

Page 20: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

20

Applications Monolithique Versus Microservice

q Une seule grosse application

pour toutes les fonctionnalités

q Un seul langage pour

faciliter la communication

q Couplage fort

q Communication par les

données

Architecture Orientée Service

VS

Architecture Microservice

q Autant de microservices

que de fonctionnalités

q Plusieurs langages utilisés

et API Rest pour l’exposition

q Couplage faible

q Communication par les

services

Page 21: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

on

21

SOA Versus Microservice

q Standards définis par OASIS

SOAP, BPEL

q Couplage fort

q Bus d’intégration

q Plusieurs fonctionnalités par

service

q Déploiement monolithique

Architecture Orientée Service

VS

Architecture Microservice

q Standards du web

q Couplage faible

q Bus d’événement

q Une seule fonctionnalité

par microservice

q Automatiquement déployable

Page 22: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onArchitecture microservices : inconvénients

22

� Plus de compilation lors de l’intégration pour vérifier si une

API est cassée ou pas

� Multiplication des SGBD utilisés (relationnel ou NoSQL) et

donc compétences nouvelles

� Développeur devient un opérationnel pour le déploiement

� Ne s’applique pas à toutes les entreprises

� Si déploiement fréquent => ok

� Si déploiement une fois l’an => monolithique

Page 23: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onQui utilisent les microservices ?

23

� Uber : https://eng.uber.com/soa/

� Netflix : http://techblog.netflix.com/

� Amazon : http://fr.slideshare.net/apigee/i-love-apis-2015-

microservices-at-amazon

� Sound Cloud : https://developers.soundcloud.com/blog/building-

products-at-soundcloud-part-2-breaking-the-monolith

� Le prochain Eclipse Che IDE

� Offres d’emploi (tendances à la hausse) � https://www.linkedin.com/jobs/search?keywords=Micro+Services&location=France

� http://www.meteojob.com/candidate/offers/candidateOffersSearchResults.mj?q=micro+service+macro-job%3A14&cid=281982

Page 24: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onDévelopper des architectures microservice ?

24

� Savoir Isoler un microservice

� Savoir Coder le contenu du microservice

� Savoir faire Communiquer des microservices

� Savoir Composer les microservices

� Savoir Répartir les charges

On va explorer les technologies du marché. Dans le cours suivant, on se focalisera sur une technologie

pour chaque point

Page 25: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onIsoler : Machine virtuelle ou Conteneur ?

25

� Pour isoler un microservice utilisation de techniques de virtualisation

� Trois grandes techniques s’affrontent

ConteneursMachine VirtuelleServeurs physiques

Serveur MatérielServeur MatérielServeur Matériel

OSOS

Serveur Matériel

OSOS

ApplicationApplication Docker

BinairesBibliothèques

BinairesBibliothèques

Application Application

Hyperviseur

OS VirtualiséOS Virtualisé

BinairesBibliothèques

BinairesBibliothèques

Application Application

1 Application = 1 machine physique

= trop coûteux

Page 26: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onIsoler : Machine virtuelle VS Conteneur

26

Machine Virtuelle(574 Mo)

Conteneur(100 Ko)

Démarrage ~ 1 minutes 0.2 seconde

Mémoire min 256 Mo ~ 0.3 Mo

Espace Disque min 1 Go ~ 0.1 Mo

� Comparatif sur les performances

2500 conteneurs ont été créés dans un Raspberry PI 2

https://blog.docker.com/2015/09/update-raspberry-pi-dockercon-challenge/

Page 27: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onIsoler : les outils existants

27

� Les outils pour construire des machines virtuelles� Hyperviseur type 1 : Xen, VMware vSphere, Microsoft HyperV, KVM

� Hyperviseur type 2 : Oracle VirtualBox, VMware Player, QEMU

� Les outils pour construire des conteneurs� Conteneur : Docker, CoreOS Rocket, LXC

� Docker (https://www.docker.com) => le plus tendance …� Basé sur LXC mais plus simple à mettre en œuvre

� Dispose d’un dépôt central fournissant des images prêtes à l’emploi

� Logiciel libre

Service ConducteurV5.0

Ce microservice est isolé dans un

conteneur

Page 28: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder

28

� Utiliser les plateformes logicielles (Java, Python, JavaScript)

que vous avez l’habitude d’utiliser

� Utiliser votre environnement de développement préféré

(Eclipse, IntelliJ, Netbeans, Atom…)

� Utiliser des bibliothèques qui permettent d’exposer des

services web (Rest ou SOAP)

� Automatiser le déploiement de votre application afin de

minimiser le temps

Page 29: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (sans microservice)

29

Serveur Matériel

OS

Conteneur Java EE

Bibliothèques Jar partagées

Bibliothèques JAR

Classes

� Actuellement une application web (war) développée en Javaest déployée dans un serveur d’application Java

Autres ApplicationsBibliothèques

JAR

Classes

Contexte de l’application (war) Contient les classes

et les ressources

Contient les Bibliothèques Java

spécifiques

Contient les bibliothèques

globales à tous les War

Page 30: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (avec microservice)

30

� Trois stratégies pour développer des microservices en Java� in-container : conteneur Java EE et un War (comme avant)

� container-less : un gros Jar contenant toutes les bibliothèques

� self-contained : un gros Jar en utilisant un micro-framework

In-container Container-less Self-containedServeur Matériel

OS

Docker

BinairesBibliothèques

BinairesBibliothèques

Conteneur JavaEE Application

BibliothèquesJAR

WAR

Serveur Matériel

OS

Docker

BinairesBibliothèques

BinairesBibliothèques

Application

JAR

ConteneurJavaEE

embedded

BibliothèquesJAR

Serveur Matériel

OS

Docker

BinairesBibliothèques

BinairesBibliothèques

ApplicationJAR

BibliothèquesJAR

Page 31: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (container-less en détail)

31

� Le serveur d’application est embarqué dans l’application

� Le code source est le même que pour une application War

� Un gros Jar est distribué et prêt à l’exécution

� Solutions du marché

� Apache TomEE (anciennement OpenEJB)

� Wildfly Swarm (anciennement JBoss)

� Payara (à base de Glassfish)Serveur Matériel

OS

Docker

BinairesBibliothèques

BinairesBibliothèques

Application

JAR

ConteneurJavaEE

embedded

BibliothèquesJAR

$ java -jar my-big-app-container-less.jar

Page 32: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (container-less en détail)

32

� Avantages

� Pas d’adaptation du code à faire, une simple méthode main à ajouter

� Rapide à démarrer

� Pratique pour les tests fonctionnels

� La plupart des serveurs d’application sont « embedded »

� Inconvénients

� Ne fournit pas toutes les fonctionnalités d’un serveur (admin ?)

� Difficulté de modification du serveur à chaud ?

� L’application est dépendante du serveur, recompiler pour changer

� Fournit toutes les bibliothèques de la pile Java EE (module profile)

Page 33: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (self-contained en détail)

33

Serveur Matériel

OS

Docker

BinairesBibliothèques

BinairesBibliothèques

Application

JAR

BibliothèquesJAR

� Utilisation d’un micro-framework

� Le code source doit être adapté

� Un moyen Jar est distribué et prêt à l’exécution

� C’est quoi un micro-framework ?

� Framework orienté web minimaliste

� Opposé au framework qui font tout full-stack

� N’impose pas de structure à l’application

� Facilement interchangeable

$ java -jar my-big-app-self-contained.jar

Page 34: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (self-contained en détail)

3434

� Micro-frameworks existants pour faciliter le développement

� KumuluzEE => très simple

� Dropwizard (Java)

� Vert.x (Java et autres)

� Spring Boot (Java)

� Restlet (Java)

� Spark (Java)

� Jodd (Java)

� Node.js, Seneca (JavaScript)

� Flask (Python)

� Sinatra (Ruby)

� Lumen (PHP)

� Silex (PHP)

� …

Page 35: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCoder : le cas de Java (self-contained en détail)

35

� Avantages

� Délivre le strictre nécessaire (configuration à la “carte”)

� Fournit par conséquent un Jar moins gros que container-less

� N’impose pas de structures dans l’application

� Inconvénients

� Apprentissage d’une nouvelle bibliothèque

� Configuration parfois un peu complexe

� Nombre important de micro-frameworks sur le marché, fait-on le bon

choix ?

Page 36: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onCommuniquer

36

� La communication entre des microservices peut se faire « conjointement ou pas » via� des services web (REST ou SOAP) => communication synchrone

� un bus d’événements => communication asynchrone

� Bus d’événements basés sur le protocole AMQP (AdvandedMessage Queuing Protocol)

� Solutions de bus d’événements basé sur AMQP� RabbitMQ (Pivotal) => le plus utilisé et documenté

� ActiveMQ, Apollo (Apache)

� Qpid (Apache)

� HornetQ (Jboss)

Page 37: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onComposer

37

� La composition va permettre de résoudre le problème d’orchestration des conteneurs

� Exemple simple pour comprendre cette problématique � A = un conteneur pour la base de données (MySQL)� B = un conteneur applicatif� A doit être démarré avant B et B a besoin d’accéder à A (ouverture de port)

� Solutions du marché� Docker Compose (Docker inc.) => le plus simple� Docker Swarm (Docker inc.)� Kubernetes (Google) � Mesos (Apache)� Fleet (CoreOS)� Crane (https://github.com/michaelsauter/crane)� Consul

Page 38: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onRépartir la charge : reverse proxy

38

� Problématique du pourquoi utiliser un reverse proxy � Plusieurs conteneurs Docker vont être créés� Plusieurs conteneurs d’une même image peuvent être créées

� Reverse Proxy ou « Proxy inversé »� Donne accès depuis un réseau externe aux conteurs

d'un réseau interne� Distribuer en fonction de la charge, les requêtes web aux conteneurs

les moins occupées (d’une même image par exemple)

� Solutions libres du marché� Nginx (Nginx inc.) => largement utilisé et très simple� Haproxy� Hipache (Docker inc.)� Træfik

Une image est le binaire qui sert à

créer un conteneur : voir prochain cours

Page 39: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onBilan

39

� L’architecture microservices n’est pas la solution à tous les problèmes de performances d’un applicatif

� Problèmes courants� Modélisation

� Persistance des données

� Transaction

� Front-end non adapté

� Les microservices adresse le problème d’architecture et sont là pour faciliter la monter en charge

� Attention : il n’a jamais été précisé que les architectures monolithiques étaient mortes

Page 40: Introduction aux Architectures Microservices : introduction générale

Microservices - Généralités - M. Baron - Page

keul

keul

.blo

gspo

t.com

@m

ickae

lbar

onPour aller plus loin

40

� Les bonnes pratiques pour passer à une architecture

microservices => partir d’une application monolithique

� Déploiement vers des clusters

� Monitoring

� Transaction

� Sécurité