Les coulisses techniques de BlaBlaCar Les méthodes agiles, clé de la flexibilité de BlaBlaCar

BlaBlaCar peut s’appuyer sur une équipe d’une quarantaine de développeurs et d'une quinzaine d'architectes. Ces derniers se consacrent à la construction de la plateforme tandis que les développeurs s'attachent à enrichir les fonctionnalités et outils internes du service. "Nous avons finalement à peu près autant d’outils internes que ce que nous mettons à disposition à nos membres" résume Francis Nappez. "Gérer 20 millions de personnes demande un backoffice conséquent derrière, et nous construisons aussi nous même ce backoffice"

Une plateforme Big Data basée sur l'Hadoop de Vertica

Data center de BlaBlaCar. © BlaBlaCar

Outre les architectes d’un côté et les développeurs de l'autre, BlaBlaCar s'appuie sur une troisième équipe, orientée "Data". Son rôle est de mettre à disposition des données brutes ou des reports élaborés aux autres équipes que ce soit pour sortir des chiffres sur la communauté, la presse... ou pour améliorer l’efficacité des campagnes marketing. "Nous nous appuyons sur la stack Hadoop de Vertica pour le volet traitement, et sur Tableau Software pour le volet analyse et constitution de rapports. Nous n’avons pas véritablement de Data Scientist en tant que tels", relève le directeur technique. "Nous avons plutôt ce que j’appelle des ingénieurs Data qui mettent à disposition des données en fonction de nos capacités de calcul, et derrière ce sont les gens chargés du marketing, de la communication qui les exploitent." Un cluster Hadoop fonctionne en permanence afin de recueillir l'ensemble des logs émis par les serveurs de production, de manière constante et permanente. Les plus gros "batch" de calcul sont lancés sur Amazon Web Services.

Jusqu'à 10 mises en production par jour

Le processus d'intégration continue est devenu le moteur d'évolution du site. Actuellement, BlaBlaCar réalise jusqu'à 10 mises en production chaque jour, avec à la clé des corrections mineures et parfois de nouvelles fonctionnalités pour telle ou telle zone géographique. "Un 'petit' lundi, c’est 2 mises en productions seulement !", s'amuse Francis Nappez. "Pour atteindre un tel résultat, il y a d’abord l’enjeu technique. Il faut être capable de livrer les mises en production de manière automatique, avoir des processus de testing extrêmement fiables afin d’être serein lors des mises en production. Il faut améliorer en permanence ce processus. Nous utilisons la solution d’intégration Bamboo de la suite Atlassian pour faire les Build, passer les tests unitaires, etc." Plus de 10 000 tests unitaires sont réalisés avant toute mise en production. C’est ainsi que Blablacar s’assure qu’une correction ou qu’une nouvelle fonction ne va pas entrainer d’effets de bord ou de régression. Le Build d'une nouvelle version est réalisé en 15 minutes.

Tous les développeurs de BlaBlaCar gèrent eux-mêmes leur mise en production

"L’autre enjeu, c’est la responsabilisation des équipes. Ce à quoi je tiens particulièrement, c’est que la personne qui est en charge d’un développement et qui détient les clés d’une fonctionnalité de notre service puisse aller jusqu’au bout de la démarche, c'est-à-dire aller jusqu’à la mise en production." Ainsi, dès la première semaine où un développeur rejoint les équipes de BlaBlaCar, il doit réaliser sa première mise en production. "L’idée est de désacraliser cette étape. La mise en production fait partie du métier, c’est une étape normale, il faut donc en faire dès la première semaine. Il est donc tout à faire normal qu’avec une équipe de 50 personnes, on en arrive à une dizaine de mises en production par jour. L’idée, c’est bien d’avoir un maximum d’agilité sur notre plateforme."

BlaBlaCar, adepte de Scrum, utilise de plus en plus Kanban

En termes de méthodologies, BlaBlaCar a généralisé l'utilisation des méthodes agiles et plus particulièrement de Scrum. Néanmoins Kanban, une approche un peu différente, est utilisée en parallèle et suscite de plus en plus d'intérêt dans les équipes. "Nous essayons de laisser la porte ouverte au bon sens quand c’est nécessaire et bénéficier du meilleur des deux mondes, en étant à la fois très structuré, avec la capacité de construire des projets entre plusieurs équipes, mais aussi capable de se mobiliser pour traiter un problème au plus vite, notamment pour faire face à des impondérables en production." Francis Nappez reconnait que, comme tous les services Internet, l'activité est de type "production first". Dès qu’un problème apparaît en production, toutes les équipes doivent être capables de se mobiliser rapidement. Méthodes agiles doivent être synonyme de pragmatisme !