Opinions Libres - Le Blog d'Olivier Ezratty

Inside Google Labs

Post de Olivier Ezratty du 15 novembre 2006 - Tags : Google,Internet,Microsoft,Technologie | 9 Comments

J’ai assisté récemment à une présentation d’Alice Bonhomme-Biais, une ingénieur française en développement logiciel chez Google. Elle était destinée à des élèves de l’option technologies de l’information de l’Ecole Centrale Paris où j’enseigne sur les Stratégies de l’Innovation.

 

 

En une heure, Alice a dressé un portrait fort intéressant de la manière dont le développement et les opérations fonctionnent chez Google.

En voici un apperçu, complété par un peu de lecture personnelle, avec tout d’abord quelques remarques générales:

  • Tout d’abord, Google a des labos de développement bien répartis dans le monde. Rien qu’en Europe, ils en ont un à Dublin où se trouve également un data center européen, un à Londres, un à Zurich et un autre à Trondheim, en Suède. Alice est elle-même basée à New York dans un autre labo. Donc, Google a beau être un classique succès de la Silicon Valley, basé à Mountain View, ils ont rapidement éclaté géographiquement leurs développements. C’est permis par une organisation du développement logiciel en petites équipes : de 2 à 10 personnes, et 5 en moyenne. Il y a d’un côté des services qui requièrent effectivement des équipes de cette taille, comme le Calendrier sur lequel travaille Alice Bonhomme-Biais. Et de l’autre, le gros du développement qui est orienté sur le search est lui-même découpé en autant de modules nécessitant des équipes de cette taille. L’éclatement géographique du développement répond à une logique de recrutement assez simple consistant à chercher les talents là où ils sont au lieu de leur proposer tous de déménager à Mountain View. Au passage, cela permet de contourner les limitations du nombre de visas pour l’entrée de travailleurs aux USA. C’est donc bien vu! Et certains éditeurs de logiciels pourraient s’en inspirer! Donc, Google continue de recruter à tour de bras et les ingénieurs français les intéressent, même s’il n’y a pas encore de labo de R&D en France même.
  • Le développement de nouveaux services est (serait?) piloté par les équipes produits, indépendamment de toute démarche marketing ou de modèle économique. Le point clé est de créer des services qui ont une grande valeur d’usage pour les utilisateurs et de générer du trafic. Une fois seulement usage et trafic générés se pose la question de la monétisation. Sachant qu’en plus, Google fait très peu de marketing de ses offres. Elles se diffusent en mode viral et grâce au trafic généré par le moteur lui-même. Ce découplage produit / marketing est sommes toutes encore plus fort que ce que j’ai constaté chez Microsoft Corp. Il est contre-intuitif pour ceux – comme moi – qui pensent que le marketing doit être impliqué le plus en amont possible de la création d’un produit pour assurer son alignement avec un besoin marché et avec un business qui tienne la route. Google peut éviter cette démarche pour un certain nombre de facteurs dont peu d’entreprises bénéficient: une marge énorme générée par le coeur de métier qui permet de financer (souvent à perte) de nombreux tests de nouveaux produits, le trafic généré par le site Google qui permet d’aspirer de nouveaux clients pour ces services, et un modèle de revenu indirect basé sur la publicité et la vente de mots clés qui permet de fournir des services gratuits au plus grand nombre.
  • Certains projets comme Gmail sont bien nés du fameux “20% de temps libre” pour des projets de son choix. Mais la part relative des nouveautés de Google qui en proviennent et celle qui est issue d’acquisitions n’est pas claire! La dernière étant assez conséquente en nombre de services mais pas forcément en effectifs de développement puisqu’il semble qu’une grosse part de la R&D de Google soit encore focalisée sur le coeur du métier: la recherche (voir “Innovation ou marketing?” un de mes posts du printemps dernier).

Nous avons dans cette conférence surtout fait le tour du coeur de métier de Google, le search. Qui est découpé en tranches:

  • Le crawlerqui scanne les sites Web pour y détecter tous les mots clés utilisés. Il s’appuie sur des milliers de serveur qui scannent de façon récursive tous les liens de toutes les pages de tous les sites Web détectés. Toutes les URL d’Internet ne peuvent être récupérées. Google s’aide de différents artifices, notamment des Sitemaps qui permettent aux sites d’informer Google de leur structure et de leur mise à jour.
  • L’indexqui pour chaque mot liste les pages et les positions dans les pages où on les trouve. Il fonctionne en mode multilingue et stocke également les informations de lieu et de temps sur les pages indexées. Le lieu s’identifie probablement via l’adresse IP des sites. Il y plusieurs copies de l’index réparties géographiquement et elles tiennent toutes en RAM sur les serveurs. En 2006, Google indexerait environ trois fois plus de pages que ses principaux concurrents (donc: Yahoo et Microsoft). Ils indexent aussi 2 milliards d’image, 35 millions de documents non HTML et un milliard de messages UseNet. L’ensemble fait des Teraoctets, bien évidemment. L’indexation d’une nouvelle page qui apparait sur Internet prend entre 15 minutes et quelques heures selon l’importance et le trafic du site.
  • Le ranking des mots, PageRank, qui évalue la pertinence des pages liées à la combinaison de mots clés d’une recherche en fonction de différents critères, notamment le nombre des liens qui aboutissent à cette page, et la position des mots dans les pages. Pourquoi les sites de commerce arrivent-ils presque toujours au début des résultats lorsque l’on recherche un produit? Ce ne serait pas lié à de la vente de placement, mais à une bonne optimisation de ces sites qui connaissent bien le fonctionnement de PageRank. La force de PageRank, c’est d’exploiter la mine d’or générée par l’index et par l’usage. Tout repose sur des analyses statistiques.
  • L’affichage, tout ce qui relève de la présentation des résultats dans un navigateur Web, et l’intégration des autres composants de nature publicitaire dans les pages. Pour tester les évolutions de son interface, Google dispose d’un “usability lab” à l’échelle planétaire. Ils “servent” les nouveautés à tester à un faible pourcentage de leurs utilisateurs (genre 1%), mais qui suffit à en avoir des millions, et ils comparent les résultats: temps passé dans la recherche, taux de clic, etc. Souvent, une modification mineure ne serait-ce que d’un seul pixel d’interlignage peut avoir des répercussions significatives. La force du nombre leur apporte des données statistiques extraordinaires. Quant au “spell check” de Google qui propose une orthographe différente aux termes recherché, il s’appuie lui-aussi sur des statistiques et non pas sur un dictionnaire travaillant sur la distance des mots, approche trop limitée pour la gestion des noms propres. Ils s’appuient donc sur des algorithmes de probabilité de concomittance (probabilistic co-occurrence)! Une simple recherche sur Google génère côté serveurs la lecture de plusieurs centaines de Mo de données et le site en reçoit des milliers par seconde!

L’architecture serveur s’appuie sur quelques caractéristiques originales et maison qui font des labos de Google une sorte de véritable laboratoire de R&D de système d’exploitation et de middleware réseau et de gestion de données distribués:

  • Les racks de serveur sont bâtis sur une architecture physique optimisant leur remplacement ainsi que celui des disques durs: au lieu de vis pour les fixations, ils utilisent du Velcro ! En effet, sur 5000 machines environ par data center, il y a régulièrement une dizaine de pannes par jour. Donc, cela fait gagner du temps. Ces serveurs sont des lames standard de type PC tournant sous Linux. Ce sont des machines “peu fiables” aux diresde Google, mais peu importe, c’est l’architecture logicielle qui apporte la fiabilité à l’ensemble. Ce ne sont pas les machines les plus puissantes du moment, mais celles qui apportent le meilleur rapport puissance/prix du moment. Les racks ont 40 à 80 serveurs chacun, connectés entre eux en 100 mbits/s, le rack étant lui-même en liaison Gigabit avec les autres. Chaque serveur a une durée de vie de 2 à 3 ans. L’alimentation électrique et le refroidissement de ces racks sont des défis de taille à eux seuls qui entrainent moutle calculs techniques et économiques pour optimiser l’ensemble, la facture d’électricité de Google étant l’une de ses plus grosses charges d’exploitation!
  • Il y a plusieurs clustersd’environ 5000 serveurs répartis dans le monde entier, ce qui apporte une forte tolérance aux pannes de réseau sur Internet. La répartition de charge s’effectue au niveau DNS pour identifier le cluster le plus proche de l’utilisateur au niveau temps de latence réseau.
  • Google s’est créé son propre système de gestion de fichiers distribué, qui tourne sous Linux: le Google File System. Il distribue les recherches de fichiers sur plusieurs serveurs de façon extrêmement efficace. C’est un peu grâce à lui que le résultat d’une recherche aboutit dans notre navigateur en quelques millisecondes de traitement.
  • GFS est complété par BigTable, une sorte de base de données hiérarchique (donc non relationnelle) scalable pour la gestion de gros volumes de données qui doivent être accédés très rapidement. Cela sert notamment à Google Analytics (l’outil d’analyse du trafic sur son propre site Web où l’on a placé de la publicité Google AdSense, 200 teraoctets de données rien que pour le stockage des clicks sur les sites abonnés au service), Google Earth et à Personnalize Search, une fonction méconnue qui personnalise les résultats de la recherche pour les utilisateurs qui sont identifiés sur le moteur de recherche par un logon, le logon commun à Gmail et autres services personnels de Google.
  • Ils ont défini leur propre architecture de parallélisation des traitements avec le Global Work Queue et MapReduce qui permet de découper un traitement en morceaux. MapReduce est utilisé au travers d’un langage de programmation maison Sawzall. Au passage, l’architecture de Google bénéficie donc à plein des nouveaux processeurs à hyperthreading et multi-coeurs qui permettent de paralléliser les traitements sur une même machine.

Nombre de ces aspects sont documentés dans des publications scientifiques des Google Labs disponibles sur leur site : http://labs.google.com/papers/. Ce domaine est passionnant et on pourrait y passer des heures pour décortiquer son fonctionnement. Certaines sociétés de service en ont d’ailleurs fait leur métier pour aider les sites Web à bien se faire référencer sur Internet! Il sera aussi intéressant de voir documenter la gestion des vidéos maintenant qu’il ne s’agit plus que de les indexer avec Google Video, mais également de les stocker et de les diffuser, via YouTube!

Comparaison inévitable avec Microsoft. L’éditeur a également une grande tradition de publication de travaux scientifiques, notamment par le truchement du site de Microsoft Research. Mais la partie du site qui relève du search évoque la création d’un laboratoire commun sur le search avec MSN en Chine, mais rien de plus. Et cela ne concerne pas ce qui est en exploitation comme Google. La partie est difficile pour Microsoft car rattraper le savoir faire de Google, quand on se plonge dedans, est loin d’être évident. Microsoft parie surtout sur des évolutions d’interface comme pour la recherche de photos présentée de façon sympathique avec la possibilité de choisir la taille des “thumbnails”. Mais c’est loin d’être suffisant pour faire la différence. C’est un sujet à creuser car le manque d’informations de la part de Microsoft ne veut pas dire qu’ils sont inactifs en R&D sur le search, loin s’en faut!

J’évoquais au début cette marge énorme de Google lui permettant de financer des tests de services sans se soucier trop de logique économique au départ. Google “crache” en effet aujourd’hui une profitabilité nette de 27%, soit celle la moyenne de celle de Microsoft ces dernières années. Soient presque $3B pour 2006, extrapolés des $2046m sur les 9 derniers mois. Leur bilan en octobre 2006 comprenait environ $10B de cash disponible. Mais tout ceci, c’est le profit et le cash générés après les dépenses en R&D, en infrastructure et en acquisitions évoquées dans cet article! Ils ont donc un sacré mou pour prendre des risques. C’est le grand privilège des numéro un dont la taille critique leur permet d’absorber la valeur de leur secteur!

Alice Bonhomme faisait cette conférence aux élèves centraliens dans le cadre de ses 20% de temps consacré à des projets libres de son choix. Car Google recrute à tour de bras pour supporter sa croissance qui n’en finit pas. Mais elle a oublié de citer le bénéfice du “free lunch” à ces recrues potentielles. Car chez Google, c’est boisson et repas gratuits, en plus du plaisir de pouvoir venir travailler accoutré comme bon vous semble! Tout du moins dans les labs… :).

Ce post faisait lui aussi partie de mon “20% de temps libre”… pour de la veille technlologique!

RRR

 
S
S
S
S
S
S
S
img
img
img


Lien du blog Opinions Libres : https://www.oezratty.net/wordpress

Lien de l'article : https://www.oezratty.net/wordpress/2006/inside-google-labs/

(cc) Olivier Ezratty - http://www.oezratty.net