Le projet en quelques mots

DataPulse est une application web de collecte et de visualisation de métriques IoT en temps réel. Elle reçoit des données de capteurs (température, humidité, qualité de l'air) via MQTT, les stocke dans une base TimeSeries et les affiche sur un tableau de bord interactif.

Le projet a été réalisé dans le cadre de l'UE Architectures distribuées du semestre 8. L'objectif pédagogique : concevoir une architecture microservices complète et la mettre en production sur une vraie infrastructure.

Architecture déployée

L'application est composée de quatre services indépendants, tous déployés dans un namespace Kubernetes dédié sur ESIEA Cloud :

  • mqtt-broker — Mosquitto, point d'entrée des messages capteurs
  • ingest-service — Node.js, souscrit au broker et écrit dans la base
  • api-service — FastAPI (Python), expose les données pour le frontend
  • dashboard — React + Chart.js, interface utilisateur

Les modules activés sur la plateforme : Compute (Kubernetes), Réseau (Traefik + domaine personnalisé) et Observabilité (Prometheus/Grafana).

Ce que la plateforme a changé

Avant d'avoir accès à ESIEA Cloud, l'équipe avait testé le déploiement sur un VPS partagé. La gestion manuelle du reverse proxy, des certificats TLS et des redémarrages de services consommait un temps considérable.

« Sur ESIEA Cloud, on a configuré le module Réseau en dix minutes. Le certificat TLS était automatique, le sous-domaine attribué immédiatement. On a pu se concentrer sur notre code plutôt que sur l'infra. » — Lucas M.

La supervision intégrée a également été un point fort. Les alertes Prometheus ont détecté une fuite mémoire dans le service d'ingestion dès la première nuit de test en charge — un bug qui serait probablement passé inaperçu sur un déploiement artisanal.

Difficultés rencontrées

Le principal défi a été la configuration des quotas de ressources. L'application IoT génère des pics de trafic courts mais intenses, et les limites CPU par défaut du namespace provoquaient des throttlings inattendus. Après échange avec l'équipe DSI, les quotas ont été ajustés et un HorizontalPodAutoscaler a été mis en place pour le service d'ingestion.

La documentation sur les variables d'environnement injectées automatiquement par la plateforme était également incomplète à l'époque — un retour qui a depuis été intégré dans la section Documentation officielle.

Résultats et bilan

DataPulse tourne depuis six semaines en production sur la plateforme, avec une disponibilité de 99,4 %. Le projet a obtenu la note maximale à l'UE et a été présenté lors de la journée portes ouvertes de l'école en février 2025.

L'équipe envisage de continuer le développement au semestre suivant en ajoutant un module d'anomalie detection basé sur un modèle ML — l'occasion d'activer le module IA de la plateforme.