Facebook EmaiInACirclel
Développement front-end, back-end

Facebook transforme le PHP en C++ avec HipHop

Jean-Paul Lacombe
Jean-Paul Lacombe
Chief Customer Success Officer Pentalog Americas

 

Avec 770 milliards de pages vues chaque mois par ses utilisateurs (moyenne sur 2011) qui nécessitent plus de 60 000 serveurs (estimation) pour être générées, Facebook cherche sans cesse à améliorer le rendement de son système pour diminuer sa consommation énergétique, ses besoins en matériels et les temps de réponse de son site.

Les sites Facebook sont majoritairement développés en PHP, un langage robuste, simple à prendre en main et qui permet de développer rapidement, mais qui ne s’exécute pas nativement sur du hardware mais passe par une étape d’interprétation ou même de transformation en opcode (Zend). Ce type de langage présente de nombreux avantages mais un gros inconvénient : il est plus lent à l’exécution et consomme plus de ressources matérielles.

Plutôt que de redévelopper ses sites en C++ (coût et risque important, développeurs plus difficiles à trouver), Facebook a fait le choix de conserver sa base de code et de développer un outil qui convertit le PHP en C++ : c’est la naissance de HipHop. Ce projet a démarré en 2008 au cours d’un Hackathon (des développeurs se réunissent et codent comme des acharnés pendant plusieurs jours pour expérimenter de nouvelles idées) à l’initiative de Haiping Zhao, senior développer chez Facebook. 2 ans après, la petite équipe en charge de ce projet sort la première version « production ready » qu’il publie en open source.

Le principe est simple : HipHop analyse le code PHP, génère du code C++ (la principale difficulté est la gestion des types de données) qui est à son tour compilé avec g++.

PHP a perdu un peu de sa flexibilité (fonction eval par exemple) mais beaucoup gagné en performances : Facebook a réduit de 50% la consommation de ressources de son site web grâce à cette technologie.

Cet article m’amène à deux conclusions :

– Bien souvent un projet (même stratégique) démarre mieux avec une nuit de codage qu’avec 10 heures de brainstorming et 100 pages d’expression de besoin.

—————————————————————————————————————————————————–

Voir aussi nos 700 CVs développeurs PHP, C++ et les vidéos de nos équipes de métiers de l’informatique.


Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *