Dans les coulisses d’une requête Google
Cet article est une traduction de ce billet, il s'agit bien entendu d'une vulgarisation.
Beaucoup de personnes ont utilisé Google mais peu ont une idée de la complexité et de la puissance des ordinateurs nécessaire pour répondre à des milliards de requêtes comprenant des millions de résultats, et ce en moins d'une seconde. Ce n'est pas par accident, ni par erreur de Google ni même pour des raisons de sécurité, Google estime qu'il ne veut pas que la recherche semble compliquée aux internautes.
Cette notion est sans doute la mieux illustrée dans la vue d'ensemble de la technologie de Google, qui emploie seulement 5 images et 4 phrases pour expliquer le "Cycle de vie d'une recherche Google".
En dépit de l'interface très simple de Google, la recherche est complexe. Par exemple, quand un utilisateur de San Francisco tape une requête comme google.com/search?q=blogoscoped, le navigateur de l'utilisateur jette d'abord un coup d'oeil sur le DNS attribuant à www.google.com une adresse IP spécifique.
A ce stade, le répartiteur de charge DNS de Google détermine à quel ensemble d'ordinateurs des 36 data centers et plus va procéder à la recherche.
Si le datacenter le plus proche n'est pas disponible pour effectuer la requête, il l'a transmet alors au data center disponible le plus proche (Pour cet exemple, les data centers connus les plus proches pourraient être Mountain View, Californie, Pleasanton, Californie, San Jose, Californie, Los Angeles, Californie, Palo Alto, Californie, Seattle, Washington, Portland, Orégon et/ou The Dalles, Orégon).
Une fois le data center déterminé, la recherche est transmise via "HTTP" à un datacenter spécifique et un ensemble de 1,800 serveurs ou plus.
A l'arrivée sur l'ensemble du data center, chaque requête est reçue par un second répartiteur de charge de Google. Il s'agit de 10 à 15 machines pour lesquelles le répartiteur de charge détermine celles disponibles pour effectuer la requête. Ensuite, le répartiteur désigne et attribue la requête à un "mixeur" Google.
Ce logiciel combinera par la suite tous les éléments des résultats de la recherche universelle avec un juste mélange de publicités. Le "mixeur" interroge un certain nombre de serveurs web de Google, sélectionnant celui qui est disponible pour exécuter la requête.
La requête est ensuite exécutée, simultanément sur 300 à 400 terminaux représentant notamment les publicités et la vérification orthographique.
A ce point, les meilleurs résultats sont rassemblés et les résultats de la requête renvoyés au mixeur de Google. Le mixeur prend les données, mélange les éléments de la recherche universelle avec les publicités tout en faisant ressortir les résultats dans un ordre basé sur la pertinence. Les résultats ordonnés retournent alors sur les serveurs web de Google pour un codage HTML.
Une fois le HTML codé et les pages formatées, les réponses du moteur de recherche sont marqués "faits" par le répartiteur de charge et retournés à l'utilisateur comme pages de résultats des moteurs de recherche. L'ensemble de ce processus prend à peu près 3 centisecondes
La recherche sur Google sur le terme blogoscoped renvoit 517,000 réponses en 0,03 secondes.
Aujourd'hui, on estime que les recherches de Google voyagent à travers 700 à 1000 machines, un chiffre qui a presque doublé depuis 2006 peut-être en partie du fait de l'introduction de la recherche universelle.