Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

Google a 2 milliards de lignes de code, modifiées par 25.000 ingénieurs

La complexité du code informatique de Google est incroyable : 2 milliards de lignes de code ! Découvrez d'autres éléments qui démontrent à quel point Google est devenu un système gigantesque...

Rachel Potvin chiffres code Google
Rachel Potvin a révélé des chiffres incroyables sur la gestion du code informatique chez Google

Les informations qui suivent ont été fournies par Rachel Potvin pendant la conférence DevTools @Scale qui a eu lieu le 14/09/2015 dans la Silicon Valley. Voici la vidéo de sa présentation intitulée "The Motivation for a Monolithic Codebase", trouvée via Wired :

Voici quelques chiffres-clés que vous pouvez tweeter...

Nombre de lignes de code de Google :

Le système informatique qui compose Google est constitué de 2 milliards de lignes de codeClick to Tweet

Nombre de fichiers source dans le code de Google :

Le code informatique de Google = 9 millions de fichiers sourcesClick to Tweet

Taille pour stocker le code de Google :

Le code informatique de Google = 86 Tera octetsClick to Tweet

Nombre de commits par jour dans le code de Google :

Le code informatique de Google = 45.000 commits par jour travaillé, 35 millions depuis le débutClick to Tweet
Stats repository Google janvier 2015
Statistiques sur le repository de Google en janvier 2015

Sur ces 45k commits, 15k sont faits par des humains, les autres par des systèmes automatisés. Pour gérer tous ces changements, Google a développé son propre système de gestion de versions appelé Piper.

courbe Google code commits
Cette courbe montre l'évolution du nombre de commits dans le code (cumulés)

Et si on comparait à Microsoft Windows, l'un des plus gros "logiciels" du monde, développé depuis presque 20 ans de plus que Google ? En 2011, Windows XP était constitué de 45M de lignes de code (source).

On peut aussi comparer à Linux : l'OS open source est constitué de 15 millions de lignes de code dans 40.000 fichiers.

Ou alors à Facebook, dont l'application principale serait basée sur 20 millions de lignes de code (source).

Ce qui est particulier, et justement l'objet de la présentation de Rachel Potvin, c'est que tout ce code est réuni dans un seul dépôt (repository), "le plus gros du monde" croit-elle deviner.

Nombre d'ingénieurs travaillant sur le code de Google :

25.000 ingénieurs Google accèdent au même repository depuis partout dans le mondeClick to Tweet
Le workflow du code chez Google
Le workflow du code chez Google

Selon Rachel Potvin, "à peu près tout a déjà été développé" et se trouve disponible dans de multiples bibliothèques de codes. Ce qui est également impressionnant, c'est que chacun des milliers d'ingénieurs qui a accès à ce code peut, par la publication de son changement (commit), déployer sa modification sur l'ensemble des services de Google.

Enfin, presque tout, car le code dédié à la recherche semble mis à part, seuls certains ingénieurs y ayant accès. Rappelez-vous que les pandas sont une espère protégée !

Il existe une autre séparation tout de même : les systèmes Android et Chrome ne sont pas gérés avec le même système de gestion de versions.

A côté de tout ça, on se sent minuscule, non ?

Cet article vous a-t-il plu ?

Note : 5.0 (1 vote)
Cliquez pour voter !

Laisser un commentaire

Remarques :

  • Si vous souhaitez poser une question ou détailler un problème technique, il ne faut pas utiliser le formulaire ci-dessous qui est réservé aux avis. Posez votre question directement dans le forum Gmail de WebRankInfo. L'inscription est gratuite et immédiate.

  • En postant un avis, vous acceptez les CGU du site WebRankInfo. Si votre avis ne respecte pas ces règles, il pourra être refusé. Si vous indiquez votre adresse email, vous serez informé dès que votre avis aura été validé (ou refusé...) ; votre adresse ne sera pas utilisée pour vous envoyer des mailings et ne sera pas revendue ou cédée à des tiers.

10 commentaires

regis

Je suppose qu'il faut comprendre ici par "Google" l'ensemble des applicatifs de la marque (Gmail, Google+, Google Maps...etc) et pas seulement le moteur de recherche...

PS : pourquoi je vois une page blanche avec marqué "Spam Deleted" après avoir envoyé mon commentaire ?

Répondre
Olivier Duffez

En effet il s'agit de tout Google, peut-être même de tout Alphabet Inc. :-)

Répondre
Soo

Je ne vais pas juger parce que je ne connais pas l'auteur de cet article, mais l'impression que j'en ai est qu'il ne connait pas du tout le domaine de l'informatique et de la programmation.
Concrètement, vanter les mérites d'un système par son nombre de lignes de code c'est un peu comme juger une personne par rapport à son poids. Tout ce que ces chiffres cherchent à dire c'est que le système est important, complexe, et que les gens qui travaillent dessus effectue un travail conséquent. Un commit représente rarement une fonctionnalité complète, généralement une petite fonctionnalité représentera entre 5 et 10 commits, lesquels représenteront parfois des changements de 10 lignes. De plus, sur les 2 milliards de lignes, il faut compter probablement 10% au moins de lignes obsolètes et inutilisées, mais laissées dans le code faute de temps.
Et je vais conclure sur la comparaison qui montre bien que l'ensemble ne tient pas debout : une comparaison de nombre de lignes avec Linux... Linux n'est pas un OS, c'est un noyau et il est décliné en énormément de versions (distributions pour être exact) et donc, pour rester dans la thématiques de l'article, d'énormément de nombre de ligne total différents. Entre un Linux embarqué et une version grand publique, la différence de taille peut être d'un facteur 10 au moins.
Si on veut vraiment se gargariser avec des chiffres, dans le cas de Google, il serait plus pertinent de parler de la taille de sa base de données.

Répondre
Olivier Duffez

"je ne vais pas juger" pourtant ça y ressemble fort ;-)

vous avez raison, Google n'est pas Linux, ni Microsoft ni Bing. D'ailleurs, je suis curieux de savoir à quoi/qui vous souhaiteriez que Google soit comparé ? ça ne vous aura pas échappé que depuis longtemps Google est très loin d'être seulement un moteur de recherche. Je ne connais pas d'entreprise qui regroupe les mêmes produits et services de Google et qui puisse donc lui être comparé.

"Tout ce que ces chiffres cherchent à dire c'est que le système est important, complexe, et que les gens qui travaillent dessus effectue un travail conséquent"
en effet, c'est un des objectifs de cet article, qui semble donc atteint !

concernant le choix des métriques (nb de lignes de code, de commits, etc.), vous êtes sûrement un as en informatique, mais je ne fais que reprendre celles que la responsable chez Google a choisis. Vu sa fonction, je lui fais très largement confiance pour estimer qu'il s'agit de métriques intéressantes.

Je ne cherche ni à vanter Google ni à me gargariser, simplement à informer mes lecteurs sur le fonctionnement de Google - tout du moins à partir des infos que j'ai pu trouver.

Je serai vraiment très content si vous pouviez compléter mon analyse avec des métriques plus intelligentes. Pour l'instant je n'ai pas d'infos fiables sur sa base de données mais je suis preneur !

Répondre
david

En informatique il est possible de faire la même chose avec peu de lignes de code, et 100 fois plus quand on code mal, donc avoir beaucoup de lignes de code est tout sauf un facteur de qualité.

Répondre
Olivier Duffez

En effet david, c'est ce qu'on dit parfois. On ne peut pas non plus conclure que le système de Google est de mauvaise qualité, ils n'en seraient pas là ;-)

Répondre
macfly

ha bon ?? donc Google est une entreprise. Mais Windows ? C'est une entreprise peut être ?
Comparons ce qui est comparable et pas "1 chou" avec avec "un champ de patates" si on admet pouvoir comparer un choux et une patate.

Donc comparons :
- Les entreprises Google-Microsoft (si ça a du sens de faire ce type de comparaison)
- "Le moteurs" Google - Bing (déjà ça a plus de sens)
- Les OS Android - Windows Phone

Voilà c'était pour être constructif, pas pour passer pour un débile...

Répondre
Olivier Duffez

Je n'ai pas de chiffres aussi précis pour comparer, si vous les avez je suis preneur. Mais faute de mieux je trouve intéressant d'avoir ceux que j'ai indiqués.

Répondre
macfly

Le titre est étrange, comparer le nombre de lignes de code d'un moteur de recherche et d'un système d'exploitation est il logique ?
Il faut comparer
-Androïd et Windows Phone
-Google et Bing
...

Répondre
Olivier Duffez

@macfly : Google n'est pas seulement un moteur de recherche, mais alors vraiment pas du tout ! Si je l'ai comparé, c'est que je disposais des chiffres et que de toutes façons il s'agit des plus grosses entreprises d'informatique. J'ai également cité Facebook qui n'est pas un moteur de recherche.

Répondre