Profil | Etudiant en Master/Bachelier en informatique |
Prérequis | Bonne compréhension de l’anglais technique écrit, des connaissances en technologies cloud computing sont un plus. |
Durée | Minimum 12 semaines, ampleur du travail modulée en fonction de la durée |
L’informatique sans serveur, ou « serverless computing » en anglais, est un paradigme récent de l’informatique en nuage (« cloud computing » en anglais) qui se situe dans le prolongement logique des architectures orientées micro-services et de l’avènement de la technologie des conteneurs. Elle permet aux développeurs d’applications logicielles destinées à être déployées dans un environnement cloud de se concentrer sur le développement du logiciel (en d’autres termes, sur l’écriture du code implémentant les fonctionnalités business souhaitées pour l’application) et de s’abstraire de toutes les tâches opérationnelles liées à la configuration et la gestion de l’infrastructure (par exemple, la configuration et l’orchestration en temps réel des conteneurs pour gestion de la charge/scalabilité ou de défaillances). Ceci permet de réduire significativement le temps de mise sur le marché de nouveaux logiciels ou des évolutions successives de logiciels existants.
L’appellation « sans serveur » est trompeuse : elle ne signifie pas l’absence de serveurs mais seulement que la fourniture et la gestion des ressources informatiques (systèmes d’exploitation, serveurs, machines virtuelles, …) nécessaires au fonctionnement des applications ne sont pas de la responsabilité des développeurs mais bien de celles des fournisseurs de cloud.
Un des modèles possibles de réalisation de ce paradigme est dénommé « Function as a Service » (FaaS) : la logique de l’application est décomposée en « fonctions » de petite taille et sans état (« stateless ») qui s’exécutent dans des conteneurs éphémères (la fonction démarre rapidement, effectue le traitement et ensuite le processus s’achève) et sont déclenchées par des événements (par ex. une requête http, l’upload d’un fichier, le résultat d’une autre fonction, …). Un avantage notable du FaaS est que les ressources du cloud ne sont effectivement utilisées que durant le temps d’exécution des fonctions. En effet, dans le FaaS, le conteneur dans lequel s’exécute la fonction, ne doit pas nécessairement être actif et peut être désactivé (mais une latence est alors observée au démarrage du service). Le FaaS est donc particulièrement adapté aux traitements importants mais discontinus/de durée limitée. En cas de recours à un cloud public, le FaaS permet un réel pay-per-use et peut amener à une réduction de coût significative puisque la facturation dépend des ressources effectivement consommées et non des capacités d’instances de serveurs achetées à l’avance. Pour un cloud privé, le FaaS peut amener à une réduction de la consommation énergétique ou des ressources informatiques nécessaires.
Outre les bénéfices mentionnés plus haut, le serverless FaaS, s’il est correctement utilisé, peut donc également conduire à une réduction substantielle des coûts opérationnels.
Objectif
L’objectif du stage est de rechercher et étudier les frameworks serverless open source existants et en évaluer l’un ou l’autre sur des cas d’étude de diverses complexités, notamment en lien avec l’asset TSorage du CETIC.
Etapes du travail à réaliser
Le travail comprendra les étapes suivantes :
Cas d’étude en lien avec l’asset TSorage
TSorage est une solution de collecte, de traitement et de stockage de séries chronologiques à grande échelle. Cette solution permet d’ingérer des observations (ex. données de capteurs, métriques, logs,...) en les qualifiant avec un set de tags (ex. qualité de la valeur, localisation,...). Pour ce faire, l’architecture de TSorage est composée d’une couche d’ingestion des données (via les protocoles MQTT et HTTP), d’une couche de traitement (via Akka framework) et d’une couche de stockage (via Cassandra DB).
L’idée du stage est de rajouter une fonctionnalité permettant d’exécuter certains traitements dès qu’une observation rentre dans le système. Ces traitements peuvent être classés en 2 groupes :
Ces différents traitements devraient pouvoir définir des actions spécifiques comme envoyer un mail, créer un rapport,... mais aussi pouvoir recréer de nouvelles observations qui seraient réingérées par le système. Ces traitements supporteront des comportements stateless et/ou stateful.
L’intérêt de l’utilisation des FaaS pour implémenter ces traitements est d’offrir un moyen standardisé aux utilisateurs de TSorage afin qu’ils puissent l’étendre facilement (ajouter/paramétriser facilement des traitements algorithmiques) selon leurs besoins métier.
Le travail sera encadré par des chercheurs du CETIC experts en systèmes distribués et sur l’asset TSorage. Néanmoins, le stagiaire devra faire preuve d’autonomie et d’esprit d’initiative.
Serverless, FaaS, open source
Contact : Fabian Steels (fabian.steels@cetic.be), Mathieu Goeminne et Valéry Ramon (valery.ramon@cetic.be)