Sentry : Frontend Monitoring, pour détecter les problèmes de vos utilisateurs

Frontend … monitoring, quel intérêt ?

Tout d’abord, rappelons rapidement de quoi on parle lorsque l’on aborde le sujet du frontend. Lorsque l’on ouvre son navigateur et que l’on va sur internet, le navigateur va charger du HTML, du CSS, du Javascript, des images, … bref, tout un tas de ressources qui a tendance à se complexifier de plus en plus. Et cela ne va pas s’arranger si l’on prend en compte des frameworks javascript qui sont de très bons outils, mais qui embarquent plus de code et peuvent donc créer plus d’erreurs.

En parlant d’erreur, est-ce que c’est grave ? Cela dépend, cela peut-être totalement invisible pour l’utilisateur, mais cela peut aussi être assez grave. Prenons l’exemple du listing de lacentrale, la majeure partie de la page étant en react, une erreur bloquante peut rendre la page inutilisable.

Evidemment, on peut se dire que l’on va vérifier par nous-mêmes que tout marche bien, malheureusement, une erreur peut être provoquée dans des circonstances particulières que l’on ne pourra pas reproduire. Dans ce contexte, un bon monitoring est indispensable.

Sentry : La sentinelle

Mise en place

Lire la suite

Déterminer la valeur d’un véhicule pour les prochaines années

Forte de sa longue expérience en matière de cotation des véhicules, La Centrale, propose depuis ce début d’année, en plus de la cote, la valeur prévisionnelle des véhicules dans les prochaines années. Nous vous proposons dans cet article, de partager avec vous la démarche entreprise pour vous proposer ce nouveau service.

La méthodologie mise en jeu

Accumulant de nombreuses données de cotation, au fil des années, et ce depuis la création de la cote La Centrale, ainsi que l’évolution qualitative et des techniques de machine learning, nous pouvons aujourd’hui vous proposer de déterminer la valeur approchée d’un véhicule pour les prochaines années.

Après différents tests des algorithmes disponibles, le choix s’est porté sur le regressor proposé par l’algorithme de type boosting, le Catboost développé par Yandex, accompagné d’une correction exponentielle, qui vient donner un ajustement supplémentaire pour améliorer la précision.

Nous récupérons l’équivalent de 10 années glissantes de cotation qui sont préalablement agrégées à travers différents jobs ETL de type spark/glue. Le modèle les ingère après notamment quelques transformations nécessaires, telles que la transformation des variables catégorielles (marque, modèle, énergie, etc.)

Notre modèle de prédiction de la valeur future a un grain mensuel, et ce pour les dix prochaines années. C’est pour cela que nous le mettons à jour une fois par mois avec de nouvelles données plus fraiches.

Mesurer la performance

Les métriques mesurant la performance d’un modèle de régression sont connus: RMSE, MAE en tête. Comment s’assurer dès lors, que cette performance est valide pour le futur ?

Le premier élément réside dans la manipulation des variables. Au lieu de considérer l’année de la mise en circulation (absolue), nous considérons son âge (relatif) afin de reporter la dynamique « passée » vers le « futur ».

Certaines hypothèses ont été émises et validées, notamment sur l’évolution de cotation d’un véhicule similaire, mais dont les dates de mise en circulation sont différentes. En d’autres termes un véhicule A sortie en 2000, aura la même évolution de cotation au cours du temps, qu’un autre véhicule B sortie en 2002, toutes choses étant égales par ailleurs.

Comme tout algorithme, sa performance peut posséder des biais. Il est important d’analyser la performance de l’algorithme par sous-catégorie (exemple : calcul de MAPE en fonction des énergies: hybride essence etc. ), dans le but de savoir d’une part là où notre algorithme est très performant, et d’autre part où des ajustements sont nécessaires.

Enfin dans une démarche d’amélioration continue, une fois que nous aurons acquis suffisamment de données, nous pourrons également comparer les cotes prédites aux cotes courantes, et faire une analyse rétrospective de la qualité de notre modèle.

Les difficultés : problème du cold-start

Comment gérer les véhicules totalement nouveaux ? Car en effet, l’estimation de la cote future se base sur les évolutions des cotations antérieures. On peut donc légitimement s’interroger sur la façon de valider les cotations proposées pour le futur.

Afin d’évaluer la cote future, notre modèle ne se base pas uniquement sur la marque ou la version d’un véhicule mais sur des données comme la puissance, l’énergie, la catégorie, ou encore le prix neuf, qui sont elles disponibles même lorsque le véhicule n’a pas été encore recensé.  De fait, à défaut de prendre en compte la marque non fournie, l’algorithme prend les autres informations disponibles pour proposer une cotation future.

L’une des techniques basiques, pour évaluer la qualité du modèle sur ce genre de cas,  est de retirer complètement une marque d’un véhicule dans les données d’entrainement et de comparer les résultats lorsque cette marque est présente. Les tests effectués montrent que les différences sont négligeables et nous permettent d’avoir une approximation suffisamment proche.

Exemple de prédiction avec et sans la marque Renault dans le training


Notre modèle est donc capable de proposer une cote future grâce aux informations des autres véhicules présents dans notre dataset. Cette constatation nous apporte une indication forte sur la capacité du modèle à donner des prédictions de cote même pour des véhicules partiellement ‘‘inconnus’’ (marque, modèle, version).

Dernier passage obligatoire : une validation métier. Les experts métier de La Centrale ont pu vérifier la cohérence des évolutions au cas par cas, et confirmer la cohérence des résultats obtenus.

Les limites de la prédiction

Crise économique ou sanitaire sont par définition imprévisibles, elles ne peuvent être anticipées et donc être intégrées à nos modèles de prévisions. L’évolution de la cote future correspond donc à une évolution nominale, une évolution « moyenne » de ce qu’on pourrait attendre d’un véhicule.

De même il parait difficile d’anticiper un engouement soudain pour un véhicule, bien que nos modèles viendront capter cette évolution après un certain temps.

Les aspects techniques

La Centrale a fait le choix d’être full AWS, et d’utiliser pleinement les outils mis à disposition sur la plateforme. Ainsi le choix de sagemaker, framework dédié au machine learning était le plus adéquat pour mettre en place la solution de la cote future.

Architecture simplifiée

Utilisant un algorithme custom, qui n’est pas présent par défaut dans sagemaker, il était ici nécessaire de passer par la case ECR (image custom docker), pour d’une part faire le training du modèle et d’autre part utiliser une machine GPU, pour accélérer le training du modèle.

Sagemaker possède un composant endpoint auquel il est nécessaire d’y accoler une lambda passe-plat afin de l’exposer. L’architecture proposée permet de gérer efficacement la charge d’un million d’appels/jour.

Garde-fou

Tributaire de la qualité des traitements des données effectués en amont, et conscient également de l’ensemble des bugs potentiels pouvant intervenir sur l’ensemble de la chaine, il est important de maitriser ce que le modèle peut servir, c’est pour cela qu’avant chaque publication d’une mise à jour du modèle en production, nous en vérifions sa qualité.

Nous ne republions chaque mois le nouveau modèle que s’il satisfait aux critères de performance souhaités. Ainsi un RMSE trop élevé comparé à ce que l’on a habituellement, sera le signe d’une régression, qu’il est préférable de contrôler avant publication.

Conclusion

Avec cette nouvelle feature, La Centrale propose aux futurs acheteurs et vendeurs un nouvel indicateur pour l’accompagner dans sa prise de décision. Elle leur permet d’anticiper la dévalorisation du véhicule acheté en cas de revente. Les challenges techniques et algorithmiques nous ont poussé à proposer une architecture innovante et une performance au rendez-vous.

Que la force soit avec toi!

Yoda, Jedi, Star Wars, Extraterrestre

Nous avons créé  il y a un an un nouveau concept : les ORDRES à l’instar des Ordres Jedi.

J’ai trouvé un début de definition assez intéressante : l’Ordre Jedi était une ancienne communauté guidée par sa croyance et son observation de la Force et notamment de son côté lumineux. Pour les puristes je vous laisse faire un google pour une définition plus complète, quant à moi je vous donne la définition que nous, chez Groupe La Centrale, nous avons donné :

Un ordre est un sujet/projet transverse qui permet de réunir et constituer une équipe pluridiciplinaire pour travailler ensemble. Je vous fais un feedback sur ce nouveau process.

Qui : il concerne tout le monde des métiers Produit, IT ou marketing :

  • Direction technique : Développeurs, Scrum master, Manager, Ops, Architecte, CTO
  • Direction Produit : PO, UX/UI Designers…
  • Direction marketing communication
  • Direction marketing Btb
  • Analytics
  • SEO
  • COO
  • CPO

Quand

  • On alloue une journée par semaine à chaque personne pour travailler sur son sujet
  • Elle choisit sa journée mais en pratique c’est plus facile à gérer quand tout le monde a le même jour : ex le vendredi est officiellement la journée ordre pour ceux qui participent à un ordre
  • La personne s’organise comme elle souhaite sachant qu’idéalement un weekly meeting est conseillé.
  • 1 fois par mois un comité est mis en place pour donner l’avis sur les ordres proposés et actifs

Quoi

  • Tout sujet transverse
  • Nouveaux sujets innovants
  • Les POC que l’on voudrait lancer (tiens si on teste AWS Timestream avec l’ordre Annonces)
  • Un sujet technique
  • Une façon de faire (comment je dois monitorer mon application)

Comment

  • 1. Je crée un jira dans une file Projet
  • 2. Je constitue mon equipe (je « vends » mon projet et je recrute les gens) : il faut le JEDI (oui comme dans StarWars, le plus fort quoi ou plutôt celui qui porte le sujet) , les membres de son equipe et un facilitateur (un manager IT pour aider et faire un sorte d’assurer le bon fonctionnement et de solutionner les points de blocage)
  • 3. Je soumets mon idée à un comité pluridiciplinaire (Dev, architecte, Po, Manager …) avec les objectifs attendus dans un délai de 3 mois
  • 4. Une fois le projet validé, tous les mois je fais un update auprès de ce comité d’ORDRES pour présenter les avancements
  • 5. On valide chaque mois auprès de ce comité si on continue le sujet ou bien on arrête

Les questions qu’on a eu :

  • En fait c’est pour faire les projets qui ne sont pas priorisés dans notre RoadMap?
  • Ce sont les projets techniques de FE (François Emmanuel PIACENTINI le CTO) ?
  • Ce sont les projets fonctionnels de Jérôme ? (Jérome PONSIN le COO)
  • Je suis obligé de participer ? J’ai déjà les sujets de ma feature-team.

Exemples de sujets que nous avons eu :

  • Feature Flipping 
  • L’ordre JIRA (qui nous permet d’uniformiser nos boards/workflow) 
  • Redesign d’une salle de réunion sans fenêtre qui a été désertée par tout le monde (qui d’ailleurs est devenue une des salles les plus prisées pour les réunions après le redesign)

Resultat de l’ordre du redesign de la salle Caroussel 2.0 :

  • Storybook (mise en place chez GLC sur l’ensemble de nos sites)

Feedback

Effectivement nous avons eu plusieurs problématique et je vous indique ici comment nous les avons solutionnées

  • La participation : « Je suis obligé de participer ? J’ai déjà les sujets de ma feature-team »
    • Expliquer l’intérêt de participer à un ordre (donner du sens) : on contribue à un projet transverse qui nous impacte, qui impacte notre feature team. Soit tu fais partie de ceux qui vont poser les normes, les standards en participant à l’ordre, soit tu vas « juste » les appliquer par la suite lorsque ce sera fait et donc on te donne l’opportunité de donner ton avis et de construire la base qui sert pour tous. Ex : Ordre Yeoman GLC ( définit un ensemble d’artefact prêt à être utilisé pour l’init d’un projet, en gros te simplifier la vie quoi !) et ça devient une norme chez GLC
    • Ça te permet de voir un sujet que tu n’aurais peut-être pas fait car tu n’as pas de connaissance sur le sujet ex : un sujet de Machine learning alors que je suis un developpeur Web
  • Le temps «J’ai pas le temps, j’ai piscine »
    • On te donne le temps : tu crées les Jiras dans ton equipe et lors de la priorisation d’un sprint : il sera dans l’itération (bon la j’avoue que ce n’est pas aussi fluide car au sprint planning il n’y pas l’US et arrivé le vendredi la personne indique qu’il va faire de l’ordre et forcément le PO et le manager demandent mais où est le jira ???? ). Oui cela demande l’organisation ! C’est la qu’intervient le facilitateur et le JEDI !
    • Je ne vous cache pas que sur certains sujets primordiaux j’ai mis des « volontaires » de mes différentes equipes et je leur ai expliqué l’importance de leur participation pour leur feature team.
  • L’avancement : les tickets sont là, mais parfois non priorisés ou n’avancent pas. C’est là qu’intervient le facilitateur pour voir les points de blocages de manière transverse et aider cette equipe d’ordre. Certains ordres avancent sans la présence obligatoire du facilitateur, c’est le JEDI qui le sollicite en cas de besoin.

Voici un KPI sur les 41 projets que nous avons eu : (oui tout n’est pas accepté ! on a eu 5 projets refusés, des idées qui sont restées à l’ordre de proposition et 22 projets en PROD)

Next step :  les projets transverses c’est bien mais on en fait quoi ?

C’est notre next step une fois le projet réalisé et en production, une Feature team récupère la stack et donc du maintien et des évolutions. Cette partie n’est pas encore rodée car les projets restent dans l’état de cloture. Il nous reste donc à continuer à les faire évoluer.

En passant

CBM AWS Deepracer

After attending a AWS summit where we saw the first AWS DeepRacer race, we decided we wanted one at CBM!

So the next day or almost, on March 22nd, we ordered a DeepRacer on Amazon. So exciting! We wanted to organize a race during our annual seminar planned in May.

We were told the very first model would  be delivered in April 2019, then delivery was delayed to July. Then no more date. OMG!

So we took matters in our own hands and asked our AWS sales representative to find us a car ready for our end-of-year party, because the seminar was obviously not an option anymore.

We had to be patient, because our sales representative had to activate her internal AWS network in order to find a car, and finally the “Holy Grail” arrived …. Drum roll: early December and our party was to takes place on December 19th.

We established a few rules and guidelines to follow:

  • Train in the DeepRacer simulation environment
  • Build teams with 3 people including 2 OPS/DEV max per team and one non-technical guy/girl (PO, Designer, Sales…)
  • We added a “PimpMyCar” challenge in which each team had to customize the car and then remove it for the next team.
  • Each team would have 6 minutes to perform a full round.

Lire la suite

Nous n’avons rien touché !

Chez Carboat, comme dans beaucoup d’entreprises, il n’y a pas de MEP le vendredi. Le principe étant d’avoir le temps de se retourner et d’éviter de pourrir le week-end des personnes d’astreintes et de nos internautes avec un site défaillant.

Vendredi 14h. Le monitoring est rouge…. un.e chargé de clientèle débarque, les clients appellent en masse. Les internautes ne peuvent plus déposer d’annonce.

Arf une MEP exceptionnelle a du être faite par une autre équipe. Mmmh selon l’historique des changements de prod, non. Changement clandestin qui n’aurait pas été tracé ? Non plus.

Mais qu’est-ce qui se passe ?….  Quels sont les causes de ces bombes à retardement hors MEP ? Lire la suite

Machinator pour les nuls

Le Lab

Matchinator est un projet réalisé pour le challenge « Lab » organisé par la société Carboat Média et dont la présentation finale s’est déroulée au cours du séminaire 2018 à Barcelone. L’objectif de ce challenge consistait à proposer un prototype à partir d’un des objets connectés mis à la disposition de tous les participants (Raspberry Pi, Google Home, Lego Mindstorms, Alexa, Horloge connectée, etc). Ces projets devaient être réalisés en équipe, et chaque équipe était mise en concurrence afin de déterminer, au travers d’un vote d’environ 70 personnes, le projet qui respectait au mieux les principaux critères, à savoir : idée innovante, qualité de la réalisation et qualité de la présentation. Lire la suite

En passant

Notre participation au « Israël Tech Journey 2018 » d’Axel Springer

L’israël Tech Journey est un voyage organisé par le groupe Axel Springer réunissant des participants de plus de 19 filiales parmi lesquelles :

L’objectif de ce voyage est de faire découvrir Israël, sa culture et ses sociétés IT innovantes et de développer la relation entre les filiales :

Nous vous proposons de suivre le journal de bord de cette aventure ! Lire la suite

En passant

AWS:reInvent 2017 by Christophe

Le catalogue d’évènements proposé au sommet aws reinvent 2017 était incroyable.
Le portail de l’évènement ouvert quelques jours avant le début des hostilités ne proposait pas moins de 2236 sessions et évènements divers.

Afin de s’assurer une présence aux sessions préférées, il semble impératif d’être parmi les premiers à « réserver » un siège aux conférences, même si on le verra pas la suite, en l’absence de réservation, patience et abnégation permettent également d’assister aux évènements (avec beaucoup de patience parfois)

Sur le portail et sur l’application mobile qui ne nous quittera plus pendant la semaine de l’évènement (avec whatsapp) les sessions sont classées par type, par thématique de service, par niveau et par domaine d’activité. Mais dispersés sur 6 lieux différents plus ou moins rapprochés, on aura aussi rapidement besoin de les classer par lieu, afin d’essayer d’organiser des journées les plus pratiques possible (et d’éviter les files d’attentes aux bus par exemple)

Lire la suite

En passant

AWS:reInvent 2017 by Sam

http://www.kizoa.fr/Montage-Video/d160799164k9386626o1l1/awsreinvent2017

Avant :

  • On échange nos numéros de portable
  • On se dit qui part avec quoi (tu mets combien de chaussettes dans ta valise ?)
  • On réserve les conférences depuis Paris (plutôt bons élèves car on a vu des personnes qui ne l’ont pas fait et se retrouvent sans place une fois là-bas)

 IMG_0162

26 novembre 12h : départ synchro de l’équipe

La première découverte de la synchronisation et de la vie en communauté (Florence t’es où ? Nicolas encore au Duty-free ? on se retrouve à l’embarquement ?). Dès l’aéroport on a un avant-goût des nombreuses files d’attente que nous aurons durant le séjour. C’est un peu comme à Disney pour faire Space Mountain, les files d’attentes sont un passage obligé ! On reste tous réveillés par l’excitation… ou plutôt par le bruit de l’avion. Arrivés à Chicago, on a l’angoisse des contrôles douaniers pour l’ESTA : on imagine comme dans les films un interrogatoire musclé sachant qu’à Paris la gentille hôtesse nous avait déjà posé des questions sur notre vie privée afin de s’assurer de nos bonnes intentions. Finalement l’agent américain est d’humeur blagueuse et nous laisse rentrer sur le territoire tranquillement.

26 novembre à 21h : arrivée à LAAAS VEEEEEGAS

Dans le taxi, nos yeux sont rivés vers le décor plutôt gargantuesque avec des hôtels immenses et bling bling qui s’offrent à nous. Arrivés à l’hôtel, on est tous fatigués par ce long voyage. Là nous découvrons « les casinos ». Mon concept de Casino : il y a UN casino au milieu de la ville, un grand. En fait il y a DES casinos dans chaque hôtel. Dans le notre Lire la suite