Micro-services

Les micro-services décrivent le modèle architectural de composition d'une application distribuée à partir de services pouvant être déployés séparément, qui remplissent des fonctions commerciales spécifiques et communiquent par le biais d'interfaces web.

Les équipes DevOps encapsulent des éléments individuels de fonctionnalité dans des micro-services et construisent des systèmes plus importants en composant les micro-services comme des blocs de construction.
Les micro-services appliquent un exemple du principe d'ouverture/fermeture : ils sont ouverts à l'extension (en utilisant les interfaces qu'ils exposent) et fermés à la modification (chacun est implémenté et versionné indépendamment).

Les micro-services offrent de nombreux avantages par rapport aux architectures monolithiques.
Ils peuvent supprimer les points de défaillance uniques (SPOF) en garantissant que les problèmes d'un service ne se produisent pas ou n'affectent pas d'autres parties d'une application.
Les micro-services individuels peuvent être étendus indépendamment pour fournir une disponibilité et une capacité supplémentaires.
Les équipes DevOps peuvent étendre les fonctionnalités en ajoutant de nouveaux micro-services sans affecter inutilement d'autres parties de l'application.

L'utilisation de micro-services peut augmenter la vitesse de l'équipe.
Les pratiques DevOps, telles que l'intégration continue et la livraison continue, sont utilisées pour piloter les déploiements de micro-services. Les micro-services complètent les architectures d'applications basées sur le cloud en permettant aux équipes de développement de logiciels de tirer profit de plusieurs modèles, tels que la programmation pilotée par les événements et les scénarios à échelle automatique.
Les composants des micro-services exposent les API (interfaces de programmation d'applications), généralement sur des protocoles REST pour communiquer avec d'autres services.
Un modèle émergent consiste à utiliser des groupes de conteneurs pour mettre en œuvre des micro-services.
Les conteneurs permettent l'isolation, l'empaquetage et le déploiement de micro-services, et l'orchestration permet de transformer un groupe de conteneurs en une application.