[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.