# Plateforme Google

Google exige de grandes ressources informatiques afin de fournir ses services. Cet article décrit l'infrastructure technologique derrière les sites Web de Google, comme présenté dans les annonces publiques de la compagnie.

## Topologie du réseau

En 2023, Google exploitait 23 centres de données dans le monde , dont 14 aux États-Unis, 6 en Europe, 2 en Asie et 1 en Amérique du Sud (Chili). Bien que les chiffres ne soient pas publiés, certains estiment que Google maintient près de 2,5 millions de serveurs, situés dans plusieurs villes dans le monde, avec d'importants centres comme à Mountain View (Californie), Council Bluffs (Iowa), Herndon (Virginie), Lenoir (Caroline du Nord), Comté de Mayes (Oklahoma), Atlanta (Georgie); Dublin, Irlande ; Saint-Ghislain, Belgique ; Groningen aux Pays-Bas; Zurich, Suisse ; São Paulo au Brésil; Quilicura (Chili); Tokyo, Japon ; Pékin, Chine$^,$.
Quand une tentative de se relier à Google est faite, les serveurs de DNS font pointer www.google.com à des adresses IP multiples, qui agissent en tant que premier niveau pour un équilibrage de la charge en dirigeant les clients vers différents faisceaux de Google. Chaque faisceau de Google a des milliers de serveurs, et lors du raccordement au faisceau un autre équilibrage de la charge est exécuté afin d'envoyer les requêtes au serveur web le moins chargé. Ceci fait de Google l'un des réseaux les plus grands et plus complexes.
Les supports sont faits sur commande et contiennent 40 à 80 serveurs 1U des serveurs (20 à 40 de chaque côté), alors que les nouveaux serveurs sont les systèmes 2U Rackmount. Chaque support a un commutateur. Des serveurs sont reliés par l'intermédiaire d'un lien d'Ethernet de 100 Mbit/s au commutateur local. Des commutateurs sont reliés au commutateur de gigabit de noyau utilisant une ou deux liaisons montantes de gigabit.
Les centres de données sont implantés en priorité là où l'électricité n'est pas trop chère (par exemple à proximité de centrales hydro-électriques), en particulier sur la côte nord-ouest des États-Unis, la facture énergétique étant un des centres de coûts les plus importants: les spécialistes estiment que l'électricité consommée par un serveur sur sa durée de vie coûte plus cher que le matériel lui-même.

## Index principal

Les requêtes étant composées de mots, un index inversé des documents est alors nécessaire. Un tel index laisse obtenir une liste de documents pour un même mot dans une question. L'index est très grand dû au nombre de documents stockés dans les serveurs.

## Serveur matériel et logiciel

En octobre 2008, Bien que les chiffres ne soient pas rendus publics, Google aurait compté deux millions de serveurs. Cependant, ce flou rend difficile les estimations, l'entreprise aurait utilisé 900 000 serveurs en 2009. En 2013, ce chiffre tournerait vers les deux millions.
De par la quantité de matériel utilisé et la nature intensive des applications exécutées par ses serveurs, Google publie des statistiques intéressantes sur les défaillances du matériel : disques durs et mémoire DRAM.
Google est connu pour utiliser de simples PC modifiés spécialement pour exécuter ses algorithmes au lieu de serveurs onéreux spécifiquement conçus pour ce travail, notamment en termes de puissance de calcul et de fiabilité. Le détail des modifications apportées à ces machines est resté secret pendant longtemps, jusqu'au 1er avril 2009. La principale particularité de ses PC est l'ajout à chacun d'eux d'une batterie de 12 volts pour fournir du courant en cas de problème avec la source principale d'électricité, ce qui d'après Google coûte moins cher qu'acheter une alimentation sans interruption couvrant les besoins de l'ensemble d'un centre de données et permet d'avoir une meilleure efficacité énergétique.
Une autre caractéristique intéressante est que les centres de données sont composés depuis 2005 de conteneurs standard contenant 1 160 PC serveurs avec une consommation électrique pouvant atteindre 250 kilowatts. Sun Microsystems et Microsoft Azure sont aussi connus pour utiliser des conteneurs, mais depuis moins longtemps.
L'utilisation de nombreux PC non fiables a nécessité la création d'algorithmes et d'implémentations adaptés. Les algorithmes devaient être parallèles, distribués (ou répartis), tolérants aux pannes. Ceci inclut :
* un système de fichiers distribué : Google File System ;
* une base de données répartie : BigTable ;
* une infrastructure d'exécution de code répartie : MapReduce.