La culture de livraison des logiciels évolue. Elle passe de la surveillance à l’observabilité. Celle-ci revêt une importance majeure pour les applications dites en microservice et/ou cloud-native. Il est en effet indispensable de surveiller leurs comportements et de s’assurer en permanence qu’ils fonctionnent correctement.
« La migration massive vers le cloud, qui s’opérait déjà à un rythme soutenu avant la pandémie, atteindra un pic en 2021 » a souligné Forrester fin octobre. Autre confirmation de ce cabinet d’analystes : l’an prochain, 60% des (grandes) entreprises dans le monde utiliseront des conteneurs sur les plateformes de cloud public.
Plus que jamais, le cloud devient la norme. Mais son adoption présente de nouveaux défis opérationnels. Les environnements de microservices actuels, déployés sur des plateformes d’orchestration de conteneurs telles que Kubernetes, sont basés sur des conteneurs évolutifs et éphémères.
Pour comprendre les interactions entre les composants de votre système, il est donc indispensable de suivre le cycle de vie d’une requête dans les environnements distribués. Ce contexte oblige à traiter l’observabilité comme une préoccupation de premier ordre dans la planification des opérations.
Elle présente de nombreux avantages, tels que l’amélioration de la productivité et des performances (allouer efficacement les ressources en fonction des besoins des utilisateurs) mais aussi une détection optimale afin de résoudre les problèmes (des événements indésirables) avant qu’ils n’affectent votre entreprise.
Le concept d’observabilité des microservices est similaire au FCAPS (Fault, configuration, accounting, performance, security) dans le monde traditionnel des télécoms. Rapportée au cloud, elle peut être divisée en trois catégories :
La gestion des performances des applications
Les métriques sont utiles pour comprendre le comportement d’un système. Qu’elles soient purement techniques ou métier, elles permettent de rendre le code toujours plus maintenable et simple à exploiter.
Dans l’écosystème Kubernetes, il existe des métriques disponibles à de nombreux niveaux. Il existe plusieurs solutions, mais Prometheus est la référence pour monitorer des ressources dites « cloud natives ». L’automatisation de son installation et de sa configuration au travers de l’opérateur en fait l’outil de référence pour surveiller un cluster Kubernetes.
Les logs
Ils sont considérés comme l’un des principaux piliers de l’observabilité, car ils permettent de constater ce qui arrive réellement aux applications et aux microservices dans l’environnement natif des clouds. Les fournisseurs de cloud utilisent généralement ce que l’on appelle la pile EFK – Elasticsearch, Fluentd et Kibana – pour enregistrer les logs et générer des alertes.
Le traçage
Cette partie permet une meilleure compréhension du cycle de vie complet d’une demande. Le traçage s’avère pratique et indispensable pour identifier les problèmes, par exemple, une latence accrue ou l’utilisation excessive de ressources.
Mais le suivi des échanges entre chaque instance de microservice génère une quantité de données presque impossible à gérer. De sorte que les outils de suivi ne recueillent qu’un très petit échantillon pour l’analyse et la visualisation. Mais même ce petit échantillon est utile, car il permet de voir comment fonctionnent les microservices.
En apparence, l’observabilité et la surveillance présentent des similitudes. Pour éviter les malentendus, considérez la surveillance comme l’intervention d’un mécanicien sur votre voiture lorsqu’un voyant de maintenance est allumé. Rapporté à un serveur, il s’agit de s’assurer que les utilisateurs peuvent accéder sans soucis à vos applications et services.
Comme l’entretien d’un véhicule, des notifications sont envoyées aux équipes lorsque quelque chose ne fonctionne pas correctement ou qu’un dysfonctionnement risque de se produire.
Mais avant d’envoyer une notification, il est essentiel de créer une base de référence et de comprendre l’état actuel de l’environnement. Et c’est là qu’intervient en premier lieu l’observabilité. Sans observer l’architecture, il est impossible de savoir ce qui est mauvais et ce qui est incorrect.