base de données airbnb

Quelle est la base de données d’Airbnb ?

Pour suivre les disponibilités de 7 millions d’hébergements dans 220 pays et 100000 lieux ainsi que les 1,5 milliard de réservations réalisées par 4 millions d’hôtes, la plateforme Airbnb a besoin d’une infrastructure informatique qui tient la charge et est capable de traiter des masses de données considérables.

Airbnb est une entreprise qui utilise massivement les technos et qui a une appétence pour les nouveautés et le partage d’informations. Une partie de leurs données est mise à disposition sur le modèle de l’Open-data (voir InsideAirbnb) et leur blog technique est une mine d’informations. On y apprend notamment que chez Airbnb, la résilience est une exigence, pas une fonctionnalité. Tout doit fonctionner, tout le temps. Pour cela, ils ont empilé différents outils :

  • Base de données : PostgreSQL était la base de données principale d’Airbnb mais comme Airbnb stocke ses données chez Amazon dans le cloud, ils utilisent RDS (Amazon Relational Database Service) pour la gestion des bases de données. RDS permet de déployer et de scaler les bases de données relationnelles PostgreSQL (entre autres) dans un contexte cloud. L’approche RDS permet d’adapter à la volée le nombre de bases de données sans avoir à se soucier de sécurité, de performance ou de nombre de serveurs. Amazon Aurora est désormais le SGBDR d’Airbnb ;
  • Stockage des données, analyse et traitements : Amazon Redshift, Cassandra, Amazon EMR (Hadoop), Amazon S3 (photos notamment) ;
  • Serveur web : Apache et Nginx ;
  • Recherche : Elasticsearch ;
  • Langages de programmation : Ruby, Python et Java.

La bascule de PostgreSQL vers Aurora s’explique par le fait que PostgreSQL n’était plus capable de gérer les très importants volumes de données et les requêtes complexes que Airbnb exigeait. Pendant un temps, les équipes techniques d’Airbnb ont pensé au sharding et ont cherché d’autres alternatives mais c’est la recherche de performance, la facilité de migration vers Aurora (la compatibilité PostgreSQL est un des arguments phare d’Aurora) et de scalabilité qui finalement pesé le plus en faveur d’Aurora.