Professional Documents
Culture Documents
2015/2016
Microservices
API Management
API Gateway
2
PLAN
Microservices
Définition des Microservices
Approche Monolithique vs Microservices
Caractéristiques de l’A rchitecture Microservices
API Management
API Gateway
3
Définition des Microservices
Microservices
Style d’architecture
Approche pour développer une seule application comme suite de petits
services:
• Déployables les uns indépendamment des autres
• Chacun s’exécute sur son propre processus
• Communiquent via des mécanismes légers, souvent une ressource HTTP
• Constuits autours des compétences métier
• Peuvent être rédigés dans des langages et technologies différentes
• Peuvent utiliser des technologies de stockage de données diverses
4
Approche Monolithique vs Approche Microservices
Microservices
Approche Monolithique
• Application construire comme une seule unité
• Usuellement, les applications sont divisées en trois parties:
• L’interface utilisateur
• Une base de données
• Une couche métier
• La couche métier se charge de:
Gérer les requêtes HTTP, Exécuter la logique du domaine, Extraire et modifier
les données de la base de données, Sélectionner et charger les vues HTML…
• Cela représente une application Monolithe
• Toute modification du système implique la compilation et déploiement d’une
nouvelle version de la couche métier
Approche Microservices
• S’inspire des principes de conception du système UNIX
• loin d’être récents, mais peu considérés dans le développement logiciel
• Services sont déployables indépendamment les uns des autres
• Mise à l’échelle plus facile et ciblée à chaque service
• Chaque service définit des limites bien fermes
• Chaque service peut être écrit dans un langage différent
• Chaque service peut être géré par une équipe différente
API Gateway
19
Mouvement Open API
API Management
• Appelé aussi Public API
• Tendance qui autorise un accès à un logiciel propriétaire via une API
publique
• Exposition de certaines fonctionnalités du logiciel en protégeant les
autres
• Souvent une implémentation de REST
• Les Open APIs sont publiés sur Internet et partagés librement
• Permet d’encourager les développeurs d’autres entreprises (parfois
concurrentes) d’utiliser leur logiciel, et de se montrer innovants
• Facilite la création de Mashups à partir de plusieurs applications
• Problème :
• Les utilisateurs des APIs sont dépendants de l’e ntreprise qui publie l’A PI
(modification de l’A PI, ajout de frais…)
• Éviter d’inclure des détails dans les URLs de base, utiliser les
paramètres pour représenter les états optionnels:
• Ex. Pour représenter tous les chiens rouges qui courent dans
le parc:
GET /dogs?color=red&state=running&location=park
http://.../api/func/calculateTax?state=fl&amount=10
Microservices
API Management
API Gateway
Pourquoi utiliser les APIs Gateways
Avantages et Inconvénients des APIs Gateway
Rôles du API Gateway
42
Problèmes…
API Gateway
• L’utilisation des microservices dans une application implique que les APIs
fournies sont de grain fin
• Un client a donc besoin d’interagir avec plusieurs services pour réaliser une
opération
• Des clients différents ont besoin de données différentes pour représenter la
même chose
• Par exemple, la version web et la version mobile d’une page de détails d’un
produit ne représentent pas les mêmes éléments
• La performance du réseau est différente pour chaque client
• Un réseau mobile est plus lent et avec une latence plus haute qu’un réseau fixe
• Une application web côté serveur peut faire beaucoup de requêtes aux services
back-end sans impacter l’UX, alors qu’une application mobile ne peut en faire
que très peu
• Les services et leurs emplacements (port et hôte) peuvent changer
• Utilisation d’un API Gateway, un point d’entrée unique pour tous les
clients
• Permet de gérer les requêtes:
• Soit par simple routage au service approprié
• Soit en les distribuant sur plusieurs services
• Peut exposer une API différente pour chaque client
• Peut implémenter la sécurité
• Contrôle d’accès aux APIs
• Augmentation de la complexité
• Un middleware supplémentaire qui doit être configuré, déployé
et géré
• Augmentation du temps de réponse dû au saut
supplémentaire pour appeler le gateway
• Peut être négligeable comparé au temps d’aller-retour pour la composition
de services
• Répartition de Charge
• Distribution des requêtes parmi les instances de microservices
• Répartir la charge entre les différents services selon leurs contraintes
respectives
• Le gateway peut demander la création dynamique de nouvelles instances de
service si les instances existantes ne sont pas suffisantes
• Dispatching des Requêtes
• Le gateway peut travailler en tandem avec les Service Registries pour router
les requêtes vers le bon service
• Gestion du routage des services inexistants ou obsolètes
• Résolution de Dépendances
• Fournir des façades (point d’e ntrée virtuels) qui routent les requêtes
systématiquement à plusieurs micorservices différents
• Éviter ainsi les appels répétés vers un ensemble de microservices pour
réaliser une seule fonctionnalité
• Phénomène des architectures bavardes ( chatty )
• Transformation
• Adapter les requêtes des clients aux formats utilisés par les services, sans
déranger les deux parties
• Conserver l’indépendance du développeur de l’A PI ainsi que du client
White Papers
• Choosing the Right API Management Solution for the Enterprise User , CA Technologies White
paper, september 2014
50