- PagerDuty /
- Blog /
- Technologie /
- 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 technologique, les microservices sont devenus 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 présente une différence importante entre les microservices et les architectures monolithiques. Plus il y a d'éléments mobiles, plus il y a 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 d'application qui, lorsqu'il est combiné avec d'autres microservices, forme une application complète. Si vous déployez une application à l'aide de 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 encouragé 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 particuliers au sein de l'application. Elle est également plus facile à mettre à jour, car une mise à jour d'un composant particulier de l'application nécessite que les administrateurs redémarrent uniquement ce microservice, plutôt que l'application entière. Pour ces raisons et bien d'autres, les microservices contribuent à faciliter livraison continue .
L'introduction de Docker en 2013 a contribué à alimenter l'intérêt pour les microservices. Les conteneurs Docker fournissent des blocs de construction pratiques pour les microservices et permettent une migration facile pour les organisations cherchant à transférer des applications existantes (conçues selon une architecture monolithique) vers un modèle de microservices.
Complexité : le compromis des microservices
Les organisations qui adoptent des microservices doivent tenir compte de la complexité supplémentaire qu'ils ajoutent à l'infrastructure. Lorsqu'une application monolithique est transformée en application de microservices, elle introduit davantage de composants mobiles que les administrateurs doivent surveiller et gérer.
Prenons par exemple une application Web monolithique dont le front-end et la base de données s'exécutent comme une seule application sur un serveur virtuel dédié uniquement à cette application. La surveillance de cette application est relativement simple. Lorsqu'une partie de celle-ci 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 entendu, vous pouvez adopter une approche plus nuancée pour surveiller une application comme celle-ci, si vous le souhaitez. Vous pouvez par exemple surveiller les connexions sur différents ports ou surveiller les processus du serveur et de la base de données de manière distincte. Cependant, même avec cette approche, le nombre de pièces mobiles que vous devez surveiller sera relativement faible.
Considérons maintenant la même application déployée sous forme d'un ensemble de conteneurs. Au lieu d'un seul serveur virtuel sur lequel l'application s'exécute en tant que processus simple, les couches front-end et base de données s'exécuteront en tant que processus différents. Docker générera des dizaines, voire, dans un déploiement évolutif, des centaines de conteneurs pour prendre en charge chacun de ces processus. Le nombre de conteneurs changera constamment en réponse à la demande de l'application. En outre, vous pourriez avoir d'autres conteneurs dans le mélange consacré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 pas du tout suggérer que les microservices sont une mauvaise idée. Dans l’exemple ci-dessus, la version basée sur les microservices de l’application Web sera beaucoup plus évolutive et agile que la version monolithique. Cette agilité supplémentaire vaut bien 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.
- Le premier et le plus évident est que les microservices impliquent davantage de composants à surveiller. Ce n'est pas un problème extrêmement difficile à résoudre ; vous devez simplement vous assurer que votre Plateforme de gestion des incidents est suffisamment robuste pour gérer un grand nombre d'alertes , vous assister dans triage les acheminer vers les bonnes personnes, etc. De plus, comme les microservices introduisent un volume d'alertes beaucoup plus élevé, votre plate-forme de gestion des incidents doit également réduire le bruit des alertes lorsque cela est 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 les aider à gérer les incidents, ce qui est une bonne chose. Bien qu’avoir plus de composants à surveiller signifie qu’il y a plus de données à gérer, ces données supplémentaires peuvent être exploitées pour identifier les problèmes. Une alerte liée à une application monolithique vous indique simplement qu’il y a un problème avec cette application quelque part, et c'est à vous de déterminer exactement quel est le problème. Avec les microservices, cependant, une alerte liée à un conteneur Docker individuel permet aux administrateurs de se concentrer sur le microservice exact au sein de l'application qui a provoqué l'incident. Ils peuvent ensuite résoudre l'incident sur ce conteneur sans perturber les autres conteneurs sur lesquels l'application s'appuie.
Les microservices représentent à la fois un défi et une opportunité pour les équipes de gestion des incidents. Ils compliquent l'infrastructure, mais ils peuvent faciliter une réponse aux incidents plus efficace et ciblée. La clé pour surveiller efficacement les microservices est de comprendre les différences entre la surveillance monolithique et la surveillance par microservices, et de mettre en place des solutions de gestion des incidents et des workflows adaptés aux microservices.