Théodore Billotte
← Tous les projets

décembre 2025 · Projet Distributed Database Systems, Tsinghua UniversityTerminé

Configuration-Driven Distributed Data Center

Simulation d'un data center géo-distribué pour une plateforme média.

Infrastructure, sharding dynamique & chargement de données (avec Louis Rollet)

Configuration-Driven Distributed Data Center

Un back-end géo-distribué et conteneurisé pour une plateforme de médias d’actualité, réalisé pour le cours Distributed Database Systems à l’université Tsinghua. Il simule un véritable data center : un cluster MongoDB shardé, HDFS pour le stockage des images et vidéos, un cache Redis et un tableau de bord React, le tout orchestré avec Docker.

L’idée centrale

La contribution principale est une architecture pilotée par la configuration. Le sharding, les zones géographiques (Pékin / Hong Kong), les règles de fragmentation et de réplication, et la migration des données sont tous exprimés en configuration. Le cluster peut passer de 2 à 3 shards, se rééquilibrer et migrer environ 1 000 000 d’enregistrements entre régions sans changer une ligne de code applicatif.

Tableau de bord d’administration Le tableau de bord React pour surveiller shards, régions et distribution des données.

Vue d’un article Lecture d’un article servi depuis le store distribué, avec les médias depuis HDFS.

L’assemblage

  • MongoDB (shardé) : store principal, partitionné et répliqué selon les règles.
  • HDFS : stockage de masse pour les images et vidéos des articles.
  • Redis : couche de cache devant les lectures fréquentes.
  • API Flask + tableau de bord React : front applicatif et opérationnel.
  • Docker : toute la topologie est reproductible depuis des conteneurs.

Mon rôle

Infrastructure, sharding dynamique et chargement des données (avec Louis Rollet). Je me suis concentré sur l’expansion et la migration pilotées par configuration, avec ajout d’un shard et rééquilibrage des données à chaud, ainsi que sur le pipeline de chargement de masse.

Le rapport complet et le manuel de déploiement sont intégrés plus bas, ainsi que la présentation du projet.

Techno

Python · Flask · React · MongoDB · HDFS (Hadoop) · Redis · Docker

Équipe

Connexions

Projets

Formation