Les microservices sont une approche architecturale de la création d'applications à grande échelle. Ils peuvent être utilisés par les développeurs pour décomposer des applications complexes en composants plus petits et accélérer le processus de développement. Mais les microservices ne sont pas toujours le meilleur choix pour tous les projets. Vous les préférerez si vous travaillez sur un produit complexe ou si vous avez besoin d'itérer rapidement sur de nouvelles fonctionnalités. Dans cet article, nous allons voir dans quelles circonstances il est judicieux d'adopter les microservices dans la stratégie de développement de votre entreprise.
Votre équipe de développement est importante.
- Les microservices requièrent un plus grand nombre de développeurs. Vous devez donc vous demander si votre équipe est suffisamment grande pour supporter cette charge de travail supplémentaire.
- Les microservices requièrent également beaucoup plus de communication entre les développeurs, ce qui peut être une bonne chose si tous les membres de votre équipe sont à l'aise avec ce type de communication et s'il n'y a pas de barrière linguistique entre eux. Dans le cas contraire, il conviendra de s'assurer que tous vos développeurs parlent la même langue ou ont au moins la capacité de communiquer efficacement dans une langue ou une autre.
- Chaque microservice augmente les coûts de maintenance car il y a plus de pièces à gérer et à mettre à jour indépendamment (bien que cela puisse être atténué en ayant de nombreux petits services).
- Enfin, chaque fois que vous apportez une modification à un service, celui-ci doit être déployé séparément des autres services, ce qui signifie que le test et le déploiement de chaque service nécessitent une attention particulière, tout comme la résolution des problèmes qui surviennent lors du déploiement ou de l'utilisation des composants individuels d'une application construite avec une architecture de microservices.
Votre produit est complexe.
Vous avez un produit complexe. C'est une bonne chose.
Mais vous avez également une quantité écrasante de complexité, et c'est une mauvaise chose.
Considérez ceci : Si vous deviez concevoir votre système à partir de zéro aujourd'hui, ressemblerait-il à ce que vous avez maintenant ? Ou l'architecture serait-elle plus simple ? Plus votre produit est complexe, plus il sera difficile pour les nouveaux développeurs de comprendre comment tout fonctionne ensemble. Et lorsque des changements doivent être apportés à différentes parties de votre système, il peut y avoir des conséquences inattendues parce que les changements affectent toutes les parties de l'application différemment que prévu.
Vous avez besoin d'une architecture pilotée par les événements.
Vous avez besoin d'une architecture pilotée par les événements.
L'architecture événementielle est une façon de structurer les applications logicielles. Les architectures orientées événements se concentrent sur le passage asynchrone de messages entre les composants et considèrent que le temps est plus important que l'espace (en d'autres termes, il n'est pas garanti que les composants communicants se trouvent sur la même machine physique). La source de tous les événements est appelée éditeur d'événements, et la destination de ces événements est appelée abonné d'événements.
Vous avez besoin d'itérer rapidement sur de nouvelles fonctionnalités et de faire évoluer vos efforts facilement.
Vous avez besoin d'itérer rapidement sur de nouvelles fonctionnalités et de faire évoluer vos efforts facilement.
Les microservices vous permettent d'itérer rapidement. Vous pouvez construire et tester de nouvelles fonctionnalités en parallèle, ce qui signifie que vous pouvez publier plus fréquemment. Lorsque vous ajoutez une nouvelle fonctionnalité, elle n'affecte pas autant les autres parties de votre application, de sorte qu'il y a moins de risques à la publier tôt et souvent.
Vous pouvez aussi facilement adapter vos efforts en ajoutant ou en retirant des développeurs d'un service à la fois, au lieu d'essayer de comprendre comment tous ces services s'intègrent en même temps. Vous pouvez même déployer chaque microservice séparément !
Il est ainsi plus facile pour les équipes de votre organisation de travailler indépendamment les unes des autres si leurs objectifs se chevauchent mais qu'elles n'ont pas nécessairement besoin de collaborer étroitement (par exemple, les équipes de marketing pourraient construire leurs propres applications avec différents ensembles de données). C'est particulièrement utile si certains membres de l'équipe ont une expérience limitée du développement ou des compétences spécifiques sur lesquelles ils aimeraient se concentrer (comme la conception Web).
Vous envisagez d'utiliser des conteneurs.
Si vous envisagez d'utiliser des conteneurs, les microservices sont un bon choix pour votre architecture. Les deux sont étroitement liés, et la conteneurisation est un élément important des microservices.
Une architecture de microservices peut vous aider à créer une application plus facile à maintenir avec une petite équipe de développeurs, mais seulement si elle convient à votre entreprise.
Une architecture microservices n'est pas toujours le bon choix pour votre entreprise. Ce n'est pas une solution miracle, et elle ne peut pas résoudre tous vos problèmes. En fait, de nombreuses entreprises ont intérêt à s'en tenir à une approche monolithique plutôt que d'essayer de convertir leurs applications existantes en microservices.
Une architecture de microservices peut vous convenir si.. :
- Votre équipe souhaite créer de nouvelles fonctionnalités plus rapidement en utilisant des méthodologies de développement agiles.
- Votre équipe souhaite améliorer la qualité du code en écrivant des tests unitaires qui s'exécutent en temps réel dans le cadre des constructions et des déploiements de l'intégration continue (IC).
- Vous êtes prêt à abandonner les processus de développement en cascade.
Sachez quand adopter les microservices et quand ils n'en valent pas la peine.
Dans cet article, nous avons abordé les bases des microservices. Vous devriez maintenant savoir quand utiliser une architecture de microservices et quand cela n'en vaut pas la peine. Nous avons également abordé la manière dont les architectures événementielles peuvent vous aider à concevoir votre produit de manière à prendre en charge la livraison continue et le développement itératif.
Conclusion
Vous savez maintenant quand utiliser une architecture microservices et quand elle n'est pas forcément le meilleur choix. Il est important de prendre en considération les défis de votre équipe et de votre produit avant de décider si cette architecture convient ou non à votre entreprise. Si vous décidez d'opter pour les microservices, assurez-vous que vous disposez des compétences adéquates pour que vos développeurs puissent facilement mettre en place chaque service sans avoir besoin de l'aide d'autres équipes.