Les coulisses techniques de Google L'architecture du moteur de recherche

Pour assurer la montée en charge de son célèbre moteur de recherche, Google a développé quatre briques de base : le système de fichiers Google File System (GFS), MapReduce, BigTable (la base de données qui vient se placer au dessus de GFS), et enfin Spanner. GFS est un système qui doit permettre d'assurer la fiabilité des données stockées par Google sur ses dizaines de milliers de serveurs.

Le principe est classique dans ce domaine : GFS morcèle les données en blocs et les stocke de manière redondante sur de multiples machines. Typiquement, chez Google, un bloc de données représente 64 Mo et chaque bloc est systématiquement répliqué trois fois dans l'infrastructure. Si le stockage des données privilégie un modèle décentralisé, le stockage des méta-données, ces informations qui permettent de savoir où est placé chaque information dans le système global, est centralisé. Baptisée Colossus, cette brique est essentielle au bon fonctionnement de l'architecture de stockage Google. 

les technologies sur lesquelles s'adossent l'architecture de données de google.
Les technologies sur lesquelles s'adossent l'architecture de données de Google. © Google

MapReduce, une composant clé du Big Data née chez Google

L'index du moteur de recherche Google est stockée sur GFS et pour assurer les différentes phases de l'indexation des pages web par le moteur, les développeurs de Google ont créé le modèle de programmation MapReduce. Pour indexer des millions de nouvelles pages web crées chaque jour, le parallélisme des opérations est privilégié.

MapReduce utilisé pour l'indexation des pages web

C'est pour gagner du temps dans le développement des différentes phases que les ingénieurs de Google ont créé MapReduce : une composante clé de ce que l'on appelle aujourd'hui le "Big Data". Ce modèle est aujourd'hui très largement déployé chez Google. Le groupe a créé plus de 50 000 traitements MapReduce différents afin de réaliser les traitements nécessaires au bon fonctionnement de multiples services. Ce sont plusieurs millions de traitements qui sont exécutés chaque jour sur les serveurs MapReduce de Google, que ce soit pour l'indexation des pages web que pour le calcul des cartes Google Maps, etc.