Microservices: Concepts, Use Cases, and Differences Across Platforms

Page 1 sur 19Lecteur de document UniversityLib

Microservices: Concepts, Use Cases, and Differences Across Platforms

Software Architecture · notes

Voir tous les documents en génie logiciel

Dr. Rim Samia Kaabi

Les micro-services

Position du probl me:

architecture monolithique

06/12/2019

1

1

2

06/12/2019

Architecture monolithique

" Applications N-tiers.

"

" Chaque modification n cessite de red ployer la totalit de

IHM, core, acc s aux BDD.

l'application.

" Chaque modification n cessite de re-tester l'ensemble de

l'application.

" Difficile de garder au fil du temps une bonne structure

modulaire.

" Mise l'echelle couteuse.

" Manque de diversit technologique.

" Pas facile de changer un composant.

3

Architecture monolithique

Avantages

" Technologies homog nes

Types dobjets / composants adapt s aux besoins architecturaux

Stack mainstream -> facilement int grable

" Framework

Puissance, g n ricit , services annexes&

" D ploiement

Simple, outils int gr s dans la stack

" Coh sion de l quipe de d veloppement

4

2

Architecture monolithique

Inconv nients

" Technologies homog nes

Types dobjets / composants pas toujours adapt s aux besoins

m tier

Int gration de composants dans dautres technos difficile

Choix technologiques long terme

" Framework

Peut devenir charg quand la complexit de lapplication augmente

" D ploiement

N cessite larr t de toute lapplication

Peut prendre du temps quand lapplication grossit

" Couplage fort entre les quipes de d veloppement

Architecture monolithique

Inconv nients

" Scalabilit

Verticale

Lapplication a la responsabilit de s auto-scaler

Limit e aux ressources du serveur

Horizontale

N cessite de r instancier lOS et le framework

Gestion des ressources partag es lext rieur de

lapplication

5

6

06/12/2019

3

06/12/2019

Architecture orient e services

7

Architecture orient e services

Avantages

" Modularit , couplage faible

S paration des pr occupations (et des

d veloppements)

Libert des choix technologiques

Possibilit de red ployer composant par composant

Ind pendance des quipes de d v

" Interfaces de communication r seau

P rennit des standards

Distribution possible

8

4

Architecture orient e services

Inconv nients

" Complexit

Publicité

Des m canismes de communications

Des architectures applicatives

" Plus adapt es

Aux environnements distribu s

Aux changes de services entre plusieurs applications

Changement de vitesse

9

10

06/12/2019

5

06/12/2019

Plus rapide et de meilleure qualit

Plus rapide et de meilleure qualit

11

12

6

06/12/2019

Micro-service?? Juste un buzz!!!

Int r t relatif par rapport

d'autres outils

13

14

7

06/12/2019

Architecture micro-services

15

Micro-service: origines

" L'expression Micro-Web-Services a t utilis e pour la toute premi re

fois lors d'une conf rence sur le cloud computing par le Dr. Peter Rodgers,

en 2005

" Le terme microservices a fait son apparition lors d'une conf rence

d'architectes de logiciels au printemps 2011.

" Le concept de microservices n'est pas nouveau:

" Google, Facebook et Amazon utilisent cette approche diff rents

degr s depuis plus de dix ans.

" Une simple recherche avec Google, par exemple, fait appel plus de

70 microservices avant d'afficher la page de r sultats.

" D'autres architectures capables de r soudre certains des probl mes

que les microservices: SOA (inconv nient est de ne pas pouvoir traiter

les communications asynchrones.

16

8

D finition dun micro-service

" Un type d'architecture logicielle dans laquelle les grosses applications sont

con ues partir de petites unit s autonomes qui interagissent via des API

ind pendantes du langage logiciel utilis .

" Chaque service a une port e limit e, se concentre sur une seule t che et

est totalement ind pendant.

" Cette configuration permet aux directeurs IT et aux d veloppeurs de

construire des syst mes modulaires.

" Sam Newman* d finit les micro-services comme des petits composants

sp cialis s dans l'ex cution parfaite d'une seule t che.

* Building Microservices

17

Micro-service: caract ristique

1. une mise en Suvre de syst mes distribu s

2. 1 application = 1 besoin fonctionnel

3. pas de partage de bases de donn es

4. communications exclusives par le r seau (HTTP ou

protocole d di si besoin)

5. chaque application peut faire les choix techniques adapt s

(langages, frameworks, ...)

6. chaque application poss de son cycle de vie

18

06/12/2019

9

06/12/2019

Micro-service: caract ristique

19

Micro-service: caract ristique

Subdivision en composants : Les micro-services sont des

unit s ind pendantes, facilement rempla ables et actualis es.

Ces unit s recourent des services, tels que des appels de

proc dure distance ou des demandes de service Web, pour

communiquer.

Fonctionnalit s d'entreprise : Le d veloppement d'applications

traditionnelles am ne souvent le personnel tre r parti par

exemple en quipe c t serveur et quipe base de

donn es .

Le d veloppement des micro-services est ax sur la

fonctionnalit d'entreprise, avec une responsabilit pour toute

Publicité

une s rie de fonctions couvrant l'exp rience utilisateur et la

gestion

de projet.

20

10

Micro-service: caract ristique

Des produits plut t que des projets : Au lieu de se concentrer

sur un projet logiciel qui est livr une fois termin , les

microservices traitent les applications comme des produits dont

ils ont la responsabilit . Ils tablissent un dialogue continu visant

faire correspondre en permanence l'application la fonction

commerciale.

Connexions simples et points d'acc s intelligents : Les

applications microservices ont leur propre logique. Les

ressources souvent utilis es sont facilement mises en cache.

Gouvernance d centralis e : Des outils sont d velopp s et

partag s pour traiter les probl mes similaires ceux rencontr s

dans d'autres quipes.

Micro-service: caract ristique

21

22

06/12/2019

11

06/12/2019

Micro-service

LASTIQUE

Un Microservice doit pouvoir tre d ploy un nombre de

fois qui varie en fonction de la demande, et ce,

ind pendamment des autres services dans la m me

application (pas d'adresses r seau en dur (annuaires types

ZooKeeper, ..))

.

Pour la d couverte :

1. Load balancer (round robin, sticky sessions, etc)

2. DNS !

23

Micro-service

R SILENT

Un Microservice doit chouer sans affecter d'autres

services dans la m me application

Les noeuds doivent mettre en Suvre des m canismes de

r plication, consensus distribu , lection, etc.

24

12

Micro-service

API

Les Microservices doivent avoir une API stable, coh rente

et bien document e. https://openapis.org/

MINIMAL MAIS COMPLET

Un Microservice doit tre le plus petit possible mais pas

plus petit. Il doit offrir une fonction compl te avec des

d pendances minimales avec les autres services.

25

Micro-service

" Concepts

Domain-Driven Design -> Bounded context

" D coupage dun projet en groupements fonctionnels

" Isolation de ces groupements entre eux

" Chaque groupement est un mini-projet ind pendant

D veloppement

D ploiement

Services de support et de pilotage

Un microservice est un running bounded context

Dumb pipe, smart endpoint

" Le bus reste le plus simple possible (ne contient plus de

m tier)

" La logique de communication est dans les services et non

26

entre eux

06/12/2019

13

06/12/2019

Micro-service

" Une application = un assemblage de petits

services ind pendants

Chaque microservice r alise un processus m tier ou

une pr occupation transverse

" capability , unit fonctionnelle

" Ex : vente, CRM, comptabilit , front-end, GUI&

Techniquement, les services sont

" Programm s dans des langages h t rog nes

Publicité

" Ex cut s dans des processus s par s

" Li s leurs propres supports de persistance

" D velopp s et d ploy s dans des projets distincts

27

Micro-service

La gestion centralis e de l'application est r duite au

minimum

Communication par m canismes l gers

" Op rateur | (pipe)

" REST

Les services peuvent utiliser des m canismes de stockage

diff rents

L intelligence de lapplication est r partie dans les services

et non dans un m dium de communication centralis (ESB)

28

14

Micro-service

Aspects humains: lorganisation entre les quipes

doit refl ter larchitecture du produit

Des quipes plus petites

agilit , autonomie, efficacit

Chaque quipe est responsable dun service

" Choix technologiques, conception, d ploiement,

maintenance

Avantages pour le produit

" Cycles de d veloppement courts

" D ploiements ind pendants

" Meilleure isolation des / tol rance aux bugs

29

Micro-service: avantages

" Agilit

Conception l chelle de la fonctionnalit

Isolation des fonctionnalit s

" L g ret

Permet de sabstraire de la couche OS (VM)

" Scalabilit

Verticale : permet de ne r pliquer que les services charg s

Horizontale : d port des services les plus charg s vers des nSuds

diff rents

30

06/12/2019

15

Micro-service: inconv nients

" Overhead

N cessite une communication orient e-message entre les

services (vs. appel de m thodes)

N cessite une surveillance du fonctionnement des services

(monitoring, tol rance aux pannes, pilotage)

Acc s aux ressources partag es

" Humain

N cessite que les quipes soient effectivement structur es

selon larchitecture du produit

" Vision / mise au point globale de lapplication

Pas triviale, peut n cessiter plusieurs it rations

31

Micro-service: pi ges

Granularit

" Jai regroup plusieurs services en un seul macro-service

" Chaque m thode de mon application est devenue un micro-

service

Architecture globale

" Il est tr s difficile de comprendre ce qui se passe entre mes

services

" La recherche dinformation dans les logs est trop longue

" Impossible de relancer ou ajouter rapidement des instances de

mes services

32

06/12/2019

16

06/12/2019

La motivation qui pousse utiliser les

Microservices

" Frustration de ne pas obtenir le r sultat souhait avec une

architecture monolithique.

" Arriv e sur le march d'outils permettant le d ploiement des

applications Microservices avec plus de facilit .

" Large adoption des solutions d'infrastructure en tant que

service (IaaS).

" Le passage des grosses soci t s du Web vers des

architectures compl tement Microservices.

Dans un avenir plus ou moins proche les applications

Publicité

monolithiques ne serviront qu'au prototypage

33

SOA versus micro-services

" SOA supporte le WSDL, qui fixe les points d'acc s du service

de mani re tr s typ e les micro-services disposent de

connexions toutes simples et de points d'acc s intelligents.

" SOA n'a pas d' tat les micro-services en ont de nombreux

et utilisent des structures de POO qui rassemblent les

donn es et la logique.

34

17

Micro-service et DevOps

" Une approche DevOps est cruciale pour d terminer le cadre

d'utilisation des microservices.

" Le d veloppement des services est continu et leur

ajustement la vol e.

" Les quipes DevOps doivent assurer la mise en production

des composants actualis s, en travaillant troitement avec

les intervenants internes et les fournisseurs sur les mises

jour.

35

Diff rence des micro-services

selon les plateformes

Java

vite d'utiliser les fichiers Web Archive ou Enterprise Archive.

Les composants ne sont pas auto-d ploy s. Des conteneurs Docker ou

des Amazon Machine Images le sont la place.

PHP

Des microservices PHP de type REST sont d ploy s depuis d j

plusieurs ann es car ils sont :

Tr s flexibles au niveau de l'entreprise.

Facilement et rapidement test s.

Python

Il est simple de cr er un service Python servant de service Web front-end

pour les microservices dans d'autres langages tels qu'ASP ou PHP.

Un grand choix de frameworks performants, comme Flask ou Django, est

propos .

Il est important de bien comprendre l'API pour acc l rer le prototypage.

Possibilit d'utiliser Pypy, Cython, C++ ou Golang s'il faut plus de vitesse

ou d'efficacit .

36

06/12/2019

18

Diff rence des micro-services

selon les plateformes

Node.js

Node.js est un choix naturel pour les microservices, car c'est le langage des

applications Web modernes.

Parmi ses avantages :

S'appuie sur JavaScript et tire parti du puissant moteur open-source

V8 de Google.

Code machine optimis de fa on dynamique pendant l'ex cution.

Processus du serveur HTTP l gers.

E/S non bloquantes, pilot es par v nements.

Gestion des paquets de haute qualit .

Cr ation facile de paquets pour les d veloppeurs.

Haute volutivit par E/S asynchrones de bout en bout

37

Diff rence des micro-services

selon les plateformes

.NET

" Au d but des ann es 2000, .NET tait l'une des premi res

plateformes cr er des applications en tant que services l'aide du

protocole SOAP (Simple Object Access Protocol), dans un but

comparable celui

des microservices modernes.

" Aujourd'hui, l'un des avantages de .NET est sa forte pr sence en

entreprise.

" Deux exemples d'utilisation des microservices avec .NET :

D veloppement de service Web auto-h berg .NET avec Open

Web Interface for .NET (OWIN).

Il est ensuite possible de l'utiliser pour int grer des microservices.

Cr ation d'une entreprise sp cialis e dans les ressources

humaines d mat rialis es.

38

06/12/2019

19