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

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.

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 ou fournis par des partenaires industriels du CETIC),
  • éventuellement, mise en œuvre d’une solution propriétaire et comparaison avec l’approche open source,
  • mise en place d’un démonstrateur et rédaction d’un rapport.

Encadrement

Le travail sera encadré par des experts en systèmes distribués mais 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) et Valéry Ramon (valery.ramon@cetic.be)