Flex Gateway Nouveau
API Governance Nouveau
Monitoring API ManagerDans le monde des logiciels, les architectures de microservices constituent une tendance majeure qui peut avoir des répercussions considérables non seulement sur la fonction IT d’une entreprise, mais aussi sur l’ensemble de son processus de transformation digitale.
Quelle est donc la différence entre une architecture de microservices et une architecture monolithique ? Et, plus important encore, quels sont les avantages d’une architecture de microservices qui justifient son adoption par des géants du numérique tels que Netflix, Google et Amazon ?
Commençons par établir ce qui distingue une architecture de microservices d’une architecture monolithique. Cette dernière est conçue comme un seul bloc. Les applications d’entreprise sont composées de trois éléments :
Le caractère monolithique de l’architecture réside dans la réunion de ces trois éléments dans un unique exécutable logique. Pour apporter des modifications au système, un développeur doit créer et déployer une version actualisée de l’application côté serveur.
Une architecture de microservices diffère d’une architecture monolithique en ce que les fonctionnalités des microservices sont formellement exprimées par des API orientées métiers. Ces API encapsulent une fonctionnalité métier clé, et l’implémentation du service, qui peut impliquer des intégrations avec des systèmes d’enregistrement, est complètement masquée, l’interface étant définie dans une optique purement opérationnelle.
De par leur positionnement en tant que ressource précieuse pour l’entreprise, les services peuvent implicitement être adaptés pour une utilisation dans des contextes multiples. Un même service peut être réutilisé dans le cadre de différents processus métiers, canaux commerciaux ou points de contact numériques.
Les dépendances entre les services et leurs utilisateurs sont atténuées par l’application du principe de couplage lâche. La normalisation des contrats exprimés à travers les API orientées métiers permet d’éviter que les modifications touchant l’implémentation du service n’affectent les utilisateurs. Cela permet aux responsables des services de réviser l’implémentation et de modifier les systèmes d’enregistrement ou les compositions de services, qui peuvent être sous-jacents à l’interface, puis de les remplacer sans la moindre incidence en aval.
Les processus traditionnels de développement logiciel (en cascade, méthode agile, etc.) conduisent souvent des équipes relativement grandes à travailler sur un artefact de déploiement unique et monolithique. Les gestionnaires de projet, les développeurs et le personnel opérationnel peuvent atteindre différents degrés de succès avec ces modèles, en publiant des applications candidates qui peuvent être validées par l’entreprise, en particulier lorsqu’ils acquièrent de l’expérience à l’aide d’une pile spécifique de logiciels et de mécanismes de déploiement. Les approches traditionnelles comportent toutefois leur lot de problèmes cachés :
Utilisée en combinaison avec des technologies de déploiement cloud, de gestion des API et d’intégration, une architecture de microservices permet une autre approche du développement logiciel. Dans cette approche, le monolithe est décomposé en un ensemble de services indépendants qui sont développés, déployés et gérés séparément. Cette façon de procéder présente les avantages suivants :
Une telle souplesse implique une certaine complexité. La gestion d’une multitude de services distribués à grande échelle n’est pas chose facile, et ce pour deux raisons principales :
Il est donc important de gérer de façon rigoureuse la livraison de vos microservices et d’automatiser le SDLC autant que possible. En l’absence d’automatisation et de coordination d’équipe de type DevOps, votre adoption des microservices générera plus d’inconvénients que d’avantages.
Vous souhaitez vous lancer dans les microservices ? Lisez notre guide des bonnes pratiques en matière de conception de microservices.