Dans un article de Bits du New York Times paru en 2012, Quentin Hardy attribue une partie du succès de Facebook à l'ingénierie de la performance. Friendster, fondé en 2002, subissait de fréquentes pannes et des chargements de page lents sous une forte utilisation et, conformément aux pratiques de l'époque, regroupait de nombreuses informations dans une seule base de données.
Facebook a évité cela, selon les termes de l'article, par accident. Il a démarré à Harvard, puis s'est déployé dans d'autres universités de l'Ivy League, dans d'autres établissements, puis auprès du grand public. Mark Zuckerberg a créé une base de données distincte pour chaque université et a écrit un logiciel pour relier les personnes entre elles si elles souhaitaient communiquer. Ce modèle subsiste sous la forme de nombreuses bases de données distinctes, aujourd'hui appelées shards, auxquelles les nouveaux utilisateurs sont affectés selon ce que le système global peut supporter.
L'article attribue également une simplification à un cadre dirigeant qui s'est exprimé sous couvert d'anonymat : Facebook ne regardait que les amis communs que deux personnes avaient, un problème bien plus simple que la tentative de Friendster de calculer les degrés de séparation. Accel a fait venir Jeff Rothschild, fondateur de Veritas Software, comme consultant après avoir investi en 2005, et Zuckerberg l'a convaincu de superviser les serveurs.
Donner à chaque université sa propre base de données et écrire un logiciel pour relier les personnes entre elles, afin que chaque défaillance et chaque charge restent locales.
Une base de données unique pour tous les utilisateurs ralentit et tombe en panne en même temps à mesure que le trafic augmente.
Un déploiement école par école a permis à l'équipe d'apprendre par la pratique et de susciter l'attente.
Des bases de données distinctes par université ont rendu les défaillances locales et le système plus stable.
Compter les amis communs plutôt que les degrés de séparation maintenait les requêtes peu coûteuses.
Un déploiement progressif peut imposer une architecture qui passe à l'échelle : partitionner selon une unité naturelle avant que la charge ne vous y contraigne.
Suites
L'article indique que les 900 millions d'utilisateurs de Facebook se répartissent aujourd'hui dans des shards distincts. Friendster a refusé en 2003 une offre de Google de 30 millions de dollars en actions de pré-introduction en bourse, a atteint un pic d'environ 115 millions de membres en 2008, puis a décliné et a été vendu fin 2009.
VÉRIFIEZ LES SOURCES
Les sources
- Engineering Tricks That Helped Facebook Win The New York Times (Bits) · archive.nytimes.com ·