- PagerDuty /
- Blog /
- Non classé /
- La surveillance à l'ère des microservices
Blog
La surveillance à l'ère des microservices
Gérer une complexité accrue face à une plus grande agilité
Merci à Docker et au DevOps révolution, les microservices sont apparus comme la nouvelle façon de créer et de déployer des applications — et il existe de nombreuses bonnes raisons d'adopter la tendance des microservices.
Si vous envisagez d'adopter des microservices, vous devez également comprendre que les architectures de microservices comportent de nombreux éléments mobiles. En matière de gestion des incidents, cela constitue une différence importante entre les microservices et les architectures monolithiques. Plus d'éléments mobiles impliquent plus de ressources. complexité à surveiller et gérer afin de maintenir les applications et l'infrastructure en bonne santé et opérationnelles.
Examinons pourquoi les microservices augmentent les défis de surveillance informatique et explorons comment les organisations peuvent gérer la complexité supplémentaire.
Définition des microservices
Un microservice est un petit composant applicatif qui, combiné à d'autres microservices, forme une application complète. Si vous déployez une application avec Docker , il est probablement composé de plusieurs conteneurs. Chaque conteneur représente un microservice distinct.
Les microservices sont devenus populaires au cours des dernières années car Mouvement DevOps a favorisé les processus de livraison continue de logiciels. Une application déployée sous forme de microservices est plus facile à gérer, car les administrateurs peuvent remonter les problèmes à des microservices spécifiques. Elle est également plus facile à mettre à jour, car la mise à jour d'un composant particulier de l'application nécessite le redémarrage de ce microservice uniquement, et non de l'application entière. Pour ces raisons et bien d'autres, les microservices facilitent la gestion. livraison continue .
L'introduction de Docker en 2013 a stimulé l'intérêt pour les microservices. Les conteneurs Docker fournissent des éléments de base pratiques pour les microservices et facilitent la migration des applications existantes (conçues selon une architecture monolithique) vers un modèle de microservices.
Complexité : le compromis des microservices
Les organisations qui adoptent les microservices doivent tenir compte de la complexité supplémentaire qu'ils ajoutent à leur infrastructure. La transformation d'une application monolithique en application microservices introduit davantage de composants mobiles à surveiller et à gérer pour les administrateurs.
Prenons l'exemple d'une application web monolithique dont le front-end et la base de données fonctionnent comme une seule application sur un serveur virtuel dédié. La surveillance de cette application est relativement simple. Lorsqu'une partie tombe en panne, l'application entière tombe en panne. Il n'y a qu'un seul hôte à surveiller et une seule alerte à gérer. Bien sûr, vous pourriez adopter une approche plus nuancée pour surveiller une telle application, si vous le souhaitez. Vous pourriez par exemple surveiller les connexions sur différents ports, ou surveiller séparément les processus du serveur et de la base de données. Cependant, même avec cette approche, le nombre de composants mobiles à surveiller serait relativement faible.
Imaginez maintenant la même application déployée sous forme d'un ensemble de conteneurs. Au lieu d'un serveur virtuel unique sur lequel l'application s'exécute comme un simple processus, les couches front-end et base de données s'exécuteront comme des processus distincts. Docker générera des dizaines, voire des centaines de conteneurs dans un déploiement scale-out, pour prendre en charge chacun de ces processus. Le nombre de conteneurs évoluera constamment en fonction de la demande de l'application. De plus, d'autres conteneurs pourraient être dédiés à des tâches telles que la collecte de statistiques sur votre application. Pour garantir la disponibilité et les performances de l'application, vous devrez surveiller tous ces composants, sans parler du démon Docker lui-même. C'est beaucoup plus complexe.
Pour être clair, je ne veux absolument pas dire que les microservices sont une mauvaise idée. Dans l'exemple ci-dessus, la version de l'application web basée sur les microservices sera beaucoup plus évolutive et agile que la version monolithique. Cette agilité supplémentaire justifie amplement l'effort de surveillance supplémentaire.
Comment surveiller efficacement les microservices
Une stratégie efficace de surveillance des microservices nécessite de prêter attention à deux faits.
- La première et la plus évidente est que les microservices impliquent davantage de composants à surveiller. Ce n'est pas un problème majeur ; il suffit de s'assurer que votre plateforme de gestion des incidents est suffisamment robuste pour gérer un grand nombre d'alertes , vous assister dans triage Les envoyer aux bonnes personnes, etc. De plus, comme les microservices génèrent un volume d'alertes beaucoup plus important, votre plateforme de gestion des incidents doit également réduire le bruit des alertes autant que possible. Les alertes non exploitables doivent être supprimées, tandis que les alertes associées peuvent être regroupées ou corrélées à des problèmes qui nécessitent une réponse.
- Le deuxième fait, plus complexe à garder à l'esprit, est qu'en augmentant la complexité, les microservices augmentent également la quantité d'informations dont disposent les administrateurs pour gérer les incidents, ce qui est une bonne chose. Si la multiplication des composants à surveiller implique davantage de données à gérer, ces données supplémentaires peuvent être exploitées pour identifier les problèmes. Une alerte relative à une application monolithique indique simplement qu'un problème survient dans cette application. quelque part, C'est à vous de déterminer précisément la nature du problème. Avec les microservices, en revanche, une alerte liée à un conteneur Docker spécifique permet aux administrateurs de cibler précisément le microservice de l'application à l'origine de l'incident. Ils peuvent ensuite résoudre l'incident sur ce conteneur sans perturber les autres conteneurs sur lesquels repose l'application.
Les microservices représentent à la fois un défi et une opportunité pour les équipes de gestion des incidents. Ils complexifient l'infrastructure, mais permettent une réponse plus efficace et ciblée aux incidents. La clé d'une surveillance efficace des microservices réside dans la compréhension des différences entre la surveillance monolithique et la surveillance par microservices, et dans la mise en place de solutions et de workflows de gestion des incidents adaptés aux microservices.