Recent Posts
Archives

PostHeaderIcon [DevoxxFR 2022] PĂšre Castor đŸ», raconte-nous une histoire (d’OPS)

Lors de Devoxx France 2022, David Aparicio, Data Ops chez OVHcloud, a partagĂ© une confĂ©rence de 44 minutes sur l’apprentissage Ă  partir des Ă©checs en opĂ©rations informatiques. David a analysĂ© les post-mortems d’incidents majeurs survenus chez des gĂ©ants comme GitHub, Amazon, Google, OVHcloud, Apple, Fastly, Microsoft, GitLab et Facebook. En explorant les causes racines, les remĂ©diations et les bonnes pratiques, il a montrĂ© comment tirer des leçons des erreurs pour renforcer la rĂ©silience des systĂšmes. Suivez OVHcloud sur ovhcloud.com et twitter.com/OVHcloud.

Comprendre les post-mortems

David a commencĂ© par expliquer ce qu’est un post-mortem : un document rĂ©digĂ© aprĂšs un incident pour comprendre ce qui s’est passĂ©, identifier les causes et prĂ©venir les rĂ©currences. Il inclut l’historique de l’incident, les flux d’information, l’organisation (qui a agi, avec quelle Ă©quipe), les canaux de communication avec les clients, l’utilisation des ressources et les processus suivis. David a soulignĂ© l’importance de la transparence, citant des initiatives comme les meetups de dĂ©veloppeurs oĂč les Ă©checs sont partagĂ©s pour dĂ©mystifier les incidents.

Il a illustrĂ© son propos avec une histoire fictive d’Elliot, un junior qui, par erreur, supprime une base de donnĂ©es de production en suivant une documentation mal structurĂ©e. Cet incident, inspirĂ© de cas rĂ©els chez AWS (2017), GitLab et DigitalOcean, montre les dangers d’un accĂšs non contrĂŽlĂ© Ă  la production. David a recommandĂ© des garde-fous comme des approbations manuelles pour les commandes critiques (par exemple, DROP TABLE), des rĂŽles RBAC stricts, et des tests rĂ©guliers des backups pour garantir leur fiabilitĂ©.

Les incidents personnels : le legacy Ă  l’épreuve

David a partagĂ© une expĂ©rience personnelle chez OVHcloud, oĂč il gĂšre le data lake pour rĂ©pliquer les donnĂ©es internes. Lors d’une astreinte, un week-end d’étĂ©, il a Ă©tĂ© alertĂ© d’un problĂšme sur une infrastructure legacy sans documentation claire. Un service saturait sa file de connexions (1024 clients maximum), provoquant des refus. Sans rĂ©ponse des dĂ©veloppeurs, David a optĂ© pour une solution KISS (Keep It Simple, Stupid) : une sonde vĂ©rifiant la connectivitĂ© toutes les cinq minutes, redĂ©marrant le service si nĂ©cessaire. Ce script, en place depuis un an et demi, a redĂ©marrĂ© le service 70 fois, Ă©vitant de nouveaux incidents.

Un autre incident concernait une application Java legacy, tombant aprĂšs 20 Ă  40 minutes malgrĂ© des redĂ©marrages. Les logs montraient des dĂ©connexions ZooKeeper et des crashs JVM. PlutĂŽt que d’ajuster la mĂ©moire (heap tuning), David a dĂ©couvert un script de nettoyage propriĂ©taire dans l’historique. AppliquĂ© deux fois par semaine, ce script a rĂ©solu le problĂšme durablement. Ces cas illustrent l’importance de comprendre le legacy, d’éviter les solutions complexes et de documenter les correctifs.

Les pannes majeures : CDN et réseaux

David a analysĂ© l’incident Fastly de juin 2021, oĂč une erreur 503 a touchĂ© des sites comme The Guardian, The New York Times, Amazon, Twitter et la Maison Blanche. La cause : une configuration client dĂ©ployĂ©e sans test le 8 juin, activĂ©e par une demande du 12 mai, rĂ©vĂ©lant un point de dĂ©faillance unique (SPoF) dans le CDN. RĂ©solu en 45 minutes, cet incident souligne l’importance de tester les changements en prĂ©-production (par exemple, via blue-green deployments ou shadow traffic) et de personnaliser les messages d’erreur pour amĂ©liorer l’expĂ©rience utilisateur.

Un autre cas marquant est la panne Facebook de septembre 2021, causĂ©e par une mise Ă  jour du protocole BGP (Border Gateway Protocol). Les serveurs DNS, incapables d’accĂ©der aux datacenters, se sont mis en mode protection, coupant l’accĂšs Ă  Facebook, Instagram, WhatsApp et mĂȘme aux outils internes (Messenger, LDAP). Les employĂ©s ne pouvaient ni badger ni consulter la documentation, obligeant une intervention physique avec des disqueuses pour accĂ©der aux racks. David a recommandĂ© des TTL (Time To Live) plus longs pour les DNS, des canaux de communication sĂ©parĂ©s et des routes de secours via d’autres cloud providers.

Bonnes pratiques et culture de l’échec

David a conclu en insistant sur la nĂ©cessitĂ© de ne pas blĂąmer les individus, comme dans le cas d’Elliot, mais de renforcer les processus. Il a proposĂ© des tests rĂ©guliers de backups, des exercices de chaos engineering (par exemple, simuler une erreur 500 un vendredi aprĂšs-midi), et l’adoption de pratiques DevSecOps pour intĂ©grer la sĂ©curitĂ© dĂšs les tests unitaires. Il a Ă©galement suggĂ©rĂ© de consulter les post-mortems publics (comme ceux de GitLab ou ElasticSearch) pour s’inspirer et d’utiliser des outils comme Terraform pour automatiser les dĂ©ploiements sĂ©curisĂ©s. Enfin, il a encouragĂ© Ă  rejoindre OVHcloud pour expĂ©rimenter et apprendre des incidents dans un environnement transparent.

Leave a Reply