Evaluation de frameworks serverless open source

Evaluation de frameworks serverless open source

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

Contexte

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.

Objectifs du stage et travail à réaliser

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 :

  • recherche et prise de connaissance des frameworks serverless open source existants (état de l’art),
  • sur base de sources d’informations diverses (documentation officielle, forums utilisateurs, …), comparaison de ces frameworks entre eux (selon des critères à établir tels que : maturité, performances, langages de programmation supportés, possibilité et facilité d’intégration avec des environnements cloud non serverless et leurs composants tels qu’API gateway, sécurité, versioning possible, types et caractéristiques des environnement cloud cibles supportés, facilité d’utilisation et de mise en œuvre dans la perspective d’un déploiement continu automatisé, …) et avec les solutions propriétaires des fournisseurs de cloud public (AWS Lambda, IBM Cloud Functions, Azure Functions, Google Cloud Functions),
  • sélection d’un ou deux frameworks open source pour mise en œuvre et évaluation sur des cas d’étude de complexité croissante (exemples simples, cas d’étude issus de projets de recherche du CETIC et venant de partenaires industriels ou encore en lien avec l’asset TSorage),
  • mise en place d’un démonstrateur et rédaction d’un rapport.

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 :

  • Des traitements définis par l’utilisateur (désactivables ou activables à la demande) permettant l’enrichissement d’une observation suivant différents paramètres à configurer.
  • Des traitements pour détecter les anomalies d’une observation suivant un modèle défini (vie un fichier spécifique, un service, une DB, ...)

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.

Encadrement

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.

Mots-clés

Serverless, FaaS, open source

Références

Contact : Fabian Steels (fabian.steels@cetic.be), Mathieu Goeminne et Valéry Ramon (valery.ramon@cetic.be)