26 avril 2018 Cas Utilisateur

Orange : Rebondir avec Elastic !

Par Jean-Pierre Paris

Introduction

En 2015, j'avais présenté notre activité sur le blog Elastic. En conclusion de l'article précédent et de ma présentation à l'Elastic{ON} Paris 2015, j'avais promis de vous raconter nos futures aventures sur la Suite Elastic.

Plus de deux ans pour raconter la suite de nos aventures ! Mais un an c’est pas si long à l’échelle d’un projet : tout ne s'est pas déroulé comme prévu... Et les raisons ne sont pas techniques, mais liées à des priorités marketing et budgétaires. En effet, début 2016 nous n'avons pas basculé notre moteur de recherche sur Elasticsearch mais sur Google comme le montre notre page de recherche actuelle. L'ensemble de nos développements backend internes (propriétaires ou basés sur la Suite Elastic) a donc été arrêté au profit d'autres activités.

CommitStrip Sacrifice de projet

Nous avons utilisé notre savoir-faire dans le traitement de données et capitalisé sur notre expérience avec la Suite Elastic, pour continuer l’aventure dans le domaine de la BI et de l’analytique. Nous nous sommes lancés dans l'analyse des logs, la production de métriques puis de tableaux de bord dédiés.

Notre offre

Traitement de logs sur mesure

Le service metriKs, auquel je contribue depuis début 2016, centralise des logs applicatifs, applique des configurations spécifiques (Logstash, mapping Elasticsearch) et accompagne les utilisateurs dans la construction de tableaux de bords Kibana.

Nous hébergeons des projets de tailles très diverses : notre plus gros cluster tourne sur une trentaine de noeuds pour 80 milliards de lignes de logs et un volume de 80To. Le plus petit cluster abrite 600 000 documents, soit environ 1Go. Les tableaux de bord sont soit utilisés en temps réel par les équipes projet pour du monitoring, soit pour des restitutions périodiques auprès de leurs donneurs d'ordre ou leur management.

BAC PROD Dashboard Kibana

Indicateurs métier et accompagnement

D'autre part, nous traitons aussi des demandes métiers (analyse de verbatim, répartition d’activités aussi bien de télé-conseillers que de coaches agiles, suivi de la satisfaction clients pro...). La démarche consiste à aider les projets à visualiser et fouiller dans leurs données pour s’améliorer (logs, sondages,indicateurs métiers...).

L’écueil quasi systématique que nous rencontrons est de faire changer de paradigme par rapport aux habitudes prises avec un autre outil. Passer d’un outil comme Excel (l'IDE du pauvre) sur un laptop à une interface en ligne avec des données à jour, n’est pas aussi simple que cela.

CommitStrip Excel à toutes les sauces

L’autre demande récurrente est d’exporter les dashboards Kibana sous Powerpoint : plus d’interactivité, moins d'encombrement des boîtes mails... X-Pack apporte des réponses, Canvas nous montre un futur possible de Kibana.

Nous effectuons donc un accompagnement adapté selon le besoin de notre partenaire que ce soit dans la compréhension des données, de visualisation ou d’analyse aussi bien que sur la prise en main de d’Elasticsearch et/ou Kibana. A ce titre, nous collaborons avec l’équipe DIVE (Data Is Value for Experience) qui est au service de la relation client au sein de notre entité d’innovation.

L’entreprise bénéficie de notre échange et partage de nos connaissances et expertise sur la Suite Elastic. C’est d’ailleurs dans ce cadre que le plugin comments a été développé.

Sur les projets DIVE, la caractéristique principale est que le volume de données est petit (quelques dizaines de milliers de documents). Les utilisateurs finaux ne voient que l’interface Kibana et nous devons bien reconnaître que la v5 nous a ouvert de nombreuses portes et est apparue beaucoup plus « sexy » que les versions précédentes. Souvent, les collègues faisaient référence aux outils concurrents comme Qlik ou tableau et il était compliqué de proposer le même niveau de convivialité avec Kibana v4.

Notre fonctionnement

Dans cette section, je vous raconte plus en détail quelques "anecdotes" concernant notre équipe, nos réussites, nos "soucis"...

devops

Le choix de docker a été fait très tôt à la création du service, mais swarm n'était pas encore au rendez-vous. Nos déploiements sont réalisés à base d'images docker des composants Elastic que nous réalisons nous-mêmes afin d'intégrer des plugins spécifiques. Pour ces clusters, nous déployons directement sur des machines physiques.

Pour nos instances de petites volumétries, notre principal problème portait sur le déploiement rapide. Nous avons choisi d'utiliser docker swarm natif à partir de la version 3.

Nous avons actuellement deux modes de déploiement :

  1. docker sur bare metal
  2. docker swarm v3 (natif)

Au final, notre fonctionnement en équipe intégrée nous a permis de facilement diffuser l'usage de docker et d'être efficaces sur les différents modes de déploiement. Le premier doit passer rapidement sur swarm natif. Ce deuxième mode nous permet de créer en quelques minutes une instance Elastic et nous travaillons actuellement à le rendre pilotable par nos clients. Je ne vais pas détailler plus avant : en effet, l'offre Elastic Cloud Enterprise (ECE) d'Elastic permet d'aller beaucoup plus loin et la présentation de Sylvain Wallez à l'Elastic{ON} Paris était impressionnante. Malgré tout, nous ne regrettons pas notre choix qui nous a permis de progresser, dev et ops ensemble, dans notre compréhension de docker.

En complément, Elasticsearch offre aussi des facilités intéressantes pour une équipe intégrée. Que ce soit pour faire des requêtes utilisateur ou pour des requêtes de configuration ou de supervision, REST/JSON est le "langage" de base. Ainsi, un développeur qui travaille sur l’implémentation des requêtes de search ne sera pas surpris par la syntaxe des requêtes de configuration. Et réciproquement pour une personne travaillant sur la configuration fine d'un cluster Elastic. Encore une fois, ceci a renforcé les échanges et la montée en compétences de notre équipe.

metriKs de metriKs

Pendant un long moment la supervision de nos petites instances était... manuelle. Nous avons attendu longtemps avant de déployer Metricbeat et Filebeat sur nos stacks swarm Et pourtant, quand nous l'avons fait, l'installation basique nous a seulement coûté 1/2 journée de travail. En 1/2 journée, nous collections les métriques et comme tous les modules de Beats arrivent avec des dashboards par défaut, nous pouvions superviser nos instances ! Les cordonniers ne sont donc pas forcément toujours les plus mal chaussés, contrairement à ce que dit le proverbe !

Enfin, notre solution de sauvegarde des données n'était pas sans faille. Nous avons pu rapidement migrer sur les snapshots d'Elasticsearch dès que nous avons déployé un service s3 dans tous nos swarms : les snapshots automatisés par curator et avec un accès manuel via cerebro. Exactement ce que voulaient nos clients !

Amélioration continue

Tout le monde a le droit de se tromper ! Et de s’améliorer avant que l’immeuble ne s’effondre.

 CommitStrip Move fast break things

Dans notre fonctionnement, nous avons rencontré quelques écueils : l'agilité ne se met pas en place toute seule, la collaboration dev+ops n'est pas toujours aisée, le backlog grossit et chacun reste un peu dans son coin sans oser prendre la main sur le projet de son collègue... Bref, on essaye d'être agile et devops mais il faut trouver des modes de fonctionnements différents. La lecture sur le blog Elastic de l'article Fix-It Friday m'a donnée des éclairages intéressants et voici ce que nous faisons maintenant.

En parallèle du daily meeting (30 minutes) le matin, nous avons une discussion technique l'après-midi. Cette réunion peut être plus ou moins longue selon le besoin, on réserve une heure par défaut. Selon les sujets du matin, selon les activités en cours, chacun apporte SON problème pour la partager avec l'équipe. Nous avançons sur des solutions si on en trouve et nous discutons du sujet à plus long terme si nécessaire. Nous passons aussi en revue des issues tous les 15 jours. Grâce à cet espace plus technique, nous évitons désormais les daily trop longues et surtout les sujets problématiques sont maintenant mis en avant. Dans quelques temps, je suis convaincu que nous allons aussi ritualiser un Fix-It Fridays afin de traiter les "petites" issues !

Elastic, ce sont des outils, mais c'est aussi une communauté et une entreprise qui partagent leur culture, qui essayent de faire progresser les membres au-delà des aspects technologiques ! Merci ! Et bravo.

Notre accompagnement

Comme nous l'avons vu plus haut, nous avons deux types d'utilisateurs, certains sont des "guru" de Kibana ou Elasticsearch, d'autres découvrent la technologie.

Nous devons donc rendre le plus fluide possible l'apprentissage de ces outils. Emmanuel est responsable de notre accompagnement interne Orange France. Il sait comprendre votre besoin et il vous guide dans vos premiers pas afin d'éviter quelques soucis classiques. Pascal propose aussi un accompagnement aux projets Groupe dans l'équipe DIVE.

Elastic Tech

Notre équipe organise une veille technique sur la suite elastic afin de rester à jour. C'est important car Elastic travaille vite et le rythme de sortie des nouveautés est soutenu. Tous les mois, nous réunissons les utilisateurs Orange de la suite pour partager. Je suis particulièrement étonné de pouvoir alimenter tous les mois la rubrique "personne ne lit la doc" qui met en avant une information précise trouvée dans la documentation d'un composant. Voilà, pour illustration, le dernier exemple en date : forcemerge. A la lecture de la documentation, nous pensions que mettre un JSON dans notre POST suffirait. Et bien non, il faut mettre des paramètres en query string et pas de JSON :-)

Articles et présentations

A différentes reprises, les membres de notre équipe font des présentations internes ou externes. Merci à Elastic de nous avoir envoyé les stickers qui nous permettent d'avoir des goodies à distribuer. D'ailleurs, nous avons suivi l'exemple : notre service a un logo et les stickers qui vont avec ! Et nous sommes toujours surpris qu'on nous demande nos autocollants !

Open Source

De façon moins anecdotique que ci-dessus, nous avons commencé à contribuer en Open Source autour d'Elastic.

  • l'app comments, couplée aux annotations du visual builder nous permet d'ajouter facilement des commentaires sur nos time series. Guillaume porte ce développement et sera heureux d'avoir vos retours.View comments
  • l'app xlsx permet de charger une feuille Excel dans Elasticsearch via Kibana. C'était notre chaînon manquant pour avoir des démos rapides et percutantes pour les utilisateurs d'Excel. Cette app est développée par Frédéric, l'apprenti de Guillaume.

La suite

Si tout pouvait ne pas changer, on n'avancerait pas bien vite. Donc, après cette longue séquence avec le moteur de recherche et une bonne expérience acquise sur la Suite Elastic, je vais rouler vers de nouvelles aventures (histoire d'avoir un peu plus la tête dans le nuage). Bien sûr, David, Guillaume et toute l'équipe continuent de faire vivre la compétence Elastic. Et qui sait, peut-être que je reviendrai sauter à l'Elastic avec eux un peu plus tard.

Mais, j’écris, j’écris, alors qu’il y a plein de choses à livrer…

CommitStrip Parler trop

(merci à CommitStrip pour les illustrations !)