Source POUR L'IOT À l'ère du edge computing - Systematic Paris-Region
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Som
maire 31
32
32
32
35
INTÉGRATION PLATEFORME
CLOUD DEVOPS
Assets management
Gestion logique
Code source
Pipelines d’intégration continue
36 Images microservices
4 Préface 37 Recettes d’industrialisation
6 Les auteurs 39 Gestion des périphériques : préférence
pour les mises à jour over the air (OTA)
7 Avant-propos 39 Data collection
Pour les métriques
8 Introduction et rappels 40
40 L’approche stockage temps-réel
10 DE L’IOT VER L’I-IOT 42 L’approche stockage intermédiaire
11 EDGE COMPUTING 44 L’approche long terme
46 L’approche toutes durées
12 SECURITY BY DESIGN 47 Gestion des logs
13 Virtualisation 47 L’approche visualisation de logs temps-réel
16 Norme ISO 62443 48 L’approche stockage de logs généraliste
49 L’approche gestion du cycle de vie
20 IOT ET OPEN SOURCE
50 Monitoring et supervision
24 Intégration 50 Dashboards
Du système d’exploitation 51 Dashboards pour les métriques
à la gestion bout en bout 52 Dashboards pour les logs
25 INTÉGRATION ENVIRONNEMENT 53 Alertes
D’EXÉCUTION IOT 54 Digital twins
26 Les architectures d’exécution ouvertes, 55 Représentation IO
ou Open Hardware 56 Approche simulation 3D
27 Les systèmes d’exploitation embarqués 57 Approche abstraite
27 Partie 1 : langages, licences et sources
58 LE CONTINUUM EDGE-CLOUD
28 Les systèmes d’exploitation embarqués
Partie 2 : architectures, ressources 65 Conclusion
28 et fonctionnalités
29 Les orchestrateurs microservices IoT/Edge 66 Bibliographie
2 3Pré
faceDepuis la publication de notre premier livret Protéger les utilisateurs en éduquant les
bleu consacré à l’IoT, qui avait rencontré un éditeurs et les fournisseurs est l’enjeu social
grand succès, le secteur a littéralement explosé majeur de la communauté open source, dans
et conforté l’impérieuse nécessité d’implémenter un monde tendant vers des approches de plus
des solutions logicielles libres et open source, en plus numériques et automatiques, favorisées
garantes d’infrastructures résilientes et par l’arrivée de la 5G et le déploiement massif
créatrices de services, en s’appuyant sur des de l’IoT. Ce guide s’inscrit directement dans cet
standards ouverts. objectif, porté par le Hub open source à travers
Systematic, dont les auteurs sont membres
Cet opus couvre comme le premier toutes industriels et animateurs sur leurs sujets
les couches de l’IoT, des plus applicatives techniques.
aux plus proches du matériel, et met plus
particulièrement l’accent sur trois tendances Si ce guide est le reflet de leurs expertises
constatées par les auteurs sur ce marché en à date, il a aussi vocation à évoluer.
mutation permanente : L’écosystème open source sur ces sujets étant
1. l’approche industrielle de l’IoT, en intégrant les particulièrement dynamique, il est d’autant
problématiques de sécurité et d’industrialisation plus difficile d’avoir une cartographie globale
2. l’approche DevOps pour la gestion IoT au et exhaustive. Le format numérique de ce livret
niveau Cloud, de l’intégration à la supervision en va favoriser les itérations et les mises à jour en
passant par le déploiement parallèle des solutions open source qu’il met en
3. l’IoT au centre des nouvelles orientations Edge avant.
Philippe Montargès
- Cloud, à travers les solutions structurant le Président du Hub
continuum Edge - Cloud En remerciant ses auteurs et en vous en Open Source de Systematic
souhaitant bonne lecture. Paris-Region
4 5Les
En quelques années la situation a bien évolué Il y a 4 ans (en 2016)
auteurs
et lorsqu’on évoque l’IoT on pense surtout nous avions publié la
aux produits et services des membres du première version du
livret bleu consacré à
club des GAFAM. Si Apple et Facebook n’ont l’utilisation de l’open
pas réellement mis le pied dans ce marché source dans l’internet
(tout en restant des hébergeurs de données des objets. Cette
commerciales majeurs - les leurs qui sont version était désormais
obsolète et, du fait
souvent les nôtres), Amazon et Microsoft se
des compétences
taillent aujourd’hui la part du lion grâce à leurs du rédacteur, était
solutions AWS et Azure. À fin 2019 les parts de focalisée sur les
frederic.desbiens@ Frédéric DESBIENS est Gestionnaire des marché étaient estimées à 33 % pour AWS, 17 % technologies liées aux
eclipse-foundation.org pour Azure, 6 % pour Google et donc 44 % pour systèmes embarqués et
Programmes IoT et Edge Computing à la
aux protocoles réseau,
Fondation Eclipse. À ce titre, il supervise les les autres fournisseurs.
ce qui constitue une
activités de plus de 50 projets open source et faible partie du sujet.
trois groupes de travail. Vous le trouverez sur Comme dans l’édition précédente, et sachant
Twitter sous l’identifiant @BlueberryCoder. que ce livret est rédigé dans le cadre du Hub
Open Source (HOS) du pôle de compétitivité
pierre.ficheux@smile.fr Pierre FICHEUX est Directeur technique de Systematic, notre approche aura pour but de
la division ECS (Embedded and Connected favoriser les solutions à base d’outils open
Systems) de la société SMILE (https://www.smile. source tout en adoptant bien entendu une
eu/fr/offres/embarque-iot). Il est également approche pragmatique. Bref nous serons
enseignant dans plusieurs écoles d’ingénieurs, militants sans être dogmatiques !
auteur de nombreux articles ainsi que de Dans la suite de cette introduction nous
plusieurs ouvrages et livres blancs sur les décrirons les éléments qui ont marqué
systèmes embarqués, le logiciel libre et l’IoT. l’évolution de l’IoT ces dernières années.
Avant-
jonathan.rivalan@ Jonathan RIVALAN est responsable de la cellule
alterway.fr de Recherche et Développement d’Alter Way
propos
depuis 2014. Les travaux menés par son équipe
visent l’optimisation des plateformes Cloud
DevOps, plus précisément par des pratiques
de scoring, billing, monitoring, et analyse en
continue par Machine Learning (clustering,
régression linéaire, NLP, etc.). L’intégralité de
leurs résultats sont publiés en open source.
6 7Introduction
et rappels
Même si les solutions IoT sont beaucoup plus 3. La partie Cloud incluant le stockage de
fréquentes que lors de la parution de la dernière données et la couche de présentation (IHM ou
version de ce livret, il nous semble nécessaire Interface Homme Machine).
avant d’entrer dans les détails de rappeler 4. Les différents clients permettant de consulter
les principaux éléments d’une architecture les données (interface web, application mobile).
IoT. On peut donner une définition simple de
l’IoT comme étant une extension de l’Internet
Connectivité 2 Connectivité 1
permettant l’accès à des systèmes physiques (et Protocoles de communication Protocoles de communication
DSL, FTTX, cellulaire… XXXXXXXXXXX
non plus seulement des pages web). Interface utilisateur
Usages clients
Le but de l’IoT est avant tout de collecter des
données issues de capteurs répartis sur un PASSERELLE OBJET CONNECTÉ
territoire. Ces données sont le plus souvent Intelligence locale Hardware
Pré-traitement data Capteurs, connecteur
filtrées puis mises à disposition sur un ensemble (stockage/envoi) radio
de serveurs familièrement nommé Cloud.
Plateforme Plateforme 800 Stockage local Software
Le schéma ci-dessous indique les différents IoT de services de données interface utilisateur,
(ou SI Client) (stockage) intelligence locale
niveaux du système (de droite à gauche)
1. La partie capteur basée sur des architectures
Partenaires
de faible puissance (microcontrôleur) et utilisant
des systèmes d’exploitation adaptés (voire du Architecture IoT
bare metal, i.e. pas de système d’exploitation Si le dialogue entre certaines couches est
mais un logiciel dédié). totalement standard (accès aux données
2. Une couche de filtrage comportant un depuis un terminal via le protocole HTTP et
algorithme plus ou moins complexe (allant du un navigateur classique), la communication
entre les capteurs utilise souvent des
simple tri de données à de l’IA plus complexe).
protocoles dédiés (6LoWPAN, BLE, ZigBee) et
Cette partie utilise des calculateurs largement
la communication entre le routeurs de bordure
plus évolués (architecture 32 ou 64 bits) et des
et le Cloud utilise également des protocoles
systèmes d’exploitation évolués type Linux.
applicatifs spécifiques. Encore aujourd’hui le
En l’absence de traitement, cette couche se
protocole MQTT (initialement Message Queuing
bornera à la réalisation du routage des données
Telemetry Transport, créé par IBM en 1999 !) est
des capteurs vers le Cloud (routeur de bordure
largement utilisé et disponible auprès de tous
ou border router).
les fournisseurs de Cloud.
8 9Le principal paradoxe de l’IoT est le fait de Time Operating System) ou un logiciel dédié
rendre révolutionnaire (au sens marketing (qui devra être modifié). Si la carte existante
du terme) une association de technologies est déjà capable d’acquérir les données et de
existantes. Cependant la bonne foi nous les transmettre (si elle est déjà sous Linux), une
conduit à penser que même si ces technologies simple adaptation logicielle sera suffisante.
existaient déjà depuis des décennies De nombreux systèmes de supervision
(capteurs, systèmes d’exploitation embarqués, de processus industriels existants ont été
traitement de données, serveurs, terminaux de développés récemment en utilisant cette
consultation), l’évolution technique a permis de approche. Cependant, même dans le cas de l’I-
les associer et de les rendre accessibles à un IoT il est assez fréquent que la partie matérielle
plus grand nombre d’applications. (capteurs) soit banalisée.
De ce fait, les prévisions d’un Eldorado de l’IoT
DE L’IOT VER L’I-IOT grand public évoquées lors de la première
Le déplacement du marché de l’IoT vers l’IoT version du livret n’ont pas été confirmées et
industriel ou B2B (I-IoT) est une autre évolution les brosses à dent, ceintures connectées et
majeure. En effet, la quasi-totalité des projets autre gadgets n’ont jamais connu le succès
actuels en informatique industrielle sont prévu (ce qui n’est pas vraiment une surprise).
désormais assortis d’une partie liée à la collecte Dans la plupart des cas, les services utiles
et au traitement des données. Si l’on quitte le au grand public peuvent être fournis par une
monde industriel, de nombreux projets IoT sont application mobile et à ce jour le smartphone
principalement focalisés sur la partie Cloud, est le seul objet connecté B2C (très) largement
la partie matérielle (capteur, voire routeur de déployé ! Selon des statistiques de 2019, 67 %
bordure) étant souvent banalisée et les capteurs de la population mondiale est équipée d’un
achetés sur étagère. Le modèle économique est smartphone. Dans certains pays d’Europe, le
alors difficile à trouver, mis à part pour ceux qui taux dépasse 100 % car chaque utilisateur
jouent sur le volume qui jouent sur le volume des dispose de plusieurs appareils !
données traitées.
EDGE COMPUTING
La plupart des développements spécifiques Ce sujet est souvent lié aux applications
ont lieu dans le monde industriel car la mise industrielles de l’IoT. Alors que les architectures
en place d’un projet d’IoT peut conduire pour initiales se bornaient à intégrer des capteurs
certains marchés sensibles et/ou à forte valeur délégant le traitement des données au
à l’adaptation de composants existants. À Cloud, l’ajout de devices en Edge Computing
titre d’exemple un système embarqué peut (périphérie de réseau) permet un traitement
nécessiter l’ajout d’une carte d’acquisition et de partiel des données en amont du Cloud (par
transmission de données. Le tout est souvent exemple un filtrage). Cette approche a de
réalisé grâce à une carte Arm fonctionnant nombreux avantages à la fois techniques et
sous Linux embarqué (par exemple sous Linux/ économiques :
Yocto) et communiquant avec la carte existante.
La carte initiale peut utiliser un RTOS (Real
10 111. Amélioration de la bande passante (réduction À ce jour, le seul objet connecté grand public
des accès au Cloud ce qui entraîne également largement répandu (le smartphone) n’a jamais
une réduction des coûts) connu de problème majeur car la sécurité
2. Diminution de la latence (temps de réponse) fut prise en compte lors de la conception des
pour des applications “temps réel” systèmes concernés (iOS et Android pour citer
3. Simplification des contraintes liées aux les deux principaux). Le système d’exploitation
exigences réglementaires sur le stockage des Android étant basé sur le noyau Linux nous
données pouvons citer diverses fonctionnalités du
Les principaux fournisseurs permettent noyau liées à la sécurité comme ACL, SMACK,
l’intégration de fonctionnalités Edge dans leur dm-verity et bien entendu le projet SELinux
réseau. Les architectures utilisées au niveau (développé par la NSA). Ce dernier (dont
Edge dans les gateways sont assez éloignées de un sous-ensemble est utilisé par défaut
celles des capteurs. Selon l’IoT developer survey sur Android) est d’une grande complexité
réalisé par la fondation Eclipse (version 2020), mais garantit également un très bon niveau
43 % des systèmes utilisent Linux. Les systèmes d’intégrité du système. SMACK a une approche
d’exploitation utilisés dans les capteurs sont plus simple (S pour simplifed) et il est utilisé
plutôt de type FreeRTOS et dans une moindre dans le framework AGL (Automotive Grade
mesure Zephyr (de la fondation Linux). Linux) basé sur Yocto. AGL est un concurrent
d’Android Automotive OS pour la mise en place
SECURITY BY DESIGN de systèmes d’IVI (In Vehicle Infotainment).
La sécurité est l’enjeu majeur pour assurer Le dernier composant (dm-verity) se charge
l’évolution des solutions IoT. Certains disent, de vérifier l’intégrité des blocs du système
à juste titre, que la réticence du grand public de fichiers afin d’empêcher le démarrage en
est en grande partie liée aux incertitudes cas d’une modification binaire non validée. À
concernant la sécurité des systèmes IoT et plus cela nous pouvons ajouter les notions de boot
particulièrement la confidentialité des données sécurisé et la possibilité de chiffrer les partitions
traitées. L’adoption du RGPD en 2016 met en du système ce qui permet d’éviter le vol de
place un cadre plus strict mais son utilisation données personnelles même si le terminal est
est complexe lorsqu’on l’applique au concept compromis.
du Cloud qui est par définition délocalisé. Il
existe de nombreux exemples de problèmes de Virtualisation
sécurité graves mettant en cause des systèmes La notion d’hyperviseur est utilisée depuis de
connectés. Un des plus célèbres est l’attaque nombreuses années dans l’aéronautique. Le
connue sous le nom de “BlackEnergy” (en 2014) principe est d’utiliser une couche logicielle
qui a gravement endommagé le système de permettant de partager l’utilisation du
fourniture électrique de l’Ukraine en utilisant un matériel entre plusieurs partitions utilisant des
malware propagé sur des systèmes industriels niveaux de criticité différents. Dans la cas de
de type SCADA (pour Supervisor Control And l’aéronautique, la norme ARINC 653 est la plus
Data Acquisition). célèbre.
12 13De même, la société Elektrobit propose un outil
nommé EB Corbos, dédié aux applications
automobiles et conforme à AUTOSAR WiFi
Adaptive, extension du standard AUTOSAR
Ground
permettant d’exécuter du code POSIX dans un Station Link MISSION COMPUTER Camera
environnement sécurisé de type GNU/Linux
(Yocto) . Dans le monde du logiciel libre, des NET
composants comme LXC (LinuX Containers
- utilisé avec le noyau Linux) ou bien Docker
permettent d’exécuter une image de système
d’exploitation dans un conteneur au niveau Sensors FLIGHT COMPUTER Motors
Architecture
du système d’exploitation Linux hôte (et non ULB initiale
plus en bare metal). À titre d’exemple, le projet
Anbox permet d’exécuter Android dans un Un tel système peut aisément être attaqué à
conteneur LXC. Un grand groupe industriel partir du lien vers la station au sol. Le mission
français a déjà utilisé cette technique afin computer peut être infecté et éventuellement
d’intégrer des applications Android dans transmettre l’infection au flight computer via
un environnement existant sous GNU/Linux le réseau local. L’utilisation de seL4 permet de
(Debian). Dans le même ordre d’idée, le faire évoluer le logiciel vers une architecture
micro-noyau libre seL4 est utilisé dans des sécurisée dans laquelle les composants sont
applications d’aéronautique autonome ainsi séparés. La partie Linux (non sécurisée)
que sur des projets d’IoT. Cet outil est également communique avec la partie sécurisée par l’API
basé sur l’isolation de composants ayant des seL4 (voir figure ci-dessous).
niveaux de criticité différents. Une API prend
en charge le fonctionnement du micronoyau et
des différents systèmes d’exploitation hébergés
(threads, IPC, signaux, etc.) afin de produire un Radio Data Lunix VM
système hautement sécurisé. Un article cité en Driver Link
WiFi
bibliographie décrit la sécurisation du logiciel and Camera
utilisé dans un hélicoptère autonome créé sur la Crypto Non-critical
base du Boeing AH-6 (ULB pour Unnamed Little
Untrusted
Bird). La figure ci-contre décrit l’architecture
CAN Critical
initiale du système. CAN bus Driver Contained
Trusted
seL4
Architecture ULB
basée sur seL4
14 15Norme ISO 62443 1. Processes (policies, procedures & guidelines)
Dans le cas de la sécurité de l’I-IoT nous 2. Technology
pouvons citer les normes ISO 27005 et surtout 3. Foundational requirements (FR)
IEC 62443. La norme ISO/IEC 27005 fournit 4. Zones & conduits
les éléments nécessaires à la mise en place 5. Security levels (SLs)
d’une gestion des risques liés à la sécurité de 6. Maturity
l’information (IT). La norme IEC 62443 traite de
la cybersécurité des systèmes industriels (OT) et La partie Processes est organisée selon 11
couvre les applications I-IoT. La figure suivante catégories (Security Policy, Organization of
présente assez clairement les différents niveaux Security, Asset Management, etc.). La partie
de prise en compte des contraintes de sûreté Technology utilise 7 “Foundational Requests”
et sécurité dans une approche globale de la ou FR (Identification, authentication control
gestion des risques. and access control - AC, Use control – UC, Data
Integrity - DI, etc.). Le système global à analyser
doit être divisé en Zones reliées par des
Conduits comme indiqué sur la figure suivante.
ENTERPRISE ZONE
Sécurité E-Commerce
industrielle
Enterprise Firewall Internet
Enterprise
Enterprise File Server infrastructure Web Server
Sécurité Cybersécurité
WLAN
fonctionnelle des installations Sécurité des systèmes
IEC 61508 industrielles d’information
IEC 61511 CEI 62443 ISO 27000 CONDUIT
(ISA84) (ISAA99)
INDUSTRIAL/
ENTEPRISE Router/
Sûreté de DMZ ZONE Firewall
focntionnement Inventory
Terminal Services/ Management
Data Historian Mirror Managed
switch(es)
Domain Controller, Anti-Virus, Manufacturing
Patch Management Execution System (MES)
CONDUIT
Gestion des risques Gestion
industriels (schéma de des risques INDUSTRIAL
JP Hauet) NETWORK #1 PLC Router/
Firewall Local
Switch HMI
La norme IEC 62443 étant la plus utilisée dans
notre cas, nous allons brièvement la décrire en
quelques mots en nous basant sur l’exemple de Legacy Fieldbus ... Field Devices
l’attaque BlackEnergy. Les principaux concepts
tels que décrits dans la norme sont les suivants :
Zones et conduits
16 17La norme fournit une liste de critères techniques SRs and REs SL 1 SL 2 SL 3 SL 4
permettant d’évaluer le niveau de sécurité FR 5 - Restricted data flow (RDF)
(SL) sur une échelle de 1 à 4 à laquelle on peut
SR 5.1 RE 1 - Network segmentation 9.3 • • • •
ajouter la valeur 0 (pas de niveau de sécurité
SR 5.1 RE 1 - Physical network segmentation 9.3.3.1 • • •
constaté).
1. Protection contre une violation usuelle ou de SR 5.1 RE 2 - Independance
9.3.3.2 • • •
from non-control system network
pure coïncidence
2. Protection contre une violation intentionnelle SR 5.1 RE 3 - Logical and physical
9.3.3.3 • x
isolation of critical networks
simple
3. Protection contre une violation intentionnelle SR 5.2 - Zone boundary protection 9.4 • • • •
sophistiquée (experts) SR 5.2 RE 1 - Deny by default,
9.4.3.1 • • •
4. Protection contre une violation intentionnelle allow by exception
étendue (étatique) SR 5.2 RE 2 - Island mode 9.4.3.2 • •
SR 5.2 RE 3 - Fail close 9.4.3.3 • • N/A
Le principe de l’analyse est d’estimer pour
chaque zone le niveau de sécurité actuel de SR 5.3 - General purpose person-to-
9.5 • • • •
person communication restrictions
chaque FR (soit SL-A, où “A” vaut pour achieved)
et d’en déduire le niveau nécessaire pour éviter SR 5.3 RE 1 - Prohibit all general purpose
9.5.3.1 • • x
person-to-person communications
une attaque à un niveau donné (soit SL-T, où
“T” vaut pour pour target). Si nous prenons SR 5.4 - Application partitioning 9.6 • • • • ?
SL 1 OK SL 2 OK SL 3 NOK
l’exemple de FR 5 (ci-contre), l’audit consiste
à vérifier chaque SR (Security Requirement) En réalisant la même tâche sur tous les FR, on Evaluation FR 5
et de déterminer le SL global. Dans l’exemple en déduit un graphe correspondant au SL-A.
ci-contre (issu du cas BlackEnergy), l’audit a Dans le cas étudié, l’audit a déterminé que FR 6
identifié que le point 3 du SR 5.1 logical and était au niveau 1 et les cinq autres FR au niveau
physical isolation of critical network n’était 0 (aucun niveau de sécurité). De ce fait, la valeur
pas respecté, ce qui fait chuter le niveau de globale de SL-A est égale à 0, correspondant
sécurité à SL 3. De même, le point 1 du SR 5.3 à la valeur du maillon le plus faible. Le système
prohibit all general purpose person-to-person était donc relativement bien protégé au niveau
communication n’est pas non plus respecté, FR 5/réseau (SL 2) mais très mal protégé pour
ce qui fait chuter le niveau de sécurité à SL 2. le reste ce qui indique une absence de prise
Globalement, le niveau de la zone étudiée sur FR en compte globale des contraintes de sécurité
5 est donc au niveau SL 2. (but de la norme). Le SL-T (à atteindre) est donc
égal à 2 ce qui est un niveau relativement faible
(protection contre une violation intentionnelle
simple). La norme permet également de définir
la liste des contre-mesures à mettre en place
sur les FR incriminés.
18 19De plus, les répondants ont identifié la flexibilité
1. Identification and authentification control
4 (55 %), le coût (49 %) et le contrôle accru (41 %)
comme étant les bénéfices les plus significatifs
3
7. Resource availability 2. Use control reliés à l’emploi de l’open source.
2
1 Pour saisir tout l’impact qu’une approche
0
open source peut avoir sur un projet IoT, il est
essentiel de comprendre en quoi les projets IoT
6. Timely response to events 3. System integrity diffèrent des projets IT traditionnels. La première
différence est celle du cycle de vie. Alors que
les éditeurs logiciels nous ont habitués depuis
quelques années à des mises à jour quasi
SLT-T mensuelles, voire hebdomadaires, les solutions
5. Restricted data flow 4. Data confidentiality SLT-A
IoT s’inscrivent dans une durée mesurée en
Graphe SL-A/SL-T années ou même en décennies. Une entreprise
manufacturière, par exemple, ne révisera sa
IOT ET OPEN SOURCE chaîne de production de fond en comble que
Si l’on évoque les solutions liées au Cloud, force très occasionnellement, vu les capitaux et les
est de constater que le marché est largement risques d’affaires que cela implique. La seconde
dominé par des solutions propriétaires. La différence est l’hétérogénéité. La plupart des
domination de l’approche propriétaire n’est entreprises opèrent des infrastructures IT
pas limitée aux fournisseurs de Cloud et un largement standardisées et ne font affaire
grand nombre de frameworks, outils intégrés qu’avec un nombre restreint de fournisseurs
et périphériques matériels sont également dans le domaine. Or, dans le domaine de l’IoT,
propriétaires (même s’ils utilisent des systèmes aucun fournisseur ne peut prétendre pouvoir
d’exploitation open source). AWS utilise fournir à lui seul l’infrastructure, les logiciels, et
cependant des composants open source les dispositifs spécialisés requis qu’il s’agisse de
comme FreeRTOS et Microsoft Azure utilise le capteurs, d’actuateurs, de robots ou même de
système d’exploitation GNU/Linux et d’autres machines intelligentes. La conséquence est que
composants libres célèbres comme Kubernetes. les solutions IoT sont par définition hétérogènes.
La banalisation (commoditization) croissante Une troisième différence entre les solutions IT
du marché fait également en sorte que l’offre et IoT est que ces dernières sont soumises à un
purement open source devienne avec le temps ensemble de contraintes physiques rigoureuses.
de plus en plus complète et homogène. La consommation d’énergie est sans contredit
Ce constat explique que, dans l’édition 2019 de la plus importante, car bien des dispositifs sont
l’enquête d’opinion sur l’adoption commerciale alimentés par une batterie censée durer des
de l’IoT de la Fondation Eclipse, 60 % des mois ou mêmes des années.
répondants ont affirmé considérer l’open source
dans leurs plans de déploiement de solutions
IoT.
20 21Selon les cas d’utilisation, la résistance aux En d’autres termes : une approche open source
variations de température, aux vibrations, préserve la capacité des organisations à
aux radiations, à la poussière ou à l’humidité innover.
seront également des contraintes importantes.
Finalement, la dernière différence entre les En définitive, avoir recours à une approche
projets IT et IoT se trouve au niveau de la open source pour bâtir une solution IoT
connectivité. Toute solution IoT digne de ce affranchit les architectes et développeurs d’un
nom doit assumer que les réseaux auxquels ensemble de contraintes externes. Ils auront
elle se connecte sont susceptibles d’être donc l’entière liberté de déployer la solution
instables ou de manquer de fiabilité. Ce fait a sur les serveurs de leur choix (y compris dans
des implications profondes sur l’architecture et le Cloud) et de connecter les dispositifs à l’aide
l’implémentation de la solution. des protocoles et des technologies les plus
appropriés. Toutefois, toutes les bases de code
Une approche open source permet de mitiger open source ne se valent pas. Celles qui sont
et contrôler les problématiques liées aux sous la gouvernance de tierces parties neutres
spécificités des projets IoT. Avoir accès au code et soutenues par une communauté diverse
source fait en sorte qu’une organisation puisse sont les plus susceptibles de s’épanouir sur le
maintenir elle-même la solution si jamais les long terme. Dans ce contexte, il convient de
prestataires commerciaux se retiraient du mentionner que le groupe de travail IoT de la
marché (le cycle devenant ainsi plus prévisible). Fondation Eclipse offre sans contredit le coffre à
L’intégration de composants hétérogènes est outils open source le plus complet de l’industrie.
également plus facile lorsque les logiciels (et La majorité des projets qui lui sont rattachés
dans certains cas le matériel) utilisés sont sont d’ailleurs développés par des contributeurs
open source. Cela s’applique également aux européens; les équipes des projets Eclipse fog05
contraintes physiques. Quant à la connectivité, et Eclipse zenoh étant même basées en région
le fait de recourir à une plateforme open source parisienne.
accroît le nombre de technologies disponibles, La structure de gouvernance neutre de la
ce qui permet aux intervenants techniques Fondation assure l’égalité des chances entre les
de sélectionner celle qui convient le plus aux contributeurs et fait en sorte qu’aucun d’entre
exigences d’une implémentation donnée. eux ne puisse détourner un projet à ses propres
De plus, adopter une approche open source fins. De plus, le processus de développement
permet aux organisations d’éviter les pièges de mature offert par la Fondation fait en sorte que
certains modèles d’affaires commerciaux tels des organisations qui compétitionnent dans le
que la facturation au prorata du nombre de domaine commercial peuvent tout de même
périphériques ou de transactions. Il est en effet coopérer dans le cadre de projets open source.
fort difficile pour une organisation planifiant Mentionnons au passage que la Fondation
un déploiement d’avoir une idée précise de ces vient de déménager à Bruxelles et, à ce
métriques sur le long terme. Dans ce contexte, titre, représente l’acteur le plus important de
les directions d’entreprise auront tendance l’écosystème open source en Europe.
à favoriser la prévisibilité au détriment de
l’innovation.
22 23Inté
En ce sens l’effort d’intégration Cloud/IoT peut-
gration
être distingué en trois parties :
1. L’intégration de l’environnement d’exécution
IoT, qui spécifie la manière dont les services
s’exécutent sur les périphériques
2. L’intégration de la plateforme applicative de
pilotage Cloud, qui spécifie les solutions et la
manière dont la plateforme est gérée par les
administrateurs
3. La continuité entre les deux environnements
Du système Dans le contexte actuel, où les fournisseurs ou Continuum Edge Cloud
d’exploitation d’équipement de bordure (Edge ou Fog, lié ou
pas au développement 5G) se tournent de plus INTÉGRATION ENVIRONNEMENT
à la gestion en plus vers des approches as a service pour D’EXÉCUTION IOT
bout en bout équiper leurs clients, un équipement de gestion
centralisé, résilient et évolutif devient une
Les composants utilisés dans cette partie
se situent au niveau de la récupération des
nécessité. données (capteurs) ou bien dans la couche
Edge (gateway/filtrage). Les thématiques de ce
Les fournisseurs de Edge Cloud propriétaires document étant clairement orientées vers l’open
ont à leur catalogue des services ou grappes de source, nous avons favorisé cette approche
services unifiant cette gestion de l’infrastructure pour le logiciel (des systèmes d’exploitation -
IoT et son usage (à travers la gestion des partiellement ou totalement - open source) mais
services ou applications s’appuyant dessus). également pour le matériel car la mouvance
Au détriment de la souveraineté du SI client, et open hardware a connu un essor important ces
soumis à la politique tarifaire et technologique dernières années grâce à des produits ouverts
du fournisseur. comme la carte BeagleBone Black et plus
récemment l’architecture RISC-V.
Intégrer, déployer et gérer son parc IoT peut Dans la partie décrivant les systèmes
être réalisé de la même manière avec une série d’exploitation, nous retrouverons des standards
de solutions open source souvent présentées comme GNU/Linux ou Android dédiés à des
comme des solutions dites DevOps. Aussi architectures puissantes (x86, Cortex-A 32 ou
décliné sous les appellations ChatOps, AIOps, 64 bits). Nous citons également des systèmes
FinOps ou plus récemment EdgeOps, DevOps émergents comme Zephyr (de la fondation
rassemble des outils autour d’une technologie Linux), Contiki-ng ou RIOT utilisés sur des
de virtualisation, la conteneurisation en capteurs (Cortex-M voire des architectures 16 ou
microservices, et des principes de gestion 8 bits).
de cycle de vie projet, faisant la promotion
de l’intégration continue, qui permet de
lier l’état du code produit ou des versions
de votre application avec l’état du ou des
environnements d’exécution.
24 25Les architectures d’exécution ouvertes, Les systèmes d’exploitation embarqués
ou Open Hardware Partie 1 : langages, licences et sources
L’une des caractéristiques essentielles Cette liste non exhaustive concerne des
des solutions IoT est d’être fortement systèmes légers embarqués dans des capteurs,
personnalisable. Les contraintes de voire des gateways Edge.
consommation d’énergie et, dans certains cas,
la difficulté d’accès à l’équipement font en Langage
sorte qu’il est souvent désirable d’avoir recours Nom Date de Version de program-
à une combinaison matérielle et logicielle de l’OS creation à date mation Licence Sources
taillée sur mesure pour le cas d’utilisation Amazon https://www.freertos.
2017 10.3.x C MIT
concerné. En ce domaine, une tendance en FreeRTOS org/a00104.html
pleine croissance est le matériel open source.
Java + Kotlin
Depuis le début des années 2010, l’architecture (Android
Apache http ://source.
RISC-V offre une solution de rechange crédible Android 2008 11 SDK and
2.0 android.com
Android
aux architectures propriétaires. De nombreux
Studio)
fabricants de matériel ont conçu des plates-
formes s’en inspirant. RISC-V ne représente Apache Apache https://github.com/
2016 1.3.x C/Go
Mynewt 2.0 apache/mynewt-core
cependant qu’un jeu d’instructions et la
plupart des organisations ne disposent pas Apache https://github.com/
ARM Mbed 2009 5.15.x C/C++
des compétences requises pour concevoir des 2.0 ARMmbed/mbed-os
processeurs et microcontrôleurs l’utilisant. Cet Contiki/ BSD https://github.com/
obstacle à l’adoption a favorisé l’émergence 2002 4.x C
Contiking 3-Clause contiki-ng
d’organisations telles que le OpenHW Group, qui
Huawei 2013- BSD https://github.com/
développe une famille de processeurs RISC-V LiteOS 2018
2.x C
3-Clause LiteOS
open source appelée CORE-V. Les concepteurs
de matériel peuvent librement télécharger le Multiples
Linux/ (GPL,
code source en langage System Verilog de ces 2010 3.1 Multiples http://yoctoproject.org
Yocto LGPL,
processeurs et le modifier à leur guise. Il est etc.)
même possible de valider les designs à l’aide de
RIOT- https://github.com/
FPGAs relativement peu onéreux. L’émergence RIOT 2012 C/C++ LGPLv2.1
2020.10 RIOT-OS/RIOT
de plateformes prêtes à l’emploi telles que
CORE-V fait donc en sorte qu’il sera de plus C https://github.com/
Apache
Zephyr 2016 2.4.X (Developer zephyrproject-rtos/
en plus facile pour les organisations de toutes 2.0
Kit) zephyr
tailles de déployer des solutions taillées sur
mesure.
26 27Les systèmes d’exploitation embarqués Les orchestrateurs microservices IoT/Edge
Partie 2 : architectures, ressources Si les systèmes d’exploitation embarqués
et fonctionnalités supportent une grande partie de la couverture
fonctionnelle de votre application ou
Nom Principales architectures Ressources Fonctionnalités infrastructure applicative, ils ont besoin dans la
de l’OS supportées demandées remarquables plupart des cas d’une plateforme d’exécution
plus classique pour offrir des fonctionnalités
Intégration AWS
(Amazon) non fournies par les périphériques eux-mêmes,
ARM, x86 4 Ko RAM pour la version
FreeRTOS
Amazon mais nécessaires à leur bon fonctionnement :
health checking, centralisation et analyse de
Android x86, ARM 2 Go RAM Toutes ou presque !
données, gestion de configurations, gestion
Apache Mynewt 16 Ko RAM BLE 4.2 de politiques de sécurité, etc. (fonctionnalités
que l’on retrouvera bien évidemment dans
ARM Mbed ARM Cortex-M 64 Ko RAM BLE 4.2
le Cloud mais au prix de la distance avec les
SSL/TLS (Mbed périphériques). Dans certains cas la latence
2002 4.x C
TLS ou WolfSSL)
des traitements rendra inefficace leur réponse
Noyau préemp- aux périphériques de bordure ou offriront des
2013-2018 2.x C
tif performances dégradées.
10 Ko
Contiki/ En poursuite de la tendance DevOps, et
ARM Cortex -M, MSP430 RAM/100 Ko 6LoWPAN, RPL, CoAP
Contiking
ROM notamment à la fourniture de services
Support NB-IoT,
conteneurisés, c’est-à-dire à une approche
Huawei LiteOS ARM, RISC-V 10 Ko (noyau) Ethernet, Bluetooth, plus légère et plus dynamique que la
Wi-Fi, Zigbee virtualisation en VM, les infrastructures IoT
Linux/Yocto Toutes ou presque ! 32 Mo RAM Toutes ou presque ! se voient accompagnées par des solutions
d’orchestration microservices spécialisées
1,5 Ko RAM, Noyau temps réel, pour les couches Fog et Edge, et déclinées
RIOT Cortex-M, RISC-V, x86
5 Ko ROM support POSIX
depuis la solution Cloud, Kubernetes. Cette
Device tree support dernière ajoute toutefois une certaine
8 Ko RAM,
Zephyr ARM, RISC-V, x86 (DTS), Large set of complexité à l’infrastructure et ne s’adapte pas
30 Ko ROM
protocol stacks
nécessairement à tous les types de déploiement.
Par conséquent, ces dernières années ont vu
l’émergence d’un ensemble de plateformes
spécialisées pour assurer l’orchestration de
microservices Edge qui dans certains cas
s’intègrent à des instances Kubernetes situées
dans d’autres couches de l’infrastructure.
28 29Plusieurs projets open source permettent de qui peuvent les prendre en charge. L’outil
déployer Kubernetes lui-même dans la couche fog05 peut également déléguer l’exécution de
Edge. Certains d’entre eux, tels que Minikube certaines charges à Kubernetes, au besoin.
et Microk8s, sont surtout utiles à des fins Il convient de mentionner que les populaires
de développement puisqu’ils ne fournissent projets Eclipse Kura et Eclipse Kapua peuvent
qu’une grappe (cluster) à un seul nœud (node). également orchestrer des applications dans un
D’autres, comme K3s, tentent de réduire environnement Edge, pourvu qu’une topologie
l’empreinte de Kubernetes en remplaçant de déploiement appropriée soit employée.
certains de ses composants par des alternatives
moins consommatrices en ressources. Ceci rend INTÉGRATION PLATEFORME
toutefois impossible le déploiement en mode CLOUD DEVOPS
haute disponibilité. Finalement, des projets tels Une fois l’architecture de bordure définie se
que KubeEdge marient un composant Edge sur pose la question de sa maintenance centralisée
mesure à une grappe Kubernetes résidant dans ainsi que de la gestion de ses ressources,
une couche distante. notamment celles liées à l’exploitation des
données. Aujourd’hui ces points sont largement
Une tendance relativement récente a vu couverts par de l’outillage issu de/ou composant
l’émergence du concept de EdgeOps, qui la méthodologie DevOps, c’est-à-dire facilitant
vise à adapter les pratiques DevOps établies le rapprochement entre les métiers du
à la réalité de l’environnement Edge par développement et ceux de l’opérationnel. Nous
l’intermédiaire de plates-formes et d’outils allons aborder dans cette seconde partie
conçus à cet effet. Les projets Eclipse ioFog les différentes familles de solutions métiers
et Eclipse fog05 (qui a recours au protocole permettant la mise en place d’un socle de
Eclipse zenoh) sont des exemples représentatifs management Cloud basique et open source
de cette tendance. Eclipse ioFog a recours à un pour infrastructures IoT. Trois familles de
contrôleur centralisé qui assure l’orchestration solutions métiers ont été identifiées :
des microservices. Pour ce faire, il a recours 1. Asset management, regroupant les solutions
à une abstraction appelée Edge Compute de gestion des ressources opérationnelles,
Network qui isole les applications de la logiques (code, scripts, etc.) et physiques
complexité de l’infrastructure. L’outil ioFog (périphériques, routeur, etc.)
peut être déployé en mode autonome (il a 2. Data collection, regroupant les solutions de
alors recours à containerd) ou s’intégrer à collecte et de stockage de données, de type
Kubernetes. Eclipse fog05, quant à lui, a recours métriques ou bien de logs (traces)
à une approche totalement décentralisée. 3. Monitoring et supervision, regroupant les
Les différentes ressources d’infrastructure solutions type dashboards ou jumeaux digitaux
prises en charge par fog05 sont gérées par
l’intermédiaire d’un unified compute fabric
qui s’assure de distribuer les différents
composants d’une application aux ressources
30 31Assets management Gitlab est un exemple open source de
La gestion de l’infrastructure applicative IoT plateforme en ligne permettant de gérer
commence avec une bonne gestion des assets plusieurs aspects liés à la création de code :
logiques et physiques. Pour les premiers on peut 1. Versions et sous-versions
distinguer le code, les recettes d’intégration et 2. Niveaux de droits par utilisateurs
les bibliothèques d’artefacts. Pour les seconds, 3. Corrections ou évolutions attendues sur le code GITLAB
il s’agira d’indexer l’ensemble des périphériques En plus de gérer les différentes
versions du code, Gitlab propose
physiques présents sur votre infrastructure, Il permet également de mettre en place de un IDE Web facilitant l’édition et la
des serveurs aux capteurs en passant par les la méthodologie agile en fournissant des revue du code depuis son interface
côté client. Les fonctionnalités
éventuels équipements de routage. dashboards type Kanban directement dans les annexes sont nombreuses dans la
projets. version communautaire open source :
Wiki, Kanban, registry…
Gestion logique Source : Gitlab.com
Code source
La première étape est d’identifier une solution
de gestion de code de type SCM (Source
Code Manager). Si il y a différentes approches
disponibles (SVN, Mercurial, etc.) aujourd’hui la
tendance est à l’utilisation de solutions basées
sur le protocole Git, qui permet de gérer le code
localement. Pour passer à l’échelle collaborative,
il faut l’articuler avec une plateforme de gestion
permettant son partage et sa gestion dans le
cadre du projet ou de l’intégration.
32 33Tuleap est une alternative française à Gitlab. Pipelines d’intégration continue
La philospohie de la solution est d’offrir une La seconde étape consiste à délivrer ce
solution collaborative pour la gestion du cycle code directement ou à travers des artefacts
de vie des applications. De la description compilés, et souvent vérifiés et optimisés à
des tâches, au suivi de leur développement, travers des services de vérification (qualité,
jusqu’à la gestion du code source et son performance, compliance) ou d’analyses plus
intégration DevOps, en passant par les aspects poussées. Cette étape est celle de l’intégration
qualité comme la revue de code, les tests et continue, aussi appelée CI et plus récemment
la documentation, Tuleap couvre l’intégralité CI/CD car elle va se doubler avec une action de
des besoins liés au développement logiciel. déploiement continu. La description de pipelines
Elle regroupe donc les aspects SCM (Source d’intégration et de scénarios de déploiement
Code Management, avec une compatibilité va être nécessaire pour articuler l’évolution de
TULEAP Git et SVN) pour la partie gestion du code, les votre code avec ces actions.
Tuleap se différencie fortement
par les aspects gestion de projet aspects gestion de projet Agile avec plusieurs
et visualisation. L’outil permet de type de dashboards dont kanban, les aspects Gitlab-CI (embarqué dans Gitlab) permet la
regrouper par configuration sur un
dashboard unique l’état croisé de intégration avec le support de Jenkins, et offre description de ces pipelines, la configuration
l’avancement du code au regard
des fonctionnalités propres permettant de de projets Git avec ces descriptions, et enfin
des spécifications, les informations
relatives au backlog des incidents faciliter la traçabilité des actions menées par les leur exécution à travers des Gitlab-runners.
et une timeline des différents GITLAB-CI
évènements du projet.
équipes. Ces derniers permettent de distribuer sur Les statuts des jobs d’intégration
Source : tuleap.org l’infrastructure la gestion à proprement dite peuvent être monitorés depuis la
plateforme. Ils permettent de suivre
du code, des actions d’intégration et de le déroulé des scripts ou jeu des
recettes sur les environnements,
déploiement, parfois lourdes dans le cas de ainsi que de déboguer rapidement
compilations volumineuses ou de simulations en cas d’erreurs : un accès à la vue
terminal étant incluse dans le client
complexes dans le cadre de la vérification. front-end.
Source : Gitlab.com
34 35Images microservices Recettes d’industrialisation
La conteneurisation des microservices s’appuie Les trois points ci-dessus permettent au projet
fortement sur un concept d’images empilables. d’être prêt à être déployé sur un environnement
Techniquement il s’agit d’une spécificité au local ou distant. Cet environnement (serveur,
niveau du système de fichiers, considérant machine virtuelle, microcontrôleur, etc.)
chaque nouvelle version du code comme une nécessite d’être préparé avant d’exécuter
nouvelle couche historisée. Ces nouvelles les services ou applications IoT. On utilise le
versions du code sont rendues disponibles sous terme “installation” pour décrire cette étape de
la forme d’images, comportant un numéro de préparation de l’environnement. Aujourd’hui et
version. Par exemple, pour appeler la dernière dans la poursuite des approches DevOps, cette
version d’une image Nginx, on écrira dans son installation de l’infrastructure se fait “as code” ;
fichier de dépendance nginx : latest. plutôt que de configurer l’environnement avec
des instructions manuelles et locales, un outil va
La gestion des images se fait communément à “jouer” des recettes décrivant ces instructions et
travers une registry. Il en existe plusieurs ayant assurera que :
différentes spécificités. Gitlab embarque sa 1. Tous les environnements sont configurés de la
propre registry facilitant la mise à disposition même manière
des artefacts issus de l’intégration à travers 2. L’installation est parallélisable sur n
HARBOR Gitlab-CI, tout en limitant parfois leur accès environnements
Harbor propose un concept de extérieur. La Docker Registry est également un 3. Certaines propriétés de configuration ou de
projets au-dessus de la gestion
classique des images mlicroservices, produit officiel et qui permet de distribuer ses conformités sont respectées
afin d’offrir plus de flexibilité et de images de la manière la plus native possible (au
contrôle sur leur gestion (accès,
partage, mise à jour, etc.). Cette sens de Docker). Harbor est une alternative qui Il existe de nombreuses approches et outils
solution permettra de définir des
quotas par projets ou utilisateurs,
intègre des fonctionnalités “enterprise” : gestion pour développer ces recettes d’industrialisation,
facilitera la réplication et offrira des accès RBAC, scanner de vulnérabilité, introduisant chacune des spécificités
des fonctionnalités de tagging
automatique des images. synchronisation multi-registry, etc. liées à leurs formats de description et
Source : goharbor.io d’expression. Ansible est une solution bien
connue et qui couvre, grâce à la description
de rôles et playbooks, le provisionnement
d’environnements, leur configuration et la
gestion du déploiement d’applications sur ces
derniers. Terraform, plus moderne, s’appuie
sur des connecteurs d’infrastructures appelés
providers pour permettre aux utilisateurs de
décrire de manière unifiée, en s’appuyant sur le
DSL fourni, des configurations compatibles, hors
spécificités, avec l’ensemble des providers.
36 37Vous pouvez aussi lire