L’intérêt de l’Internet des Objets pour les containers est sporadique. Pourtant, cette technologie de boite virtuelle dans laquelle s’exécute n’importe quelle machine virtuelle pourrait résoudre une partie des challenges de l’IoT.
Avant d’évoquer les containers, rappelons quels sont les challenges de l’IoT, l’Internet des Objets, que nous allons tenter de résoudre ici. L’IoT, ce sont tout d’abord des objets connectés, généralement des équipements qui offrent peu de ressources par rapport à un smartphone ou un PC. La diversité des environnements et la nécessité de développer des applications spécifiques caractérisent également ces équipements. Et leur répartition géographique est souvent aléatoire, ce qui nécessite de disposer d’un réseau étendu et d’une bonne répartition des charges. Enfin, la sécurité, parent pauvre de la plupart des projets IoT, doit devenir une priorité.
Le cumul de ces challenges impose de revoir les modes de développement et de distribution de l’IoT et des plateformes qui supportent les objets connectés. C’est là que l’IoT vient croiser une autre technologie d’avenir, les containers.
Remis au goût du jour par une startup française, Docker, le container est une boite virtuelle qui embarque sur un serveur (principalement Linux, mais Windows Server se fait aussi sa place) une machine virtuelle (VM) composée d’un environnement d’exploitation (OS Linux ou Windows) et d'une application. La particularité du container est qu’il offre une solution complète, la boite qui peut s’exécuter sur n’importe quelle machine, du développeur à l’environnement de production. Notons que la technologie des containers présente également l’avantage d’être open source.
Pourquoi des containers pour l’IoT ?
Nous l’avons vu, l’IoT doit faire face à de nombreux challenges. Nous voyons le container en résoudre principalement 5 :
1Le développement des applications IoT
L’isolement du container et sa boite fournie clé en main offrent au développeur une stack de développement unique, qui peut être composée en fonction de ses besoins et de ceux de l'entreprise, déployable et accessible à tout moment. Alors que la tendance imposée est au ‘security by design’, c’est également la garantie pour l’entreprise que ses développeurs, même éloignés, exploitent les mêmes outils et ressources, pour le développement comme pour le test et la gestion du cycle de vie de l’application.
2Des ressources matérielles a minima
Beaucoup d’objets connectés, tout comme leurs plateformes, disposent de peu de ressources matérielles, qu’il s’agisse de puissance de traitement ou de mémoire, ce qui limite leur capacité d’exécuter des applications et de les mettre à jour… L’installation de l’image d’un container ne nécessite pas beaucoup de puissance de calcul, le container à jour remplaçant le précédant, et le processus de configuration est des plus réduit.
3La répartition géographique
Avec l’IoT, les objets connectés peuvent être dispersés, dans l’entreprise, dans sa proximité parfois mal couverte par le réseau interne, sur de vastes étendues géographiques, voire dans le monde. Le container devient ici le référentiel central, facile à dupliquer, facile à déployer, et sécurisé, pour l’exécution d’une image unique sur l’ensemble des plateformes d'objets connectés.
4Les accès réseaux limités
Les réseaux sont généralement considérés comme le goulet d’étranglement de l’IoT, car les plateformes et les périphériques doivent être connectés à Internet, ce qui impose souvent une bande passante conséquente mais pas toujours disponible. Le container présente lors de son déploiement l’avantage de ne nécessiter d’être téléchargé qu’une fois. Quant aux mises à jour, elles peuvent se réduire à la partie de l’image qui est modifiée, ce qui réduit la consommation de la bande passante.
5La diversité des environnements
La diversité des configurations logicielles sur les équipements de l’IoT et les objets connectés est imposée par ces derniers, ce qui rend difficile la gestion des multiples versions d’une même solution. Avec une application containerisée, la solution s’exécute à l’intérieur de la boite, ce qui réduit la dépendance à l’environnement de l’objet connecté. Et comme la majorité de ces objets tournent sur une version limitée mais relativement standardisée d’une distribution Linux, le container s’y exécute sans difficulté.
Il peut paraître simple d’adopter le container pour l’IoT, et en effet cette boite virtuelle offre la capacité de résoudre une partie des défis qui se présentent au DSI en charge de déployer et supporter l’IoT. Cependant, il ne faut pas oublier que cette technologie repose sur un moteur d’exécution des containers, qui peut se révéler lourd pour les ressources matérielles limitées des objets connectés et de leurs plateformes.
C’est pourquoi la tendance aujourd’hui est plutôt d’abord destinée aux développeurs, ainsi qu’à l’exécution des plateformes d’IoT, nativement plus puissantes, dans des containers. La DSI devra se montrer plus prudente pour leur déclinaison jusque sur les objets connectés, même si celle-ci finira, lorsque la technologie sera optimisée pour cet usage, par s’imposer.
Image d’entête 911360234 @ iStock axel_wolf