Vers une approche FaaS pour du calcul analytique sur noeuds IoT
Résumé
A ce jour, le nombre d’objets connectés croit exponentiellement. Plusieurs milliards d’objets connectés sont prévus dans les 5 prochaines années selon plusieurs études. Ces objets sont principalement utilisés pour des tâches de collecte d’information et n’exploite aucunement leurs ressources matérielles propres (processeur/mémoire). Même si la plupart de ces objets sont déconnectés la plupart du temps pour économiser de l’énergie, utiliser même une infime partie de ces objets pour des traitements de bordure de réseau dans une architecture « Edge Computing » représente une puissance de calcul significative.
A la différence des approches de « Cloud Computing » classiques, ces objets – capteurs ou passerelles légères – sont peu propices, car trop contraints, à des déploiements et migrations de machines virtuelles ou containers docker. Nous proposons une approche « Serverless » pour ces objets avec des services hébergés FaaS – Function as a Service. Chaque objet expose ainsi un service permettant d’exécuter à la demande une fonction quelconque de calcul.
Le système proposé – PyIoTCloud – s’attaque à l’ « offloading » de fonctions Python – particulièrement utilisé dans les librairies de calculs analytiques - sur des nœuds IoT. L’architecture de PyIoTCloud se compose actuellement d’un cluster de « workers » - déployés sur capteur microcontrôleurs ESP-32, d’un « dispatcher » interprétant le programme Python, déterminant les fonctions intéressantes et d’un « broker » MQTT pour une approche asynchrone par messages pour la communication. Les résultats préliminaires montrent la cohérence et faisabilité de notre approche à grain-fin sur la facilité de migration d’une fonction de calcul et la pertinence de cette exécution rapide sur un temps très court correspondant aux courts temps de réveil d’un capteur.
Dans ce cadre, nous voulons étudier les performances énergétiques et les performances de calcul – selon les fonctionnalités d’un système distribué pouvant être fournies (répartition de la charge, tolérance aux pannes, réplication des données et calcul). Nous cherchons à obtenir le meilleur équilibre et rendement sur des faibles puissances disponibles, de faibles consommations et également un bas coût financier des objets de calcul.