Ouicar

OuiCar et New Relic : la route de l’observabilité

Région
Business Challenge

Premier site de location de véhicules entre particuliers en France, OuiCar propose de repenser son rapport à la voiture en privilégiant l’usage à la propriété. Depuis sa création en 2007, sous le nom de Zilok Auto, OuiCar a su rester fidèle aux principes de la consommation collaborative, et compte aujourd’hui 2 millions d’inscrits et une flotte de plus de 30 000 véhicules partout en France. Avec la location sur mesure, un large choix de véhicules, des prix attractifs, la flexibilité et la simplicité d’utilisation, OuiCar fait tout pour offrir une expérience conviviale 100 % sécurisée.

Mais si OuiCar est aujourd’hui une réussite, la société a dû réexaminer son approche en 2018 après une chute des évaluations de sa boutique et l’impossibilité pour le nouveau CTO d’avoir quelque visibilité que ce soit sur la performance du stack. Et ce, pour la simple et bonne raison que seule l’infrastructure était surveillée et qu’aucun monitoring n’était effectué ni sur les applications mobiles ni sur les utilisateurs finaux. Il lui a donc fallu tout repenser et faire un replatforming à partir de zéro.

Le réaménagement de l’architecture pour une circulation fluide de l’information

Les solutions utilisées par OuiCar jusqu’en 2018 étaient composées de produits ponctuels et d’un monitoring avec CloudWatch d’Amazon uniquement. Le manque de visibilité était flagrant et affectait négativement l’expérience utilisateur et en conséquence l’activité globale de l’entreprise. Il arrivait même souvent que ce soit les clients qui trouvent les nombreuses erreurs dans l’application.

Le passage d’un système monolithique avec tracing relativement simple à un système beaucoup plus complexe avec 3, 4, 10 ou 15 microservices peut faire peur à beaucoup, mais pour OuiCar et son CTO, Guillaume Cavana, il était fondamental. Toutefois, il voulait éviter que les développeurs reçoivent trop d’alertes tout le temps, qu’ils n’arrivent pas à savoir si l’enquête http était arrivée par le point d’entrée défini, par où elle était passée ensuite, ni quels étaient les différents appels qui avaient été faits derrière, et surtout qu’ils passent beaucoup trop de temps à réagir aux problèmes et à les tracer eux-mêmes.

Un très gros défi pour nous c’est de faire en sorte que le client n’ait pas de problèmes. Donc anticiper son besoin, être alerté quand on a des erreurs sur les différents applicatifs ou qu’un microservice tombe, ou se comporte mal et peut potentiellement faire tomber les autres. Pour nous, c’est important que la solution soit stable et si ce n’est pas le cas, qu’on soit prévenu le plus rapidement possible pour pouvoir agir. 

L’implémentation d’une architecture moderne est complexe, fragmentée et volatile. La plupart des CTO sont face à des architectures où il y a encore beaucoup de legacy, de single-tenant, et autre dette technique. Il leur faut des solutions d’observabilité avec monitoring des performances, des goulots d’étranglement et des dépendances qui permettent des actions en amont sans alourdir la charge de travail des ingénieurs. Ainsi, Guillaume Cavana voulait une plateforme d’observabilité prête à l’emploi et tout-en-un pour ne pas perdre de temps ni d’information en passant d’un outil à l’autre et en naviguant entre les différents silo de données qui laissent également de nombreux angles morts.

New Relic, le carrefour corrélatif des données

Aujourd’hui, l’architecture OuiCar est orientée microservices et serverless et elle est gérée par AWS avec l’orchestrateur ECS. Elle est aussi complétée par les solutions proposées en plug-n-play par AWS qui ont permis à la société de se concentrer sur l’apport business dans les différents métiers et DevOps, mais aussi de faire le liant infrastructure, développement et business avec un accès aux différents services gérés d’Amazon. Enfin, OuiCar vise l’implémentation d’un cluster Kubernetes géré avec EKS pour très bientôt (fin 2020).

Derrière tout cela, la supervision avec New Relic pour la gestion de l’information et la corrélation des données est fondamentale. Les alertes précises, les logs, le tracing distribué, le dashboarding, pour ne citer que quelques-unes des fonctions offertes par New Relic sont essentielles pour OuiCar, qui compte sur la plateforme d’observabilité pour l’aider à détecter les problèmes de manière proactive, avant qu’ils n’impactent le client. Ainsi, grâce à l’instrumentation intégrale, il est beaucoup plus facile de suivre l’adoption des nouvelles versions et de voir en un coup d’œil tout ce qui se passe lors d’un déploiement. Et s’il y a effectivement un souci, les graphes permettent de corréler les données et de le résoudre rapidement.

Tous les chemins mènent à New Relic

L’immense avantage de l’instrumentation avec New Relic c’est que tout se trouve dans un seul et même endroit. En effet, une fois connecté à AWS, toutes les informations sont facilement visibles dans New Relic, et il n’est plus nécessaire de retourner dans les autres systèmes pour visualiser les données. Pour OuiCar le choix de New Relic était une évidence et ses bénéfices ont été immédiatement ressentis avec l’identification de dix problèmes différents dès le lendemain de l’installation de l’agent, et une amélioration de 40 % de ses temps de réponses au niveau du backend.

« Avec New Relic, on arrive, dans un même dashboard, à unifier l’ensemble des métriques sur les différents applicatifs qu’on a en interne. En plus, si on a un cluster kubernetes, ce n’est pas forcément simple de devoir grapher quel pod est en train de tourner, mais dans les faits, on a déjà une vue dans New Relic et on peut configurer des alertes qui vont se connecter aux différents systèmes. C’est un très gros avantage. 

L’équipe technique d’une vingtaine de personnes peut se concentrer sur le produit au lieu de se préoccuper du serveur et la plus grande disponibilité des DevOps facilite l’expansion de l’entreprise sur différents marchés. En outre, avec la corrélation de l’infrastructure et des performances des applicatifs, le travail des développeurs est non seulement devenu beaucoup plus simple et efficace, mais leur courbe d’apprentissage a également été réduite de manière drastique.

Une instrumentation intégrale qui élimine les points de ralentissement

Pour toutes les équipes de OuiCar, les logs sont absolument vitaux, car ils permettent notamment de créer des alertes. Avec l’instrumentation intégrale dans New Relic, ils présentent en plus l’énorme avantage de pouvoir faire le lien avec un problème sur un service et de passer d’un service à l’autre depuis la même interface. Par exemple, il est possible de voir toutes les métriques sur les 10 minutes au cours desquelles une erreur fatale s’est produite et de savoir ce qui s’est passé sur AWS, sur les microservices ou même sur le frontend ou l’application. Tout cela sans devoir changer d’outil, ce qui rend la tâche beaucoup plus simple pour tout le monde.

Autre fonctionnalité essentielle pour les services techniques de Guillaume Cavana : le tracing distribué. En effet, avec le tracing distribué, il est très facile de prouver par A+B qu’il y a un souci et qu’il faut apporter différentes modifications. Les traces sur le stack localisent l’endroit dans le code à l’origine de l’incident, ou la base de données dans laquelle il y a un problème. 

Par ailleurs, les outils de New Relic permettent également de surfacer la dette technique et d’avoir un dialogue sain avec les équipe produit et business pour que lors du prochain déploiement, au lieu de ne pousser que de la fonction, elles acceptent aussi de faire rentrer une certaine quantité d’améliorations techniques afin de préserver la qualité du service et corollairement le taux de conversion et le score de l’application. C’est un équilibre que la plateforme permet de mettre en évidence chez OuiCar.

Pour OuiCar, New Relic a une bonne longueur d’avance sur ses principaux concurrents

Selon Guillaume Cavana : « Finalement après tout ça, les bénéfices sont assez simples. Pour moi, ce qui est très important dans l’architecture microservice, c’est corréler les données entre les différentes applications (Web, mobile, backend) et l’infrastructure (avec toute la puissance et la complexité que peuvent amener les architectures dans le cloud), et aussi les microservices, qui amènent de la performance. C’est bien d’avoir un outil qui permet d’avoir une utilisation de ces métriques, de les avoir centralisées et de pouvoir les rechercher très rapidement sans avoir à les mettre en place soi-même. Et le 2e point très important, ce sont les alertes. Il vaut mieux prévenir que guérir. C’est très important d’avoir un système qui va permettre de lancer des alertes de manière précise ».

Quand on lui demande ce qui a motivé son choix de New Relic par rapport à ses concurrents, Guillaume Cavana répond tout simplement qu’il n’y a pas de comparaison. Certaines solutions sur le marché sont à la traîne derrière New Relic qui a su se concentrer sur l’instrumentation, la corrélation des données et une architecture moderne depuis le début et gagner ainsi une bonne longueur d’avance, même par rapport à son principal concurrent. D’autres exigent un long processus de création et de mise en place des dashboards avec toute la maintenance nécessaire après.

« Là, avec New Relic, conclut-il, on a vraiment un truc clé en main et c’est très efficace. Ça m’évite de sortir de mon outil pour aller dans un autre, c’est quand même beaucoup plus simple. On ne perd pas de temps ».