Skip to content

Description de l'implémentation des serveurs

Logo Docker
Figure 76 — Logo Docker

Pour les deux serveurs, j'ai utilisé Docker en créant des configurations, Docker compose pour plusieurs raisons :

  1. Facilité de déploiement : Docker simplifie considérablement le déploiement et la gestion des technologies. En encapsulant chaque service dans un conteneur isolé, l'installation et la configuration deviennent beaucoup plus simples et reproductibles.

  2. Gestion des dépendances : Grâce à Docker, je peux gérer efficacement les dépendances de chaque technologie. Chaque conteneur contient toutes les bibliothèques et dépendances nécessaires pour exécuter le service, évitant ainsi les conflits et les problèmes de compatibilité.

  3. Portabilité : Les conteneurs Docker sont portables et peuvent être exécutés sur n'importe quel système compatible. Cela permet de déployer les services sur différentes plateformes sans modifier le code ou la configuration.

  4. Gestion centralisée : Avec Portainer, une interface de gestion pour Docker, je peux surveiller et gérer tous mes conteneurs depuis une seule interface utilisateur conviviale.

  5. Sécurité : Docker offre une isolation des ressources entre les conteneurs, ce qui améliore la sécurité des services. Chaque service fonctionne dans son propre environnement conteneurisé, réduisant ainsi les risques de failles de sécurité et de compromission du système.

Serveur IoT

Pour développer mon environnement IoT, j'ai utilisé : Mosquitto, Telegraf, InfluxDB, Grafana et Portainer.

Interactions des services

Voici comment ces services interagissent entre eux :

Schéma interaction des services
Figure 77 — Schéma interaction des services

Pour aider d'autres étudiants utilisant les mêmes services, j'ai mis à disposition un dépôt sur le Gitlab de l'école, avec une documentation pour utiliser et modifier l'environnement.

Structure des fichiers

Voici le lien des ressources : https://gitlab.ictge.ch/jules-flr/beekeeper-compass/-/tree/main/src/serveur/docker-compose-iot

  • grafana-provisioning: Contiens les graphiques pour Grafana permettant de visualiser les données collectées.
  • .env: Fichier contenant les variables d'environnement telles que les tokens, utilisateurs et mots de passe.
  • README.md: Documentation détaillée pour l'utilisation de l'environnement IoT, incluant des instructions de configuration et de déploiement.
  • docker-compose.yml: Configuration complète pour le lancement des services dans des conteneurs Docker, incluant les services, volumes, réseaux et autres paramètres.
  • moquitto-entrypoint.sh: Script d'entrée personnalisée pour Mosquitto utilisant les variables d'environnement définies dans .env.
  • mosquitto: Répertoire contenant le Dockerfile pour construire l'image Mosquitto avec le script d'entrée intégré.
  • mosquitto.conf: Fichier de configuration principal de Mosquitto définissant les paramètres du serveur MQTT.
  • telegraf: Répertoire contenant les fichiers de configuration pour Telegraf, incluant les plug-ins de collecte de données.
  • telegraf.conf: Configuration principale de Telegraf spécifiant les paramètres globaux, les agents de sortie, et les tags globaux.

Serveur central

Pour le serveur central, j'ai utilisé une image de MariaDB.

Structure des fichiers

Voici le lien des ressources : https://gitlab.ictge.ch/jules-flr/beekeeper-compass/-/tree/main/src/serveur/docker-compose-db

  • .env: Contient des variables d'environnement telles que le mot de passe root, le nom de la base de données, et les informations de l'utilisateur.
  • docker-compose.yml: Configuration complète pour le lancement des services dans des conteneurs Docker, spécifiant les services, volumes, réseaux, et autres paramètres nécessaires.
  • hive_bucket.sql: Script SQL contenant la base de données complète avec les données des utilisateurs.