[WEBINAR💻] Modernisez votre IT, migrez vers le cloud Oracle avec la préparation de votre Landing Zone. Inscrivez-vous dès maintenant à notre prochain webianr🎙!

✖︎
docker-iot_0.png

Comment nous utilisons Docker dans nos projets IoT clients

26/11/2021
IoT

Depuis 2016, nous utilisons la technologie Docker dans nos projets d’IoT. Simon, Expert Big Data, partage son retour d’expérience sur la construction de notre première plateforme IoT, sur l’utilité de Docker pour le déploiement et la flexibilité de cette plateforme.

Simon

Simon

Architecte Big Data

Qu’est-ce que la plateforme Digora IoT Hub  ?

La fonction principale de la première plateforme pour les objets connectés développée par Digora était le Device Management (application permettant la gestion d'une flotte d'appareils mobiles, ici, des objets connectés).

Plateforme IoT

Toutefois, nous nous sommes efforcés de lui donner une ligne directrice fondamentale : être toujours plus modulaire et exploitable facilement pour répondre aux besoins métiers de notre client. L’objectif est clair, être en capacité d’y ajouter rapidement et efficacement des nouvelles fonctionnalités, sur demande ou par nécessité. Nous l’avons imaginé en “briques” facilement identifiables :

  • Les objets communiquent leurs données vers une machine virtuelle dédiée, à travers le protocole MQTT. Basé sur des technologies éprouvées, il permet la transmission des données et leur potentielle mise en mémoire tampon. Il est possible d’y ajouter une couche de sécurité - ce qui est notre cas.
  • Un script vient chercher l’information sur le serveur MQTT, appelé broker, et la stocke dans notre base de données.
  • La base de données s’interface sur une API - interface de programmation - sécurisée à laquelle seuls les sites autorisés peuvent accéder.

Schema plateforme IoT

L’idée est de pouvoir déployer l’IoT Hub sur toutes les distributions Linux, rapidement et sans avoir à modifier fondamentalement la structure de notre plateforme. Concrètement, cela signifie la mise en place et la configuration d’un serveur MQTT, de scripts, d’une base de données et d’un serveur HTTP - a minima - sur chaque machine virtuelle contenant la plateforme, et ce sur une distribution Linux potentiellement complètement différente de notre distribution de développement.

Docker : quoi et pour quoi ?

Créer une plateforme modulaire et facilement exploitable dans les SI de nos clients était un vrai challenge. Il fallait trouver une solution pour déployer rapidement la plateforme pour l’IoT, dans le cloud ou On-premise. C’est ainsi que nous avons décidé d’utiliser Docker.

Docker est un logiciel libre qui automatise le déploiement d’applications dans des enveloppes logicielles. Il entre dans les démarches “DevOps”, ensemble de pratiques et d’outils améliorant les processus de développement logiciel et de gestion d’infrastructure de la conception à l’exploitation, en passant par le test et le déploiement.

Docker : les concepts du container et de l’image

Pour une meilleure compréhension, nous devons vous expliquer les 2 concepts essentiels à Docker : le container et l’image.

Un container est un package léger, autonome et exécutable d’un logiciel qui inclut tout ce qui est nécessaire pour l’exécuter : code, runtime, outils systèmes, bibliothèques et paramètres.

On crée un container à partir d’une image. L’image est un template contenant les librairies, les paramètres systèmes, les programmes (code source et exécutable), compilateur et interpréteur dans leurs versions validées nécessaires au fonctionnement de  l’application.

Le container ainsi créé va permettre de s’implanter sur n’importe quelle distribution Linux équipée d’un serveur Docker. Le serveur Docker fait donc l’interface entre l’OS et les containers.

Pour le pôle innovation de Digora, le résultat est simple : avec quelques changements mineurs de fichiers de configuration, le déploiement est fait rapidement et sur n’importe quelle distribution Linux. Pour nos clients, cela signifie un déploiement plus rapide, une plus grande facilité de développements ultérieurs ou particuliers, mais également de la flexibilité sur la localisation (On-premise / cloud). C’est ainsi que l’utilisation de Docker, nous a notamment permis de déployer facilement notre plateforme pour l’IoT chez Sorepol.

Pour nos équipes de services managés, cela permettra également de déployer des environnements de productions pour nos clients en cas d’incident de l’environnement d’origine. Il en sera de même en cas de déploiement en cas de changement de Cloud Provider.