Google gère 2 milliards de lignes de code
Publié par David Feugey le | Mis à jour le
Le dépôt de code de Google comprend 2 milliards de lignes de code et doit supporter 45 000 modifications par jour. Une infrastructure Cloud répartie sur 10 datacenters est à l'oeuvre pour prendre en charge ce dépôt monolithique.
Avec Search, Maps, Gmail, Docs, YouTube et ses dizaines d'autres services, Google est un éditeur de logiciels de premier plan, gérant une base de code d'une taille inédite. Mais de combien exactement ?
Rachel Potvin, manager d'équipes de développement chez Google, a donné une réponse à cette question dans le cadre de la conférence @Scale de la semaine passée. Au premier janvier 2015, le dépôt de code de Google comprenait 1 milliard de fichiers, dont 9 millions dédiés à du code source. Le tout représentait un total de 2 milliards de lignes de code. Un véritable défi en termes d'organisation des équipes.
Mais aussi en matière de plate-forme matérielle de gestion de ce code. Le dépôt de Google pèse en effet 86 To. « Sans être en mesure de le prouver, j'estime que c'est probablement le plus grand référentiel de code en usage au monde », explique Rachel Potvin.
Un repository de plus en plus actif
Le nombre total de modifications atteignait les 35 millions au premier janvier 2015. En moyenne, 45 000 modifications sont apportées chaque jour, au travers du travail des 25 000 ingénieurs de Google. Un chiffre en rapide croissance. « Non seulement la taille du dépôt augmente, commente Rachel Potvin, mais le rythme de changement est également en augmentation et suit une courbe exponentielle. »
Chaque semaine, 15 millions de lignes de code sont modifiées (dans un total d'environ 250 000 fichiers), soit autant que le nombre total de lignes de code du noyau Linux.
86 To de données, 1 milliard de documents, 45 000 modifications par jour, mais également des demandes de lectures de fichiers pouvant atteindre des pointes de 800 000 par seconde.
Un dépôt monolithique centralisé
Pour gérer cet ensemble, Google utilise un repository monolithique centralisé, Piper, qui s'appuie sur l'infrastructure de Google et dont les données sont répliquées au travers de 10 datacenters répartis dans le monde entier.
Les ingénieurs se connectent à Piper via CitC, une offre Cloud qui permet d'accéder à l'ensemble de la base de code, et d'y superposer leurs changements (dans l'attente de leur validation, et donc de leur intégration dans l'une des branches principales du dépôt).
D'autres outils sont mis à la disposition des développeurs : CodeSearch, facilitant l'exploration de la base de code ; Critique, qui permet de gérer la phase de validation du code ; Rosie, se chargeant de gérer la gestion des changements. Le tout appuyé par des outils de test. Tricorder est la solution centrale d'analyse de code proposée par Google.
L'utilisation d'un dépôt de code monolithique est un défi en matière de taille d'infrastructure, mais permet à Google de disposer d'une base unique pour tous ses projets, favorisant ainsi la réutilisation du code, la gestion des dépendances et la collaboration entre les équipes.
L'intervention de Rachel Potvin est accessible sur YouTube.
À lire aussi :
Programmation : le Go 1.5 de Google s'émancipe du langage C
Russie : Google condamné pour avoir imposé Search sur Android
Twitter s'invite dans la recherche desktop de Google