Le 27 février 2011, des utilisateurs de Gmail ont commencé à se connecter et ont découvert leurs boîtes de réception vides. La cause était une mise à jour logicielle de stockage de routine qui contenait un bug inattendu. Google a arrêté le déploiement dès que le problème est apparu et est revenu à l'ancienne version, mais le mal était fait : des courriels avaient été supprimés de comptes représentant, selon une première estimation, 0,08 % de la base d'utilisateurs de Gmail — environ 150 000 comptes, chiffre ensuite revu à la baisse à 0,02 %.
Le point le plus dérangeant du retour d'expérience était de comprendre pourquoi les copies n'avaient pas aidé. Gmail conserve plusieurs copies de chaque boîte aux lettres dans plusieurs centres de données. Mais les répliques ne sont pas indépendantes lorsqu'elles exécutent le même logiciel : « dans de rares cas, des bugs logiciels peuvent affecter plusieurs copies des données », a écrit Ben Treynor, vice-président de l'ingénierie chez Google. Les seules copies intactes se trouvaient sur bande — hors ligne, et donc à l'abri du bug. La bande est lente, ce qui explique que la restauration ait pris environ 30 heures au lieu de millisecondes ; les 0,012 % restants des utilisateurs touchés avaient été restaurés à partir des bandes le 1er mars.
Google a souligné que « les courriels n'ont jamais été perdus », et selon les critères des incidents de perte de données, l'histoire s'est bien terminée. Mais l'épisode a ébranlé l'intuition selon laquelle la réplication dans le cloud signifie sécurité, et les plaintes concernant des courriels manquants et des problèmes de connexion se sont poursuivies jusqu'au quatrième jour. Il reste la référence classique en matière de défaillance de répliques corrélées : la redondance protège contre la mort des machines, pas contre l'exécution du même bug partout.
Selon l'estimation initiale, 0,08 % des utilisateurs (environ 150 000 comptes, chiffre ensuite revu à 0,02 %) ont vu leurs boîtes de réception vides ; la restauration à partir des bandes a pris environ 30 heures.
La mise à jour de stockage a introduit un bug susceptible de supprimer des données, et le déploiement a atteint les systèmes en production avant que le défaut ne soit détecté.
Les multiples copies de Gmail exécutaient toutes le même logiciel de stockage, de sorte qu'un seul bug pouvait toucher plusieurs répliques dans différents centres de données.
La seule copie que le bug ne pouvait pas atteindre était la bande hors ligne — une voie de récupération que Google a conservée malgré la réplication, et c'est ce qui a sauvé les boîtes aux lettres.
La restauration à partir des bandes était intrinsèquement lente, transformant un seul mauvais déploiement en plusieurs jours de dommages visibles pour les utilisateurs.
La leçon
Les répliques protègent contre les pannes matérielles, pas contre les logiciels. Un bug peut corrompre plusieurs copies à la fois ; il faut donc conserver une voie de récupération en dehors du rayon d'action de son logiciel — pour Gmail, la bande hors ligne.
Google a achevé la restauration à partir des bandes et a publié sur le blog officiel de Gmail un compte rendu d'une franchise inhabituelle de la défaillance. L'incident est devenu un argument permanent en ingénierie de la fiabilité pour conserver au moins un support de récupération en dehors du domaine de défaillance du logiciel de production — c'est à cause de lui que la bande est entrée dans le vocabulaire de l'ère du cloud. Le modèle de réplication de Gmail lui-même est resté inchangé ; ce qui a changé, c'est la prudence entourant les fautes logicielles corrélées dans les systèmes à copies multiples.
VÉRIFIEZ LES SOURCES
Les sources
- Gmail back soon for everyone Official Gmail Blog · gmail.googleblog.com ·
- Thousands of Gmail accounts accidentally wiped BBC News · bbc.co.uk ·
- Gmail missing e-mails, login problems, continue into fourth day Los Angeles Times Technology Blog · latimesblogs.latimes.com ·