Introduction aux Architectures
Web Distribuées
Module Applications Web Distribuées
A.U 2022-2023
1
Plan du module
Charge horaire: 21h
Pré-requis : Java, SOA, ingénierie des données
1.Introduction aux Applications Web Distribuées
2.Architecture Microservices
3.Implémentation de Microservices
4.Dockerisation
5.Service de découverte
6.Routage et filtres
7.Sécurisation de l’architecture microservices
2
2
Objectifs
Distinguer les faiblesses de l’architecture monolithique.
SOA et l’émergence des Microservices.
Microservices : différences avec SOA, avantages, quand
sont-ils recommandés ?
Préparation de l’environnement de travail.
3
Evolution des paradigmes de programmation
Langage bas niveau
Sous programmes: Procédures, fonctions (Basic, Pascal,
C, Fortran,..)
Objet = Etat+ Comportement + Identité Concepts
fondamentaux : Objet, classe, Héritage, polymorphisme,
encapsulation (C++, JAVA, C#, ..)
Objets distribués sur plusieurs machines Middlewares :
(RMI, CORBA, JMS, …)
Objets distribués, réutilisables, configurables,
Interchangeables, évolutifs: Conteneur (EJB, Spring)
Composant disponibles à d’autres applications distantes
hétérogènes via des protocoles (http) transportant des
données: XML, JSON => SOAP et REST
Programmation Orientée Microservices distribués, scalabilité, division en unités
Microservices plus petites
4
Architecture monolithique
Paiement Statistique
Panier
une seule instance
5
Architecture monolithique
6
Architecture monolithique
Une application monolithique
développée en un seul bloc (war, jar, Ear).
déployée d’une manière unitaire dans un serveur d’application.
7
Architecture monolithique
8
Architecture monolithique
Avantages ?
Déploiement facile: un seul fichier exécutable
Développement rapide: L'app étant basée sur une seule base de
code, elle est simple à prendre en main.
Tests simplifiés: les tests de bout en bout peuvent être effectués
plus rapidement qu'avec une app distribuée.
9
Architecture monolithique
Limites ?
Fiabilité: Si une erreur survient dans un module, elle peut
affecter la disponibilité de toute l’application,
Manque de flexibilité: Limiter par les technologies déjà
utilisées en son sein.
Déploiement: Un changement mineur apporté à l’app nécessite
le redéploiement.
,,,,,,,,,, 10
Architecture monolithique
Solution ?
Les micro services
Martin fowler
Approche permettant de développer une application unique sous
la forme d’une plusieurs services.
Ces services sont construits autour des capacités de l’entreprise
et peuvent être déployés d’une façon indépendante.
11
De l'application monolithique aux
Applications à base de microservices
12
L’architecture micro services
L’architecture en micro services est une approche servant à concevoir une
application unique basée sur un ensemble de petits services indépendants.
Chaque micro service s’exécute dans un processus qui lui est propre et
communique via un protocole léger, le plus souvent à base de ressource HTTP
(tel que REST –Représentationnel State Transfer- par exemple).
13
De l'application monolithique aux
Applications à base de microservices
14
L’architecture micro services
Caractéristiques
Application autonome
Organisé autour des capacités métier
Produit et non plus projet
Gouvernance décentralisée.
Management de donnée décentralisée.
15
Outils clés pour une
architecture micro services
1- Conteneurs:
l'empaquetage d'une app et de toutes ses dépendances
Ils sont plus petits et plus légers que les machines virtuelles/OS
Ils peuvent être mis en place et supprimés plus rapidement
Une solution idéale pour les micro services
16
Outils clés pour une
architecture micro services
2- Passerelles/Gateway:
Service implémenté entre le client et le backend (micro services)
Requête Réponse
Avantages:
Complexité réduite (Client)
Sécurité
Temps de réponse rapide
17
Outils clés pour une
architecture micro services
3- Maillage de services
Une couche de messagerie dynamique visant à faciliter la communication entre
micro services.
Utilisation du modèle « Side-car ».
Un schéma de conception applicatif qui extrait certaines fonctionnalités
Transférer le trafic depuis et vers le container
Diriger la communication avec d’autres proxy sidecar/les connexions entre
les services
18
Outils clés pour une
architecture micro
4- services !
Découverte de services
Un moyen pour localiser sur un réseau les applications et les micro services.
Pour implémenter la découverte des services dans l’architecture de micro
services il faut :
Un modèle de découverte côté client : recherche le registre des services
afin de localiser un fournisseur de services
Un modèle de découverte côté serveur: Présente une vue globale des
adresses
19
Outils clés pour une
architecture micro
services !
20
SOA Vs MSA
SOA MSA
Architecture Conçue pour partager les ressources entre les Conçue pour accueillir des services pouvant
services fonctionner de manière autonome
Stockage de données Partage du stockage des données entre les Stockage des données Indépendant
services
Communication Entreprise Service Bus (ESB) Couche API
Taille Applications à grande échelle Application de petite taille sur le web
Déploiement Moins de flexibilité Rapide
Services REST, JMS SOAP
21
Les micro frontends
L'architecture micro-frontend est une approche de conception dans laquelle
une application frontale est décomposée en « micro-applications ».
C’est une approche permettant de créer des sous applications qui sont
individuelles et semi-indépendantes et qui travaillent ensemble de manière
lâche.
Le concept de micro-frontend s’inspire globalement des micro services et
porte son nom
22
Les micro frontends
Les avantages du modèle micro-frontend incluent:
Les architectures micro-frontend peuvent être plus simples, et donc plus
faciles à raisonner et à gérer.
Les équipes de développement indépendantes peuvent collaborer plus
facilement sur une application frontale.
Ils peuvent fournir un moyen de migrer à partir d’une « ancienne »
application en faisant fonctionner une « nouvelle » application côte à côte.
23
Les micro frontends
24
Références
. [1]
https://www.technologies-ebusiness.com/enjeux-et-tendances/archite
ctures-micro-services-objectifs-benefices-defis-partie-1
[2] Nick Pratt, « Using Hazelcast with Microservices », Vertex
Integration, Juin 2016
[3]
https://dzone.com/articles/microservices-vs-soa-whats-the-difference
25
Merci de votre attention
26