formulaire de contact
Vous voulez imaginer, créer, développer des services ou produits connectés pour vos clients ? Contactez nous
Crosscut

API & Microservices: une approche commune ! – Moskitos

2019-05-27T10:15:22+02:002017-12-06|Avis d'expert|

Jusqu’à il y a peu, les systèmes et les applications étaient considérés comme étant tous liés les uns aux autres dans le paysage IT. On parlait alors d’applications monolithiques ou d’architectures fortement couplées. Un type de structure que l’on pourrait comparer à celui d’un jeu de construction : un édifice construit d’un seul et même bloc qui s’effondre à chaque petite modification, obligeant le joueur à le rebâtir entièrement, lui faisant perdre ainsi un temps précieux. 

Mais depuis quelques années, l’approche « microservices » remet ce modèle en cause pour faire évoluer la situation dans le bon sens. Ce type d’architecture repose en effet sur la mise en communication d’un ensemble de services informatiques, techniques ou fonctionnels formant une solution à forte valeur ajoutée, dont les composants internes peuvent évoluer de manière indépendante, pour peu qu’ils respectent la compatibilité ascendante.

Il ne s’agit pourtant pas d’une nouveauté dans le domaine des Systèmes d’Information puisque ce genre d’architecture a d’abord fait son apparition avec les solutions et patterns EAI (Enterprise Application Integration), puis SOA (Services Oriented Architecture). Deux méthodes qui reposent sur un élément central de l’architecture (bus d’échange ou de service) permettant de rendre les applications plus autonomes et évolutives grâce à des outils de Middleware.

Mais là où le SOA demeure une technique d’urbanisation du SI et de ses applications, l’approche basée sur les microservices représente une réelle remise en cause de l’architecture au sein même des applications. C’est pour cela qu’elle ne s’oppose pas au SOA mais peut parfaitement l’intégrer de manière complémentaire.

Pour illustrer ce concept, prenons l’exemple concret de la création d’un site web marchand conçu avec une approche microservices. Celui-ci se découpe en un ensemble de sous-modules ayant chacun un rôle ou un petit nombre de responsabilités bien définies :

  • un service utilisateur permettant de gérer les profils
  • un service de stock des produits
  • un service de prise de commandes
  • un service de gestion des commentaires

Ces microservices font ainsi figure de micro-applications avec, pour certaines, un fort principe d’autonomie. Décomposé ce cette manière, le système améliore sa résilience globale grâce à l’utilisation des sous-modules qui sépare les responsabilités. Ainsi, même si la gestion des commentaires du site web n’est plus fonctionnelle à cause d’un problème interne au microservice (migration, problème de base de données, etc.), l’utilisateur a toujours la possibilité de passer une commande. Ce principe d’exécution critique et dégradée permet donc d’améliorer le fonctionnement global d’un système.

Quand Microservices Management et API Management se rejoignent

La mise en place d’une architecture basée sur les microservices dans une application nécessite une organisation et une structuration de la communication entre les services ainsi qu’une harmonisation en termes de sécurité et de conformité.

Ce management des microservices induit de disposer d’une vue macroscopique de l’architecture et de l’ensemble des briques d’infrastructure (capacité d’hébergement de processus ou de bases de données, capacité à exécuter un certain langage de code…) et organisationnelles (analyse des ressources, processus de développement, communication inter-processus…) qui vont permettre aux développeurs de proposer de nouveaux services.

C’est là que les APIs revêtent une grande importance dans ce type d’architecture, en constituant les interfaces d’entrée/sortie qui vont permettre d’accéder aux différents processus exposés par les microservices et d’échanger de la donnée, à la fois au sein d’un microservice et entre les microservices, en utilisant des protocoles comme le HTTP, l’un des plus couramment utilisés pour exposer des APIs REST.

La brique d’API Management a alors un rôle clé à jouer pour référencer les différentes interfaces et :

  • gérer de manière centralisée toutes les fonctions d’authentification, de mesure d’appels et de contrôle d’usage, pour permettre de mieux sécuriser les ressources et de contrôler leur consommation en temps réel,
  • gérer la documentation des APIs (via Swagger par exemple), afin de générer simplement des applications clientes,
  • gérer le cycle de vie des APIs, assurant ainsi plus de stabilité sur l’évolution des sous-systèmes.

Dans sa gestion de l’ensemble des interfaces, l’API Management intervient ainsi au niveau interne d’un microservice  et entre microservices, afin de former de nouveaux services à valeur ajoutée. C’est ce qui en fait un outil essentiel pour transformer la donnée en un bien économique stratégique et ainsi accélérer et sécuriser la transformation numérique.

Le Microservices Management et l’API Management sont donc deux sujets qui doivent être traités ensemble à travers une vision d’architecture globale. Le management des microservices est là pour assurer une vision commune autour d’une organisation, d’une culture et d’outils, afin de mettre en place une solution (macro) fondée sur l’association de multiples services (micro). Quant au management des API, il intègre des outils tels qu’une API Gateway permettant de standardiser les processus d’intégration, de communication et de sécurité, entre les services d’une part et entre la solution globale et le monde extérieur d’autre part.

2019-05-27T10:15:22+02:002017-12-06|Avis d'expert|
l'agitateur du digital
notre newsletter
je m'inscris
moskitos médiathèque
nos ressources
je consulte
l'agitateur du digital
notre blog
je découvre