Cet article est le premier d'une série d'articles autour du monde de l'internet des objets et de notre nouvelle plateforme IoT Hub, sortie en version "General Availability" au mois de juin 2020. Nous avons voulu, avec notre plateforme IoT Hub, vous mettre à disposition un service robuste et inter-connectable avec d'autres services pour que vous puissiez démarrer rapidement et simplement le développement de votre solution IoT.

L’IoT Hub se décline en trois offres : « shared » permettant de démarrer gratuitement et reposant sur une infrastructure partagée, « dedicated » proposant une infrastructure dédiée et « High Availability » reposant sur une infrastructure dédiée et répliquée.

Rappelons rapidement ce qui se cache derrière ces trois lettres, IoT ou Internet of Things (l'Internet des Objets en français) : Initialement appelé M2M ou Machine to Machine dans les années 2000. Ce concept était utilisé pour parler des machines connectées entres-elles. Depuis ce terme a évolué pour laisser place à une nouvelle ère, celle de l'IoT ou des objets connectés à internet, créant en même temps de nombreux nouveaux cas d'usages.

Solutions IoT

Une solution IoT c'est avant tout une chaîne à 3 maillons.

iot-hub-light

D'abord l'objet connecté qui capte des données du monde physique et qui peut agir sur celui-ci. L'objet connecté dépend de l'environnement dans lequel il évolue. Bien penser la conception de ses objets connectés est donc primordial. Cet objet est-il mobile, quelle sera sa durée de vie, a-t-il besoin de beaucoup de puissance de calcul ou au contraire s'agit-il d'une simple sonde remontant de l'information, quelle quantité d'information et à quelle fréquence vais-je devoir envoyer ces données, ai-je besoin de plusieurs types d'objets différents pour que ma solution soit mise en place ?
Toutes ces questions permettent de pouvoir concevoir la partie hardware de la solution.

Ensuite la plateforme qui va centraliser les messages remontés par les objets et les remettre aux bons destinataires. C'est dans ce deuxième maillon que s'inscrit notre plateforme IoT Hub. Celle-ci est générique, c'est à dire qu'elle va pouvoir recevoir des messages de n'importe quel type d'objet connecté (en utilisant les protocoles de communication MQTT, LoRa ou Sigfox par exemple), fournir des données d'utilisation et enfin transmettre ces messages (on parle souvent de payload) au bon destinataire : l'application métier.

Enfin, la partie applicative, dépendante du secteur d'activité et des cas d'usage. C'est à travers cette couche applicative que l'utilisateur final interagit. Il est donc important que celle-ci soit adaptée pour ses utilisateurs, disponible quand ils en ont besoin, sécurisée, etc...

L'IoT Hub de Scaleway

L'IoT Hub c’est donc le maillon central, la plateforme IoT, qui sert à acheminer les messages publiés par les autres maillons à leur(s) destinataire(s).
Pour développer cette plateforme, nous nous sommes appuyés sur le pattern publish/subscribe qui permet de pouvoir connecter massivement des objets connectés. Nous avons donc intégré un standard du marché, le protocole MQTT.

Pour la petite histoire autour de MQTT, ce protocole de transfert de données est aujourd’hui devenu un standard dans la communication des objets connectés. Ce protocole de communication a été inventé par deux ingénieurs – Andy Standford-Clark (IBM) et Arlen Nipper (Eurotech) pour connecter des oléoducs à des réseaux satellitaires peu fiables. Ils souhaitaient à l’époque concevoir un protocole léger, peu gourmand en bande passante et avec plusieurs niveaux de service (QoS). Ces besoins sont aujourd’hui identiques à ceux des objets connectés, ce qui a valu le succès de ce protocole rendu public en 2011 et devenu un standard en 2013.

Dans les coulisses de l'IoT Hub on retrouve donc un broker MQTT managé... mais pas seulement !
En effet, nous avons choisi d'intégrer aussi d'autres briques essentielles pour simplifier le parcours utilisateur et être compatible avec d'autres protocoles de communication.

Schema-IoTHub

Concernant les messages provenant des objets connectés - côté entrant - nous retrouvons les IoT Networks. Ceux-ci permettent d'ingérer des messages provenant des réseaux IoT Sigfox et LoRa (à travers notre partenaire Actility). D'autres IoT Networks sont aussi en cours d'intégration.

Côté sortant, nous retrouvons les IoT Routes qui permettent de transmettre les messages vers les briques de l'écosystème Scaleway, vers des applications tierces ou même d'autres CSP (Cloud Service Provider, fournisseur de services cloud en français). #multicloud

Exemples de cas d'usages

Voyons trois exemples de solutions IoT illustrant l'utilisation de l'IoT Hub:

  • Si vous envisagez de créer une solution IoT remontant simplement des messages de capteurs connectés (ceux-ci peuvent être mobile ou non). Dans ce cas vous aurez très certainement besoin de visualiser ces données remontées du monde physique en temps réel. Vous pourrez avec l'IoT Hub facilement créer des graphiques de données temporelles ou afficher des positions géospatiales pour suivre une flotte de véhicules en utilisant simplement notre IoT Route PostgreSQL et en interfaçant votre base de données avec un tableau de bord tel que Grafana.

  • Si vous développez une solution IoT dans la surveillance ou dans la qualité industrielle, vous aurez peut être besoin de stocker des payloads un peu plus volumineux tels que des images ou des échantillons sonores. Dans ce cas, il sera sûrement nécessaire de les archiver dans un "bucket" Object Storage. Vous pourrez donc facilement stocker vos snapshots avec la route Object Storage.

  • Finalement ce qui compte dans une solution IoT, c'est la valeur ou le service qui sera créé autour des données remontées par les objets. Pour pouvoir utiliser cette donnée dans un contexte plus global, il sera souvent nécessaire de la traiter. Nous avons donc intégré un connecteur sortant REST pour pouvoir transmettre vos messages IoT directement vers des Fonctions as a Service (Serverless) ou même appeler directement les API d'une application tierce tel qu'un service de messagerie, si par exemple vous souhaitez envoyer un SMS automatiquement lorsqu'un colis s'approche de sa destination ou qu'une alarme se déclenche.

Kickstarts

Nous avons aussi développé des IoT Kickstart qui sont des images prêtes à l'emploi pour que vous puissiez tester et construire vos applications IoT le plus rapidement possible. Les Kickstarts installeront et configureront les outils et logiciels requis pour vous sur une instance virtuelle Scaleway.

kickstart

La sécurité dans l'IoT Hub

À mesure que le nombre d’objets connectés se multiplie, le risque de faille de sécurité s'accroit aussi. Tout en préservant une simplicité d’usage, nous souhaitons vous proposer une couche de sécurité robuste pour vous permettre de générer une paire de clé-certificat sécurisés par objet afin d'établir une connexion sécurisée entre les objets et le hub. La connexion sécurisée se base par défaut sur l’authentification mutuelle du protocole TLS (Transport Layer Security).

Pour conclure, avec l'IoT Hub, nous avons voulu développer un service robuste, simple, prêt pour la production et conçu pour un usage massif à destination de tous les acteurs de l'IoT. N'hésitez pas à tester dès à présent, en quelques minutes et sans aucun frais l'IoT Hub avec notre offre "shared". Bonne découverte !