La gestion de la croissance chez facebook

croissance facebook
Aditya Agarwal
est ‘Director of Engineering’ chez Facebook et il nous fait de nouveau bénéficier de son expérience au sein de cette énorme système de plusieurs dizaines de milliers de serveurs (60 000 à ce jour). Dans cette nouvelle présentation il nous explique notamment comment il a fait évoluer les outils internes afin de les optimiser au fur et à mesure de la croissance du site.

Comme d’habitude avec ce type de présentation, les conseils sont à appliquer sur des échelles différentes. Mais indépendament des points techniques sur les logiciels et les détails d’architectures Aditya nous donne plusieurs conseils pour faire évoluer une infrastructure de manière réaliste et pragmatique.

Au programme ‘progression par itération‘ ou ‘éviter de faire trop design‘ … conseils de bon sens mais qu’il est toujours bon d’avoir en tête pour planifier correctement les évolutions de votre plate forme.

four meta secrets of scaling at Facebook

1. Scaling takes Iteration
2. Don’t Over Design.
3. Choose the right tool for the job, but realize that your choice comes with overhead.
4. Get the culture right
Move fast.
Huge Impact
Be bold.

Enfin, si vous avez le temps de regarder cette présentation entièrement vous découvrirez quelques informations techniques et optimisations réalisés au sein de l’entreprise. De nouveau, elles ne sont pas toutes applicables dans les architectures plus standard. Il en effet peu fréquent d’écrire un compilateur PHP vers C++ pour optimiser  les consommations des pages PHP. Même si avec ce graph il est assez facile de comprendre pourquoi :

La rapidité des langages de programmation

Sources :

Sur le même thème :

2 Responses to “La gestion de la croissance chez facebook”

  1. JB says:

    Moi-même ruby-iste je ne suis pas très objectif, mais attention à ce genre de diagrammes, et à ne pas trop en tirer des conclusions hatives. Déjà cela fait abstraction des options de compilation, implémentations différentes, des versions, etc. Ensuite, il y a facilement des rapports de 1 à 5 en terme de performance pur selon le framework utilisé. Enfin, tous n’ont pas les problèmes de facebook ou google, un langage plus rapide sur les temps de dév ou de maintenance pourra être adapté selon les projets (pour faire du J2EE toute la journée au boulot, j’affirme que 99% des projets de ma boite seraient bien plus adaptés à du php, python ou ruby..).
    Merci pour les infos sinon que je garde comme d’habitude précieusement, et bonne continuation.

  2. Marc says:

    Oui effectivement Jean-Baptiste, je suis d’accord avec toi.

    Les performances pures sont une chose, c’est bon de les connaitre mais il faut surtout les adapter aux moyens disponibles au moment de réaliser les développements. D’ailleurs si tu regardes les différents liens de mon article tu verras que des propos similaires sont également mentionnés.

    C’est d’ailleurs complètement en ligne avec le conseil N°3 : Choisir le bon outil au bon moment !!!

Leave a Reply