Microservices
En informatique, les microservices sont des services logiciels. L’architecture en microservices est une variante du style architectural orienté services (SOA), qui structure une application comme un ensemble de services faiblement couplés. Les microservices, indépendants les uns des autres, communiquent entre eux à l’aide d’API indépendantes du langage de programmation.
Les API REST sont souvent utilisées pour relier les microservices entre eux. L’un des avantages majeurs de cette architecture est que, lorsqu’une mise à jour critique d’une ressource est nécessaire, seul le microservice concerné est modifié. L’ensemble de l’application reste compatible avec ce changement, contrairement aux architectures classiques, comme l’architecture trois tiers, où une modification peut nécessiter la mise à jour de l’ensemble de l’application. Cependant, le coût de mise en œuvre peut être plus élevé en raison des compétences techniques requises, est parfois plus élevé.
Détails
[modifier | modifier le code]- Les services individuels sont simples à remplacer
- Les services sont conçus pour leur utilité spécifique (par exemple la facturation, la chaîne logistique, l'interface...)
- L'architecture est plus symétrique que hiérarchique (passage d'une architecture client-serveur à une architecture de plusieurs entités communicantes)
- L'architecture facilite le déploiement continu du code
Historique
[modifier | modifier le code]Le terme microservice est apparu en 2011 au cours d'ateliers d'architecture[1], bien qu'il réutilise un grand nombre de principes largement employé par les systèmes d'information des grandes entreprises, notamment les concepts de l'architecture orientée service (SOA[2]).
Le sujet est réellement évoqué à partir de 2014 selon Google Trends[3]. Parmi les pionniers, Netflix a notamment œuvré à populariser ces architectures[4],[5].
Philosophie
[modifier | modifier le code]La philosophie de l'architecture microservices s'inspire en grande partie de la philosophie UNIX, qui prône « ne faire qu'une seule chose, et la faire bien ». Elle est décrite comme suit[6],[7],[8] :
- Les services sont petits, et conçus pour remplir une seule fonction.
- L'organisation du projet doit prendre en compte l'automatisation, le déploiement et les tests.
- Chaque service est élastique, résilient, composable, minimal et complet[8].
Citations
[modifier | modifier le code]- « En bref, le style architectural microservice est une approche pour développer une application unique comme une suite de petits services, chacun fonctionnant dans son propre processus et communiquant avec des mécanismes légers. »[9]
- « Commençons déjà par un constat clair émis par les précurseurs du microservice : cette architecture est une extension du concept de SOA. »[10]
Voir aussi
[modifier | modifier le code]- Loi de Conway
- Illusions de l'informatique distribuée
- Devops
- Representational state transfer (REST)
- Architecture orientée services
- Architecture orientée Web
- Philosophie d'Unix
- Informatique sans serveur
- Application Programming Interface
- application monolithe
Notes et références
[modifier | modifier le code]- ↑ « Microservices », sur martinfowler.com (consulté le )
- ↑ « SOA versus microservices : quelles différences ? », sur Nexworld, (consulté le )
- ↑ « Google Trends », sur Google Trends (consulté le )
- ↑ Sudhir Tonse, « MicroServices at Netflix - challenges of scale », (consulté le )
- ↑ Dave Nielsen, « Microservices at Netflix », (consulté le )
- ↑ (en) Lucas Krause, Microservices: Patterns and Applications (ASIN B00VJ3NP4A)
- ↑ (en) Lucas Krause, « Philosophy of Microservices? »
- (en) Jim Bugwadia, « Microservices: Five Architectural Constraints »
- ↑ « Microservices a definition of this new architectural term ? », sur martinfowler.com,
- ↑ « SOA versus microservices : évolution ou révolution ? », sur www.nexworld.fr,