Post Mortem

Post Mortem

By François PaupierTechnology
Download on the App Store

Post Mortem episodes

  • #14 Scaler sa réponse à incidents - Le cas Algolia

    Cette semaine-là, Xavier reçoit plus de 80 alertes la nuit. Impossible de dormir correctement. Il y a forcément quelque chose à faire pour sortir les ingénieurs on-call de cette spirale et éviter une alert fatigue">alert fatigue. Mais par où commencer ? 


    Dans cet épisode,  on retrace la façon dont Algolia a réorganisé ses efforts de maintenance opérationnelle à mesure que son moteur de recherche gagne en popularité.


    Aujourd'hui je reçois Xavier Grand, Software Engineer au sein de l'équipe d'Algolia  depuis son incubation à YCombinator en 2014, Xavier est aujourd'hui Manager Search à Algolia. 


    Nous revenons sur la façon dont Algolia a fait évoluer ses équipes et sa stratégie pour répondre à des outages à mesure que le produit, l'équipe et la codebase prenaient du volume, en particulier :

    • Les 3 étapes clés du chemin parcouru par les équipes tech d'Algolia pour gagner en maturité sur la réponse à incidents 🗝
  • L'importance d'organiser le transfert de connaissances des experts de la codebase vers les nouveaux collaborateurs et comment accompagner les nouveaux venus pour leur premier cycle on-call 🚨📊👩‍💻
  • De l'importance de monitorer les causes et non les symptômes 🤒

  • Ressources 

    • La recommandation de Xavier; Le Google SRE Workbook, excellente ressource (et gratuite) pour animer un club de lecture avec votre équipe et réfléchir ensemble sur  des bonnes pratiques transposables dans votre organisation.
  • Pour un exemple de blog post mortem  d'Algolia, je recommande cet excellent article de blog sur leur gestion de l'attaque Salt en mai 2020. 
  • 30 min
  • #13 An experiment gone wrong

    Quelle interface choisir pour les utilisateurs de mon site ? Le nouveau système de recommandation de mon application a-t-il un impact ? Pour qui ? 

    Un test AB permet de comparer deux variantes afin d’identifier la plus efficace pour l’objectif recherché. Aujourd’hui, je reçois Cyril De Catheu, Data Engineer @ AB Tasty pour discuter des dessous d’une plateforme d'expérimentations 🧑‍🔬

    Pour collecter les événements des sites clients (e.g., clic sur tel bouton, de telle couleur, etc.) et les faire parvenir à la plateforme d’AB Tasty, c’est tout un système de message queuing qui est nécessaire. 

    Dans cette chaîne de traitement, Cyril identifie une optimisation qui permettrait de simplifier l’architecture et d’économiser quelques centaines de dollars. 

    Quelques jours plus tard, la CyberWeek. Alors que certains sites clients d’AB Tasty voient leur activité multipliée par deux, les coûts liés au service pub/sub explosent 📈 💸

    Cyril garde la tête froide et mène l’enquête. Il dispose d'un outil de choix pour élucider ce mystère, la wayback machine. Let's get back in time ⏱ 👩‍🚀


    Resources

    • A/B Testing, Wikipedia
  • Wayback machine, la "Machine à remonter le temps" de l'Internet. https://web.archive.org/
  • La recommendation de Cyril: The Data Engineering Podcast, pour des éclairages sur la mise en production de chaînes de traitements de données https://www.dataengineeringpodcast.com/about/

  • Glossaire

    • ack: du verbe anglais “to acknowledge” - littéralement “accuser réception de”. Utilisé en event processing pour qualifier le fait qu’un process accuse réception d’un message. Pratique dans une architecture distribuée où la perte de messages via le réseau est possible et l’on veut s’assurer une certaine sémantique sur le traitement d’un message (le message a été traité au moins une fois, ou exactement une fois).

 Pour une introduction plus poussée sur sur le stream processing et ses challenges, je recommande le Chapter 11: Stream Processing de l’ouvrage de référence: 
Kleppmann, M. (2017). Designing Data-Intensive Applications. O’Reilly Media.


    Credits

    • L'extrait audio à 21'40" est issu du film Kung Fury, https://youtu.be/bS5P_LAqiVg?t=599


    29 min
  • #12 Comment Google anonymise vos données personnelles avec la Differential Privacy

    Des emojis les plus populaires sur iOS à l'affluence dans votre boutique préférée sur Google Maps; comment ces informations sont obtenues? Et quelles garanties peut-on avoir quant à la préservation de l'anonymat des utilisateurs?

    Dans ce Post Mortem thématique, le Docteur Damien Desfontaines - Senior Software Engineer, Privacy pour Google nous parle de Differential Privacy (confidentialité différentielle).

    Avec des centaines de millions d'utilisateurs actifs chaque jour, les géants du numérique bénéficient de données précises d'utilisation. Au-delà de l'amélioration de l'expérience utilisateur, ces données, une fois agrégées, peuvent contribuer à adresser des problèmes de santé publique.

    Après un bref historique des techniques d'anonymisations (02'00"), on définit la confidentialité différentielle et ses propriétés (06'50") avant de revenir sur un cas d'usage au sein de Google (20'18") pour enfin discuter des implémentations existantes (27'58") et des challenges à l'adoption de cette technique (34'13").

    Sur Apple Podcast, vous devriez avoir accès aux chapitres avec les liens et illustrations. L'illustration de la Randomized Response devrait être utile!

    Toutes les illustrations sont disponibles sur le blog post qui accompagne l'épisode sur le Medium du Post Mortem Podcast https://medium.com/the-post-mortem-podcast

    Ressources

    • Latanya Sweeney et la ré-identification des données médicales du gouverneur du Massachusetts, William Weld en 1997.  Wikipedia


    • Le blog de Damien sur la Differential Privacy, c'est très visuel et de nombreux articles sont accessibles au grand public https://desfontain.es/privacy/differential-privacy-awesomeness.html (~10mins de lecture). Une version html de sa thèse Lowering the cost of anonymisation est également disponible sur son site. Les chapitres légers en maths sont indiqués par une fleur ✿.


    • Pour le cas d'usage de la Differential Privacy chez Apple cité en introduction, voir le papier de la Differential Privacy Team d'Apple : "Learning with Privacy at Scale", disponible ici https://docs-assets.developer.apple.com/ml-research/papers/learning-with-privacy-at-scale.pdf


    • Un exemple d'usage de la Differential Privacy chez Google; Les Community Mobility Reports, pour une vision de l'impact du covid sur la mobilité des personnes https://www.google.com/covid19/mobility/


    • Description du processus d'anonymisation pour les Google Community Reports "Google COVID-19 Community Mobility Reports: Anonymization Process Description", https://arxiv.org/abs/2004.04145


    • Le papier "Differentially Private SQL with Bounded User Contribution", https://arxiv.org/abs/1909.01917 publié par Damien et son équipe pour faciliter l'utilisation de la Differential Privacy par les analystes en étendant les capacités de SQL


    • La librairie open source de Google sur la confidentialité différentielle est disponible sur GitHub: https://github.com/google/differential-privacy



    Fun Facts

    • The Fundamental Law of Information Recovery, Cynthia DWork: "“Overly accurate” estimates of “too many” statistics is blatantly non-private" extrait du livre “The Algorithmic Foundations of Differential Privac
    39 min
  • #11 Prédiction de retards à la SNCF 🚉

    Tous les jours, des millions de voyageurs prennent le train sur le réseau SNCF, mais parfois, un train subit un retard.

    Aujourd'hui je reçois Héloïse Nonne, Head of Data Science & Engineering @ eSNCF, pour comprendre comment ce problème est adressé en interne pour améliorer l'information voyageurs.

    Après avoir présenté les spécificités d'un projet ML dans un groupe qui opère sur plus de 30 000 km de voies, Héloïse revient sur la modélisation envisagée pour améliorer l'information voyageurs (10'00") avant de faire le bilan sur un projet mis en prod l'été 2019 (27'30").


    Ressources

    • L'équipe d'Héloïse à rédigé un blog post qui détaille l'approche technique choisie pour la résolution, du feature engineering à l'industrialisation: https://www.digital.sncf.com/actualites/la-data-science-au-service-de-linformation-voyageur
  • Pour la contextualisation, on évoque les différentes activités du groupe SNCF: https://www.sncf.com/fr/groupe/profil-et-chiffres-cles/portrait-entreprise/qui-sommes-nous

  • Infos sur le podcast

    • La fréquence de Post Mortem va passer à 1 épisode par mois
  • Dans cet épisode, j'utilise des illustrations à certains moments (e.g., 14'11" au sujet de la "météo des retards") dites moi ce que vous en pensez en commentaires sur Apple Podcast ou en DM sur twitter @PodcastMortem  🙏
  • 36 min
  • #10 Competitive Data Science Vs Réalité business

    Les plateformes de Data Science comme Kaggle permettent de découvrir des jeux de données variés et de se tester face à d'autres compétiteurs.

    Plus votre modèle performe, meilleur est votre classement sur le leaderboard.

    Avec des jeux de données "curated" et des métriques à optimiser définies dès le début, le setup d'un Kaggle est souvent bien différent de celui que l'on retrouve lorsque l'on résout un challenge data dans la "vraie vie".

    Retour sur l'expérience de Badr Ouali, Head of Data Science @ Vertica, et sa participation au kaggle TalkingData.


    Référence:

    • Si les challenges en Data Science vous intéressent, je vous invite à jeter un œil à ChallengeData.ens.fr. Il s'agit d'une plateforme de l'ENS et du Collège De France proposant des challenges variés. 
    20 min
  • #9 Avalanche de requêtes et effets de bords mystérieux

    Les fêtes de fin d’années sont synonymes de pics d’activités pour le e-commerce. Alors comment réagir quand on se rend compte qu’un incident se profile à l’horizon du moment le plus business critique de l’année ?

    Une conversation avec Théo Carrive, CTO de Cheerz.

    Concepts mentionnés: 

    • La commande EXPLAIN de PostgreSQL pour obtenir le plan d’exécution d’une requête. 
    Utile pour comprendre pourquoi une requête est anormalement longue.


    • Apple Universal Links pour iOS.
    Un Universal Link est une URL HTTP(S) qui représente votre contenu à la fois sur le web et dans votre app, cela permet aux utilisateurs d’ouvrir votre contenu dans votre app plutôt que dans la vue navigateur.
    Voir cette keynote d'Apple à la WWDC 2020 pour plus de détails sur les Universal Links en pratique.


    • New Relic est une SaaS permettant de monitorer vos applis Web, mobiles et votre infrastructure en temps réel.
    23 min
  • #8 When the facts change, I change my model

    "When the Facts Change, I Change My Mind. What Do You Do, Sir?" disait JM Keynes. 

    L’économiste soulignait alors l’importance de réajuster ses a priori et sa représentation du monde lorsqu'on on est confronté à de nouveaux éléments.

    C’est la même chose lorsqu’on entraîne un modèle de machine learning et qu’on le déploie.

    Les données que l’on va rencontrer en production suivent-elles une distribution similaire aux données sur lesquelles on a entraîné le modèle? Si non, comment peut-on ajuster le tir?

    Témoignage et retour d’expérience avec Hamza Sayah, Data Scientist @ Ponicode.


    Références et concepts mentionnés


    - Kullback-Leibler divergence, en un mot: une quantité qui mesure la dissimilarité de deux distributions de probabilités.


    Pour une excellente vidéo donnant l’intuition derrière le lien entre l'entropie, l’entropie croisée et la KL divergence,  se référer à la vidéo d'Aurélien Géron "A Short Introduction to Entropy, Cross-Entropy and KL-Divergence" 

    https://www.youtube.com/watch?v=ErfnhcEV1O8


    - Pour l'intuition derrière le concept d'embedding, voir le blog post de Jay Alammar, "The Illustrated Word2Vec", https://jalammar.github.io/illustrated-word2vec/



    - AST - Abstract Syntax Tree, https://en.wikipedia.org/wiki/Abstract_syntax_tree



    - La recommandation de Hamza: le livre "La Formule Du Savoir", de Lê Nguyên Hoang


    24 min
  • #7 Don't knock the checklist

    Action items resulting from a postmortem analysis are often to implement more advanced monitoring or deploy new tools to track usage at a fine-grain level. 

    Today, Timothy Raymond shows us that a good old checklist can sometimes be the most efficient way to prevent regressions in production.

    Some concepts mentioned in the episode:

    • Roadblocking in advertising: when a single ad or product is displayed all over the place to capture maximum attention.
  • Beware of URL capping. As a rule of thumb, keep your URL below 2000 characters.

  • About our guest, Timothy Raymond (Twitter @tim_raymond) is a seasoned Go programmer and currently a Principal Software Engineer at Microsoft. You can check his blog at timraymond.com 

    21 min
  • #6 Monitor early,  fix bugs early 🇫🇷

    Loïc Carbonne, VP Engineering @ Theodo, nous partage son expérience sur la réduction du lead time de résolution des incidents.

    Au travers des leçons apprises lors du développement d’applications web, Loïc nous propose des outils et méthodes pour s’organiser afin:

    1) d’identifier plus rapidement les bugs

    2) et de réduire leur temps de résolution.

    En résumé, des best practices sur l’alerting, le monitoring et la gestion de bugs dans un fonctionnement scrum.

    Ressources

    • ITIL — Information Technology Infrastructure Library
  • Netflix tech blog — Lessons from Building Observability Tools
  • 27 min
  • #5 Autoscaling lag et gestion des incidents chez Doctolib 🇫🇷

    Benoit Lafontaine, Engineering Director chez Doctolib, nous partage le post mortem d’un incident récent dû à une évolution soudaine de la charge sur la partie patient de leur service.

    Malgré une architecture d’auto-scaling déjà en place, le service a été dégradé quelques minutes. Benoît revient également sur la façon dont les incidents sont gérés chez Doctolib.

    Ressources

    Extrait audio d'un JT de M6, 19-45, disponible sur le kit presse du site doctolib.fr

    Superfail, une émission de France Culture

    Newsletter tech de Doctolib

    34 min

About Post Mortem

From the publisher's feed

In Post Mortem, engineers reflect on real-life incidents of IT systems they experienced.