Observabilité : comment Orange surveille ses applications réservées aux abonnés
Après un passage à l’échelle compliqué, l’équipe en charge du PaaS Erable considère Elastic Logstash et Kibana comme des outils indispensables pour gérer les applications développées et hébergées sur la plateforme interne.
Comme ses concurrents, Orange n’est plus seulement un FAI. L’opérateur télécom français propose à ses millions d’abonnés des services techniques, mais aussi de divertissement.
Pour accueillir et développer les applications correspondantes, Orange France a déployé en 2014 un PaaS nommé Erable. Cette plateforme interne repose sur un IaaS en mode Cloud VPC (Virtual Private Cloud) hébergé sur un data center français détenu par l’opérateur. Il s’agit d’un des PaaS du groupe.
« En 2014, nous avons fait le choix d’avoir une solution sur laquelle nous avons la main, hébergée chez nous, exploitée par nous et avec des technologies pour la plupart open source que nous pouvons maîtriser en mode Agile », assure Baptiste Caroz, directeur du programme Erable.
Les clients français n’en savent rien. Et pourtant, c’est bien l’architecture sur laquelle reposent des applications qu’ils connaissent par cœur : les services de divertissement Orange TV, l’offre Cineday (un système de génération de coupon pour des places gratuites au cinéma), le portail de relation client Orange et Moi, l’espace client ou encore les API pour mesurer la qualité de services (test de réseau, par exemple).
Ce PaaS dédié aux applications d’infotainment est géré par une équipe d’une cinquantaine de personnes DevOps, pilotage et tests QA. Pour les équipes de développement, ils jouent le rôle de fournisseurs de piles technologiques et de facilitateurs.
Erable, le PaaS dédié aux applications utilisées par les abonnés d’Orange
« Les développeurs doivent pouvoir se concentrer sur la production de fonctionnalités pour leurs clients internes à Orange. Ils couchent leur code et nous leur fournissons tout un niveau d’automatisation qui leur permet de déployer leurs applications », explique Sami Benzarti, responsable technique du PaaS Erable, chez Orange France.
Erable donne ainsi accès à des catalogues de services managés pour développer les applications : solutions de queuing (Kafka), de cache (Hazelcast, Nginx), de bases de données SQL et NoSQL (Cassandra, PostgreSQL et MariaDB), de gestion d’API (WSO2), des outils CI/CD (Jenkins, Gitlab, Sonar) et de gestion de configuration.
Or les différentes applications et technologies déployées demandent une surveillance détaillée afin d’éviter les interruptions de service et les problèmes de sécurité. Il serait malvenu que les utilisateurs ne puissent pas regarder la TV en soirée ou accéder à l’espace client en début de mois, pour vérifier leur facture.
Pour cela, les responsables du PaaS et les équipes en charge du développement et de la maintenance des applications avaient besoin d’outils pour suivre les logs, traces et les métriques des différents services déployés ainsi que le comportement du PaaS lui-même. L’ensemble des services managés est également monitoré via la pile ELK.
« Dès 2014, nous voulions héberger sur le PaaS des applications stateless. Nous avions déjà cette approche “12 factors apps”. Les développeurs devaient pouvoir gérer leurs logs comme des événements. Nous devions pouvoir crasher une application et la redémarrer où l’on veut. Pour cela, nous avions besoin d’une solution de centralisation des logs », explique le responsable technique.
Après avoir exploré les outils disponibles sur le marché, l’équipe en charge d’Erable s’est rapidement tournée vers la stack Elasticsearch, Logstash, Kibana (ELK). En 2014, la stack émergeait. Elle venait à peine d’attendre la version 1.0, mais bénéficiait déjà d’une grande popularité.
Pour Sami Benzarti, ce choix s’explique par la complémentarité des outils de la suite Elastic alors qu’avec les autres produits, « il fallait effectuer des montages ».
Rapidement, ELK est devenue la solution de référence pour mesurer, optimiser et visualiser les performances des applications lors des phases de tests et de pilote.
ELK : Simple à mettre en place, long à maîtriser
En revanche, l’expertise et le savoir de la communauté n’étaient pas ceux d’aujourd’hui.
« Concernant Elasticsearch, ce n’était pas simple de trouver de l’expertise au départ. Tout le monde s’est un peu formé sur le tas. En parallèle, les bonnes pratiques sont apparues au fur et à mesure des retours d’expérience des utilisateurs », constate Sami Benzarti. « Nous avons appris les subtilités d’Elasticsearch en même temps que tout le monde ».
L’installation d’ELK n’était pas compliquée. Parce que l’équipe a commencé « petit », cela a pris quelques mois. En revanche, l’industrialisation a demandé un temps de réflexion et d’adaptation, selon le responsable technique. Un an après le déploiement du PaaS Erable, les équipes devaient gérer « beaucoup de trafics ».
« Quand je migre la TV d’Orange dans une approche microservicielle, cela génère beaucoup de trafics. Comment je le gère, comment je fais en sorte que mon cluster reste stable ? Voilà les défis que nous avons rencontrés », précise Sami Benzarti.
En février 2016, les responsables du projet Erable ont agrandi le cluster ELK tout en mettant en place un suivi des logs du cluster lui-même avec Marvel (Aujourd’hui Enable Monitoring), l’agent de surveillance d’Elasticsearch. « Nous obtenons des visualisations dans un délai de moins de cinq secondes », annonce le responsable technique.
« Au fur et à mesure de l’augmentation du trafic, nous avons augmenté le nombre de nœuds. Tous les ans, nous avions des modifications de l’architecture à faire qui étaient assez importantes », estime le directeur du programme Erable.
Au sein d’Erable, les back-end d’applications exposent des API Rest. « Nous nous sommes confrontés à la complexité des logs. Chaque application génère des informations métiers précises ».
En plus de la volumétrie (9 000 champs référencés, 9 niveaux de profondeurs), les logs eux-mêmes avaient une taille importante. L’équipe responsable du PaaS Erable a optimisé la taille de métadonnées associées aux logs à partir de 2017 et a profité du RGPD pour déterminer un mapping fixe. Il n’y avait pas de standardisation des structures de logs comme Elastic Common Schema lancé en 2019. En ce sens, les gérants du PaaS ont mis au point un format de données rationalisé. « Nous avons rencontré la problématique avant qu’Elastic ne propose le format ECF », indique le responsable technique.
Par ailleurs, Sami Benzarti et son équipe ont mis au point un SDK pour suivre les performances des applications.
Parce qu’ELK dépendait d’un déploiement continu et d’un « chantier permanent » pour l’équipe en charge d’Erable, la solution a atteint un niveau de stabilité idéal il y a deux ans.
« Nous avons énormément travaillé pour maîtriser la production de logs de nos applications. Maintenant, nous sommes capables de prédire le volume de logs qui s’ajouteront au fil des déploiements applicatifs », considère Sami Benzarti.
« Maîtriser la qualité de services est un travail continu », ajoute Baptiste Caroz.
Aujourd’hui, l’équipe du PaaS Erable comptabilise 26 milliards de documents indexés sur la suite Elastic. Ces métriques et les logs représentent 45 To de données hébergées sur un cluster ELK de 80 To répartis sur 25 nœuds. Cela représente 2565 VM monitorées sur le PaaS à l’aide de la suite DevOps. « Nous avons entre 30 et 40 % d’augmentation de trafic par an », estime Sami Benzarti. « Cela est dû à la croissance des usages et au fait que nous hébergeons de plus en plus d’applications ». En effet, Orange a adopté en interne une stratégie cloud d’envergure, d’après Baptiste Caroz.
Pour les responsables techniques d’Erable, ELK est une plateforme déployée automatiquement via Puppet et puis Ansible. Ils comptent ajouter la prise en charge des APM, ce qui demandera une phase de développement supplémentaire.
ELK est devenu « indispensable »
Aujourd’hui les équipes s’appuient fortement sur ELK. Chaque application déployée sur Erable dispose de son tableau de bord Kibana. « Si nous retirons ELK du jour au lendemain, la mise en production, le suivi des performances, des usages en pâtiraient gravement », prévient Sami Benzarti.
Son équipe utilise la fonction de machine learning incluse dans Kibana pour faire de l’analyse du trafic, des niveaux de logs et de l’évolution du temps de réponse.
D’après Baptise Caroz, les développeurs, les opérateurs, les exploitants, les testeurs, les chefs de projet, les analystes et même les métiers marketing utilisent des données issues de la pile Elasticsearch Logstash Kibana. Pour cela, l’ETL Logstash sert à partager les informations aux partenaires internes (responsables du IaaS, équipes de cybersécurité, et de data science). Les profils techniques sont formés pendant deux jours.
Par ailleurs, Sami Benzarti est intéressé par Elastic Cloud Enterprise (ECE) et Elastic Cloud on Kubernetes (ECK). Les deux solutions doivent permettre de gérer la pile technologique de monitoring et d’observabilité plus facilement avec l’orchestrateur de containers.
Pour l’instant le cluster ELK est mutualisé sur un cluster avec une gestion fine des accès incluse dans l’offre d’Elastic. Si l’équipe adopte une nouvelle configuration, chaque application bénéficiera de son cluster ELK.
Kubernetes pourrait faciliter la gestion d’ELK chez Orange France
« Nous voulons éviter que le cluster que nous exploitons en ce moment devienne ingérable », affirme le responsable technique.
Autre point, l’équipe en charge du PaaS Erable s’est intéressée à Prometheus, la solution de supervision (« alerting ») d’Elastic. Pour l’instant et malgré sa popularité chez les exploitants, elle utilise d’autres solutions du marché parce qu’elle les considère plus performantes.
« Nous sommes en charge de proposer des produits de référence. Si les développeurs nous demandent une solution que nous n’avons pas encore, nous pouvons examiner et répondre à leur demande », explique Sami Benzarti. « Cela peut changer rapidement ».
Il ne s’agit qu’un des cas d’usage de la solution ELK chez Orange France. D’autres équipes comme celles spécialisées dans la cybersécurité l’utilisent différemment. « Nous faisons partie des gros utilisateurs de la solution ELK en interne chez Orange », précise tout de même Baptiste Caroz.