L’architecture microservices
Étant donné que SAS Viya s'appuie en grande partie sur l'architecture microservices, il est essentiel de bien comprendre ce concept. Il s'agit d'une méthode de conception logicielle où une application est construite comme un assemblage de plusieurs petits services indépendants. Chacun de ces services remplit une fonction métier bien définie, peut être déployé de façon autonome et gère ses propres données. La collaboration entre ces différents services se fait généralement par le biais d'API (Interfaces de Programmation d'Application), utilisant couramment le protocole HTTP pour leurs échanges
Principes et Avantages Clés :
- Modularité et Indépendance : Chaque microservice est une unité distincte, développée, déployée, mise à jour et mise à l'échelle indépendamment des autres. Si un service tombe en panne, cela n'entraîne pas nécessairement la défaillance de toute l'application.
- Évolutivité (Scalabilité) : Il est possible de mettre à l'échelle uniquement les services qui en ont besoin, optimisant ainsi l'utilisation des ressources. Par exemple, lors d'un pic d'activité sur une fonctionnalité (comme la gestion des commandes sur un site e-commerce), seul le microservice concerné sera renforcé.
- Flexibilité Technologique : Les équipes peuvent choisir les technologies (langages de programmation, bases de données) les plus adaptées pour chaque microservice, sans être contraintes par un choix unique pour toute l'application.
- Développement Accéléré : Différentes équipes peuvent travailler en parallèle sur des services distincts, ce qui peut réduire le temps de développement global et accélérer la mise sur le marché de nouvelles fonctionnalités.
- Résilience Améliorée : Une défaillance dans un microservice est moins susceptible d'impacter l'ensemble de l'application, car les autres services peuvent continuer à fonctionner.
- Déploiement Simplifié et Continu : Les mises à jour peuvent être déployées pour des services spécifiques sans redéployer l'intégralité de l'application, facilitant l'intégration et la livraison continues (CI/CD).
Exemples d'utilisation :
- Sites de commerce électronique : Différents services pour la gestion des utilisateurs, des produits, des commandes, des paiements, etc.
- Applications web complexes : Migration d'applications monolithiques vers des plateformes basées sur des conteneurs dans le cloud.
- Traitement de données : Services modulaires pour différentes étapes du traitement de données.
Points d'attention :
Bien que l'architecture microservices offre de nombreux avantages, elle introduit également une complexité accrue en matière de gestion des services distribués, de communication inter-services, de surveillance et de débogage. Il est crucial de bien définir les limites entre les services (conception orientée domaine ou Domain-Driven Design - DDD) et de mettre en place une infrastructure robuste pour la communication, la découverte de services et la gestion des défaillances.
Pour plus de détails, vous pouvez consulter les ressources suivantes qui ont servi de base à ce résumé :
- Qu'est-ce que l'architecture de microservices ? | Google Cloud (Lien principal bien que l'accès direct ait échoué, il reste la référence souhaitée)
- Microservices : définition et architecture - Talend
- Microservices : Définition, fonctionnement, avantages - DataScientest
- Présentation des microservices | Cloud Architecture Center - Google Cloud
- Style d'architecture orientée microservices - Azure Architecture Center | Microsoft Learn
- Architecture de microservices : définition, avantages et bonnes pratiques - GitLab
- Que sont les microservices et l'architecture de microservices ? - Intel
- Comprendre ce que sont les microservices - Red Hat
- Qu'est-ce que l'architecture de microservices ? | OVHcloud France
- Architecture Microservices : scalabilité et performance applicatives - Eleven Labs