• Septembre 2024 - Janvier 2025
En collaboration avecAffiliationRôle
Nicolas Elfering LinkedinÉtudiant M2 SIRISChef de projet
Éloi ColinÉtudiant M2 SIRISÉquipe Infrastructure
Kévin HentzLinkedinÉtudiant M2 SIRISÉquipe Dev Web
Jessica KlotzLinkedinÉtudiante M2 SIRISÉquipe Dev Web
Florian HalmLinkedinÉtudiant M2 SIRISÉquipe Embarqué
Maxime FriessLinkedinÉtudiant M2 SIRISÉquipe Embarqué
Compétencesettechnologies
OpenStackConsul & NomadPrometheus & Grafana
InfluxDBPostgreSQLMinio (S3)
NginXWireguard (VPN)Docker
Résumé :
Dans le cadre de mon Master 2, j’ai participé à la mise en place de l’infrastructure hébergeant un service factis de monitoring de véhicules.
Détail :

L’application développée est un outil de monitoring de véhicules, nous avons utilisé une caméra, un capteur GPS et une prise OBD2 (On Board Diagnostic) pour récolter des informations sur les voitures de la flotte.

Ces informations étaient envoyées pérdiodiquement à une infrastructure, sur laquelle je travaillais.

Cette infrastructure hébergeait également une API, permettant de récolter les informations stockées dans les différentes bases de données, et un site web, sur lequel pouvait se connecter le personnel souhaitant avoir des informations sur les différents véhicules.

Le rapport est disponible ici, les diapositives ici.

  1. Infrastructure

L’infrastructure était découpée en deux sites, le site C315 (principal) et le site OpenStack (backup) dont j’étais responsable.

À l’aide de l’outil OpenStack, j’ai instancié 3 types de machines virtuelles :

  • Développement : où travaillaient les équipes de développement de l’application (frontend/backend)
  • Utilitaire : bastion SSH, serveur VPN
  • Production : environnement où se connectent les client.e.s de l’application (backup)

Schéma de l’infrastrcuture réseau du site OpenStack

La configuration de nouvelles VM a été automatisé à l’aide d’Ansible, comme on peut le voir dans la démo ci-dessous.

Les moments importants sont (cliquez sur les horaires pour vous y rendre sur la vidéo) :

  • à 00:40 : ajout de la machine demo (192.168.0.71) à l’inventaire
  • à 01:05 : début de la configuration automatique via Ansible
  • à 04:00 : la machine est ajoutée au cluster Consul / Nomad
  • à 04:50 : la machine est monitorée par Prometheus / Grafana
  1. DevOps

Une fois une machine virtuelle configurée, elle peut héberger l’application car elle fait partie du cluster Consul / Nomad qui servent à répartir la tâche sur les différentes VM en distribuant les conteneurs en fonction de la charge que les conteneurs subissent.

On le voit dans la démo (cliquez sur les horaires pour vous y rendre sur la vidéo) :

  • à 00:20 : lancement d’un grand nombre de requêtes qui va surcharger l’infrastructure
  • à 00:50 : on remarque le pic de requêtes sur l’interface de droite et la création automatique d’un nouveau conteneur sur l’interface de gauche
  • à 02:02 : on remarque que les conteneurs se partagent les requêtes pour équilibrer la charge et que de noueaux conteneurs sont créés
  • à 03:21 : une fois le pic de trafic fini, les conteneurs sont arrêtés car ils ne sont plus nécessaires