VDL2 développe le Grand Club, le réseau social de RDS. Il est pour moi intéressant de regarder de près la pratique des équipes techniques des autres réseaux sociaux. Il est tout de même bon de signaler que la situation est différente. Alors que le Grand Club est développé par VDL2 ; Facebook, Youtube, Dopplr, MySpace, Flickr, Twitter et autres sont développés « in-house. » Ceci ajoute des contraintes supplémentaires dans le développement.
Facebook a récemment donné la possibilité à ses utilisateurs de choisir des alias (username). Ils se sont préparés en avance pour ce qui allait sûrement être une option populaire du réseau social.
Une partie de Memcached a été attribuée spécifiquement pour la recherche des mots libres.
The Memcached infrastructure that runs behind every page on the site was partitioned and expanded to cope with users checking the availability of names.
1 terabyte de mémoire cache pour la nouvelle option username
One terabyte of in-memory cache was dedicated exclusively for the username launch.
Les pages d’enregistrement ont été réduites à leur strict minimum pour éviter les appels javascripts
the registration page for usernames was stripped down as much as possible to incur very little additional load on our web servers.
Ils ont lancé la nouvelle option pendant une heure de moindre charge
We intentionally chose to launch the feature at a time of low site activity (Friday at 9PM Pacific)
Deux semaines en avance, ils ont déployé cette option afin de la tester au niveau du backend avec un trafic normal.
“Dark Launching”: During the two weeks prior to launch we began what we call a “dark launch” of all the functionality on the backend.
Dans le cas d’un enjeu majeur de traffic, ils avaient prévu une désactivation de toutes les fonctions du site afin de ne favoriser que username.
“Nuclear Options”: In the event that Facebook became overwhelmed with traffic and suffered performance problems as a result we also prepared for what we called ‘Nuclear Options’ such as cutting off nearly all the functionality on the Profile page, turning off Facebook Chat, and completely disabling the Home page. Any of these options were an absolute last resort to keep the site functional as they would have resulted in a severely degraded user experience.
Lifestream du Grand Club
Toutes ces données sont fort intéressantes et nous l’avons appris à nos dépens récemment. Nous avons lancé le Lifestream (Mes Faits Saillants), une vue de toutes les interactions pour une personne donnée. Le trafic de la bigbox (boîte Grand Club sur les pages RDS) ajouté à la richesse des interactions du Lifestream a écroulé le site du Grand Club à plusieurs. En même temps que nous cherchions la source possible des erreurs, nous avons adopté différentes stratégies. L’une d’elle ressemble à celle de Facebook, nous avons redirigé 1/6 du trafic total du Grand Club vers une machine avec le lifestream et les 5/6 restants sans le lifestream.
Le plus fascinant a été la réalisation que certaines options ne peuvent être testées qu’une fois déployées en production. La stratégie de Dark Launching est donc absolument nécessaire. Elle permet de vérifier les interactions au niveau du backend.
Nous avons également atteint un palier supplémentaire en termes de performances ce qui nécessitera un nouveau travail d’optimisation et de développement. Un réseau social est objet de nature biologique. Son infrastructure doit évoluer en dehors du développement des options.
One opinion
Super intéressant ce billet ! J’ai appris le terme Dark Launching et confirmé que nos expériences de développement avec le LifeStream avaient déjà été vécues par le Team de FaceBook mais aussi de Twitter il y a un an.