Microservices

En informatique, les microservices sont des services logiciels. L’architecture en microservices est une variante du style architectural orienté services (SOA…

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.

Détails

  • 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

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

La philosophie de l'architecture microservices s'inspire en grande partie de la philosophie d'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

  • « 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

Notes et références

  1. « Microservices », sur martinfowler.com (consulté le )
  2. « SOA versus microservices : quelles différences ? », sur Nexworld, (consulté le )
  3. « Google Trends », sur Google Trends (consulté le )
  4. Sudhir Tonse, « MicroServices at Netflix - challenges of scale », (consulté le )
  5. Dave Nielsen, « Microservices at Netflix », (consulté le )
  6. (en) Lucas Krause, Microservices: Patterns and Applications
  7. (en) Lucas Krause, « Philosophy of Microservices? »
  8. a et b (en) Jim Bugwadia, « Microservices: Five Architectural Constraints »
  9. « Microservices a definition of this new architectural term ? », sur martinfowler.com,
  10. « SOA versus microservices : évolution ou révolution ? », sur www.nexworld.fr,

Sources

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.