Quand l'indexation ne fonctionne pas comme prévu : comment la recherche Google a résolu des problèmes d'indexation, et leçons tirées de cette expérience

Lundi 12 août 2019

La plupart du temps, notre moteur de recherche fonctionne comme prévu. Nos équipes travaillent sans relâche pour prévenir les problèmes techniques susceptibles d'affecter les internautes à la recherche d'une réponse à leurs questions ou les webmasters dont nous indexons les sites et diffusons le contenu. Les systèmes sous-jacents que nous utilisons pour alimenter le moteur de recherche fonctionnent également comme prévu la plupart du temps. Lorsqu'un problème mineur survient, il n'est généralement ressenti que par les équipes qui veillent à ce que nos produits soient opérationnels. Toutefois, ces systèmes sont complexes et peuvent parfois être soumis à des pannes de plus grande envergure. Dans ce cas, les internautes et les créateurs de sites Web peuvent être affectés.

Au cours des derniers mois, nos systèmes d'indexation ont connu un problème de ce type qui s'est répercuté sur d'autres parties de notre infrastructure. Nous avons fait de notre mieux pour remédier à cette situation le plus rapidement possible, mais nous vous présentons nos excuses pour cette perturbation, car notre objectif est de fournir en permanence des produits de haute qualité à nos utilisateurs et à l'écosystème Web.

Depuis, nous avons examiné l'incident de plus près, ce qui nous a permis de tirer certaines leçons que nous souhaitons partager avec vous aujourd'hui. Cet article de blog a pour objectif de vous fournir plus d'informations sur ce qui s'est passé, d'expliquer l'approche que nous adopterons pour communiquer de manière plus efficace si ce type de problème survient à nouveau et de rappeler aux propriétaires de sites Web les canaux qui sont à leur disposition pour entrer en contact avec nous.

Que s'est-il donc passé il y a quelques mois ?

En avril, plusieurs problèmes ont affecté l'index. L'index de la recherche Google est la base de données qui contient les centaines de milliards de pages Web que nous avons explorées sur le Web et dont nous pensons qu'elles peuvent répondre aux questions des internautes. Lorsqu'un utilisateur saisit une requête dans le moteur de recherche Google, nos algorithmes de classement passent au crible ces pages dans notre index afin d'identifier les résultats les plus pertinents et utiles en une fraction de seconde. Voici exactement ce qui s'est passé.

1. Problème d'indexation

Pour commencer, nous avons temporairement perdu une partie de l'index de recherche.

Peut-être n'aviez-vous même pas idée qu'il était possible de "perdre une partie de l'index". Eh bien, si, c'est possible.

Pour fournir le plus rapidement possible des résultats de recherche aux internautes, les requêtes ne sont envoyées qu'au centre de données le plus proche capable de générer des pages de résultats de recherche Google. En cas de modifications apportées à la composition de l'index (ajout ou suppression de pages, fusion de documents ou autres types de modification de données), celles-ci doivent être répercutées dans tous les centres de données. En conséquence, les pages proposées aux internautes à travers le monde sont toujours tirées de la version la plus récente de l'index.

Google possède et exploite des centres de données (comme celui illustré ci-dessus) dans le monde entier pour que ses produits fonctionnent 24 heures sur 24, 7 jours sur 7 (source)
Google possède et exploite des centres de données (comme celui illustré ci-dessus) dans le monde entier pour que ses produits fonctionnent 24 heures sur 24, 7 jours sur 7 (source)

L'harmonisation de l'index entre tous ces centres de données n'est pas une mince affaire. Pour les services de grande envergure ayant un impact direct sur les utilisateurs, nous déployons généralement les mises à jour dans un centre de données spécifique et procédons par étape jusqu'à ce que tous les centres de données soient mis à jour. Pour les éléments d'infrastructure sensibles, nous étalons parfois le déploiement sur plusieurs jours en alternant entre les instances de différentes zones géographiques. source.

Le 5 avril (un vendredi en plus !), au moment d'appliquer des modifications prévues à l'index de la recherche Google, plusieurs parties du système de déploiement ont cessé de fonctionner. Plus spécifiquement, alors que nous mettions à jour l'index dans certains de nos centres de données, quelques documents ont été supprimés accidentellement de l'index. C'est pourquoi "nous avons perdu une partie de l'index".

Heureusement, les ingénieurs en astreinte ont détecté le problème assez rapidement, au moment même où les utilisateurs ont commencé à en parler sur les réseaux sociaux (d'ailleurs, nous remercions grandement tous ceux qui nous ont informés du problème pendant ce week-end !). Il ne nous a ainsi fallu que quelques heures après la découverte de l'incident pour rétablir l'état précédent de l'index dans tous les centres de données. Heureusement, nous conservons en permanence des sauvegardes de l'index au cas où ce type d'événement surviendrait.

Le 7 avril, nous avons informé les utilisateurs que nous avions connaissance du problème et que la situation commençait à revenir à la normale. Pendant que nous restaurions progressivement l'index, nous avons continué à rendre compte de l'évolution de la situation sur Twitter (le 8 avril et le 9 avril) jusqu'à avoir la garantie que tous les centres de données utilisaient une version complète de l'index, à savoir le 11 avril.

2. Incohérences au niveau de la Search Console

La Search Console regroupe l'ensemble d'outils et de rapports que les webmasters peuvent utiliser pour déterminer les performances de leur site dans la recherche Google. Elle présente, par exemple, le nombre quotidien d'impressions et de clics reçus par un site dans les résultats de recherche naturels et indique les pages que l'index de recherche inclut ou exclut.

En raison du problème d'indexation mentionné ci-dessus, la Search Console a commencé à afficher des incohérences, ce qui est logique vu qu'une partie des données qu'elle contient provient de l'index de recherche lui-même :

  • Le rapport Couverture de l'index dépend de la cohérence de l'index de recherche dans tous les centres de données.
  • Lorsque nous stockons une page dans l'index de recherche, nous l'annotons avec des signaux clés pour indiquer par exemple la présence d'un balisage spécifique sur la page pour la rendre éligible aux résultats enrichis. Dès lors, tout problème lié à l'index de recherche peut avoir un impact sur les rapports sur les résultats enrichis dans la Search Console.

De nombreux rapports individuels de la Search Console sont produits à partir d'informations contenues dans une base de données dédiée. La constitution de cette base de données repose partiellement sur les informations provenant de l'index de recherche. Comme nous avons dû rétablir une ancienne version de l'index de recherche, nous avons également dû suspendre la mise à jour de la base de données liée à la Search Console. Les données de certains rapports ont donc cessé d'évoluer, tandis que d'autres ont perdu en précision, comme dans l'outil d'inspection d'URL.

Rapport de couverture de l'index qui présente un exemple des problèmes d'actualisation de données de la Search Console en avril 2019, avec un délai entre deux mises à jour plus long que d'habitude
Rapport de couverture de l'index qui présente un exemple des problèmes d'actualisation de données de la Search Console en avril 2019, avec un délai entre deux mises à jour plus long que d'habitude

Comme plusieurs jours ont été nécessaires pour effectuer un rollback et rétablir un index de recherche stable (voir l'explication ci-dessus), il nous a aussi fallu plusieurs jours avant de pouvoir nous concentrer sur la réparation de la base de données de la Search Console, après la résolution des problèmes d'indexation. Le 15 avril, nous avons communiqué dans un tweet que la Search Console rencontrait des problèmes que nous étions en train de résoudre. Le 28 avril, comme l'illustre le graphique ci-dessus, les rapports ont recommencé à collecter des données actualisées. Le 30 avril, nous avons informé les utilisateurs sur Twitter que le problème était résolu (tweet).

3. Autres problèmes non liés au bug d'indexation principal

La recherche Google repose sur plusieurs systèmes qui interagissent les uns avec les autres. Certains de ces systèmes sont étroitement liés, mais il arrive aussi que des composants différents rencontrent simultanément des problèmes qui n'ont aucun rapport entre eux.

Dans le cas présent par exemple, nous avons eu brièvement des problèmes pour collecter le nouveau contenu Google Actualités à peu près au moment du bug d'indexation principal expliqué ci-dessus. En outre, lors de l'affichage des pages, certaines URL se sont mises à rediriger Googlebot vers d'autres pages non liées. Ces problèmes n'avaient absolument aucun rapport avec le bug d'indexation et ont été résolus rapidement (tweet 1 et tweet 2).

Stratégie de communication que nous avons adoptée et améliorations prévues

En plus de communiquer sur les réseaux sociaux (comme indiqué ci-dessus) au cours de ces quelques semaines, nous avons également fourni aux webmasters des informations supplémentaires via deux autres canaux : la Search Console et le centre d'aide de la Search Console.

Dans le centre d'aide de la Search Console

Une fois le problème entièrement identifié, nous avons mis à jour la page dédiée aux anomalies de données dans la Search Console. Nous utilisons cette page pour transmettre des informations sur les problèmes de données affectant le service de la Search Console lorsqu'un grand nombre de propriétaires de sites Web sont concernés.

Dans la Search Console

Comme tous nos utilisateurs ne suivent pas les réseaux sociaux ou ne lisent pas la page externe du centre d'aide, nous avons également ajouté des annotations dans les rapports de la Search Console pour les informer du risque d'inexactitude des données (voir l'image ci-dessous). Nous avons ajouté cette information après la résolution des bugs. Si vous sélectionnez "Cliquez ici pour en savoir plus", les utilisateurs sont redirigés vers la page "Anomalies des données" dans le Centre d'aide.

Rapport de couverture de l'index qui illustre un exemple d'annotation que nous pouvons inclure pour avertir les utilisateurs en cas de problème spécifique
Rapport de couverture de l'index qui illustre un exemple d'annotation que nous pouvons inclure pour avertir les utilisateurs en cas de problème spécifique

Stratégie de communication que nous comptons adopter à l'avenir

En cas d'incident majeur affectant des services Google, nous procédons systématiquement à une analyse rétrospective, que nous appelons également "analyse post-mortem". À cette occasion, nous créons un document pour faire le point sur l'incident et prendre les mesures nécessaires pour qu'il ne se reproduise pas. L'ensemble du processus est décrit plus en détail sur le site Web de Google dédié à l'ingénierie en fiabilité des sites.

À la suite des problèmes d'indexation survenus en avril, nous avons inclus dans l'analyse post-mortem une section expliquant comment mieux communiquer avec les webmasters en cas de défaillance du système. Voici les principaux points que nous avons ajoutés :

  1. Explorer différents moyens de partager plus rapidement l'information au sein de la Search Console elle-même en cas de bug majeur et faire en sorte que les webmasters utilisent cette source comme principal point de référence en cas de panne présumée
  2. Mettre plus rapidement à jour la page relative aux anomalies de données dans la Search Console, le cas échéant (si le problème est sensé avoir un impact visible à long terme sur les données de la Search Console)
  3. Continuer à informer les webmasters sur Twitter dès que possible pour qu'ils sachent que nous avons connaissance du problème et que nous le traitons

Si des problèmes similaires se reproduisent à l'avenir, ces engagements devraient permettre d'améliorer la transparence pour tous les webmasters.

Mise en pratique de nos résolutions : étude de cas du problème de non-indexation des nouvelles URL

Le 22 mai, nous avons pu tester notre nouvelle stratégie de communication suite à un autre problème. Lors du traitement de certaines URL, la mémoire de notre système de gestion en double a saturé après une mise à niveau planifiée de l'infrastructure, ce qui a entraîné l'arrêt du traitement de toutes les URL entrantes.

Voici la chronologie que nous avons suivie pour informer les utilisateurs en respectant les trois résolutions indiquées dans la section précédente :

  1. Le problème a été identifié aux alentours de 5h30, heure de Californie, le 22 mai.
    À 6h40 (même fuseau horaire et même jour), le premier tweet informant les utilisateurs du problème était publié.
    À 22 h (même fuseau horaire et même jour), nous annoncions sur Twitter que le problème était résolu.
  2. Nous avions envisagé de mettre à jour la page relative aux anomalies de données dans le centre d'aide, mais nous avons décidé de ne pas le faire, car nous avons estimé que le problème n'aurait pas d'impact à long terme sur les données de la Search Console pour la majorité des webmasters.
  3. La confusion engendrée par ce problème pour beaucoup d'utilisateurs a confirmé nos conclusions précédentes. Nous devons trouver le moyen d'indiquer plus clairement dans la Search Console elle-même qu'un incident affectant l'un de nos systèmes est susceptible d'avoir un impact sur les webmasters. La mise en œuvre d'une telle solution prendra sûrement un peu de temps. Nous tiendrons les utilisateurs informés de notre avancement dès que nous en saurons plus.

La semaine dernière, nous avons rencontré un autre problème d'indexation. Comme pour le 22 mai, nous avons averti les utilisateurs sur Twitter que nous étions en train de résoudre ce problèmes, et nous les avons également informés lorsqu'il a été résolu.

Processus habituel de débogage et de communication des problèmes à Google

Nous espérons que cet article vous aura éclairé sur la complexité de nos systèmes et sur les pannes potentielles, et qu'il vous aidera à comprendre notre stratégie de communication dans ce genre de situation. Cet article se concentre sur une défaillance de nos systèmes à une large échelle, toutefois il est important de garder à l'esprit que la plupart des problèmes d'indexation de sites Web dans la recherche Google sont le résultat de la configuration individuelle de ces sites. Pour résoudre ces problèmes, les webmasters peuvent utiliser la Search Console et notre Centre d'aide. Après avoir consulté les références ci-dessus, si vous pensez que le problème ne vient pas de votre site ou si vous ne savez pas comment le résoudre, prenez contact avec nous et notre communauté. Nous prenons les commentaires de nos utilisateurs très au sérieux. Pour nous signaler un problème, voici la marche à suivre :

  • Consultez le Forum de la communauté des webmasters. Parfois, un problème qui affecte votre site y a déjà été signalé.
  • Venez directement à notre rencontre. Nous adorons faire la connaissance de nos utilisateurs lors de nos événements. Ne soyez pas timide !
  • Signalez le problème directement dans nos produits. L'outil de commentaires de la Search Console est très précieux pour nos équipes.
  • Twitter et YouTube !