Microservices :
déployez des logiciels plus évolutifs, plus rapidement

Partager

Que sont les microservices ?

Les microservices désignent un modèle d’architecture particulier où des équipes indépendantes déploient des services ne servant qu’un seul objectif, en continu. En ce sens, les microservices s’opposent aux logiciels monolithiques traditionnels, composés de modules étroitement intégrés, rarement mis à jour et incapables de monter en charge séparément. Si l’approche monolithique fonctionne parfaitement pour certaines entreprises et certaines applications, les organisations en quête d'agilité et de scalabilité sont de plus en plus nombreuses à se tourner vers les microservices.

In businesses across industries—from telecommunications and retail to financial services and manufacturing—IT teams are choosing microservices to develop new applications and break down monoliths. A collection of small services where each service implements business capabilities, a microservice runs in its own process and communicates via an HTTP API. Every microservice can be deployed, upgraded, scaled, and restarted independent of other services in the application. When managed by an automated system, teams can frequently update live applications without negatively impacting users.


Microservices Cartoon


Les avantages des microservices

Réponse plus rapide aux besoins des clients

Les entreprises qui adoptent les microservices ne sont plus entravées par des calendriers de sortie fixes. Elles déploient de nouvelles fonctionnalités en un clin d'œil pour rester en prise directe avec les besoins du client.

Productivité renforcée des développeurs

Dans la droite lignée des principes agiles et DevOps, les microservices permettent à des équipes de développeurs d'itérer en parallèle sur des fonctionnalités ciblées.

Scalabilité et fiabilité accrues des systèmes

Une architecture robuste de microservices ne botte jamais en touche. Fondées en grande partie sur des processus automatisés et reproductibles, ces architectures offrent une scalabilité granulaire et maintiennent le système en état opérationnel, même en cas de défaillance d'un composant.




Pivotal et les microservices

Chez Pivotal, nous vous aidons à concevoir une architecture de microservices ultra-performante. Nous vous fournissons également un environnement de pointe pour exécuter vos microservices.

Au contact des équipes Pivotal Labs, vos développeurs pourront identifier les applications sujettes à itérations et montées en charge régulières, tout en se formant aux méthodes du déploiement continu.

Déployez et gérez vos microservices avec Pivotal Cloud Foundry, la plateforme cloud native qui accélère votre retour sur investissement.

Empower your developers with patterns from Spring Cloud Services that overcome key challenges and operational overheads when building distributed systems with microservices



Les microservices vous intéressent ?
Voici les points à retenir

Les microservices ne conviennent pas à toutes les entreprises ni à toutes les applications. En cas de mauvaise implémentation, ils peuvent même augmenter vos coûts. Avant de franchir le pas, mieux vaut donc vous poser les bonnes questions :

Votre entreprise est-elle prête ?

L'adoption des microservices génère un impact organisationnel et technologique. Vos développeurs doivent être prêts à adopter une approche logicielle axée sur l'automatisation et le déploiement continu. Par ailleurs, votre entreprise est-elle prête à éliminer les silos opérationnels et à constituer des équipes indépendantes pour la création et l’exécution des services ? Dernier point, votre stratégie de gestion du changement peut-elle tolérer un pipeline de déploiement sans intervention humaine ?

Vos développeurs montrent-ils trop de zèle ?

Comme évoqué plus haut, les microservices ne se prêtent pas à toutes les applications. Dans un excès de zèle, vos développeurs pourraient perdre du temps à modifier le code d'applications à faible valeur ajoutée pour votre opérationnel. Autrement dit, pour les applications relativement statiques ou peu stratégiques, il est souvent préférable de conserver une approche monolithique. Les microservices sont synonymes d'agilité, mais aussi de complexité. Avant de vous engager, faites bien le point sur vos besoins.

Vos services sont-ils coordonnés ?

Par nature, les microservices sont faiblement couplés et évoluent en permanence. Comment faire pour trouver l’URL actuelle d’un service ou router le trafic vers un nombre variable d’instances ? Comment vos services échangent-ils des données ? Bien souvent, les entreprises utilisent des technologies de messagerie, de découverte de services et d’équilibrage de charges totalement incompatibles avec le dynamisme des microservices.

Êtes-vous paré pour la gestion quotidienne d'un environnement complexe ?

Inévitablement, la création de centaines ou de milliers de microservices à travers des centaines ou des milliers de serveurs complique la donne et accroît les risques opérationnels. Les microservices appellent donc une nouvelle approche. Comment organisez-vous les mises à jour et mises à niveau des machines sous-jacentes ? Êtes-vous capable de tracer les dépendances et d'identifier les applications à risque ? Pouvez-vous tenir à jour des dizaines d’instances de microservices selon vos dernières configurations applicatives ? Rappelez-vous que les composants utilisés pour créer votre plateforme de microservices, ainsi que l’emplacement d’exécution de ces composants et services, auront un impact considérable sur votre agilité pour les années à venir.



Architecture de microservices vs. architecture traditionnelle
Architecture de microservices
Architecture traditionnelle
Focus unique. Ils ne font qu’une chose, mais ils le font bien ! Les microservices ciblent un problème spécifique et intègrent tout ce qu'il faut (y compris les données) pour en venir à bout. Dans « microservices », le préfixe « micro » fait référence à la portée du service, et non à sa taille.
Portée élargie. Les solutions traditionnelles tentent de résoudre de nombreuses problématiques au moyen de logiciels étroitement intégrés.
Faible couplage. Une architecture de microservices exige des services aussi autonomes que possible. Les développeurs évitent donc de coder en dur les références aux autres services.
Couplage étroit. Les systèmes sont constitués de composants interdépendants ; leur déploiement est conditionné par une série d’étapes clairement définies.
Déploiement continu. Pour les équipes gérant des applications hautement évolutives, les microservices offrent une solution de choix. Grâce à des processus automatisés, ils accélèrent le déploiement de nouvelles versions.
Déploiements programmés. Le développement et la mise à jour des applications suivent un calendrier précis, généralement basé sur des cycles trimestriels ou annuels.
Des équipes indépendantes gèrent différents services. L’adoption des microservices impacte autant les technologies que la structure des équipes. Dans un modèle de microservices, des équipes autonomes gèrent le cycle de vie complet d’un service (développement, lancement, exécution…). S'il n'est pas toujours indispensable, ce modèle offre des avantages inestimables pour la gestion des services critiques.
Plusieurs équipes gèrent un même service. Des équipes projets se réunissent pour créer la première itération du logiciel, avant leur démantèlement pour la prochaine mission. Quant aux missions de maintenance, elles sont assignées à une équipe opérationnelle.
Technologies et modèles de conception centrés sur les systèmes distribués à grande échelle. Pour créer et exécuter des microservices, vos équipes doivent rompre avec l'approche et les outils traditionnels réservés aux logiciels monolithiques. Une architecture de microservices repose sur un vaste ensemble de fonctionnalités allant de la découverte de services à la gestion des identités, en passant par la messagerie, le routage réseau, la détection des pannes, la journalisation, le stockage, et bien plus encore.
Technologies et modèles de conception centrés sur les processus. Ici, les équipes utilisent des outils et processus cloisonnés, axés sur les étapes de développement clés, le contrôle qualité et le lancement en production, pour créer des logiciels monolithiques.