Spécification et Développement d'un wizard pour automatiser la configuration et le déploiement des applications cloud-native conteneurisées

Spécification et Développement d’un wizard pour automatiser la configuration et le déploiement des applications cloud-native conteneurisées

Département: Ingénierie logicielle basée sur les modèles et systèmes informatiques distribués 

Expertises:

Ingénierie de systèmes IT complexes 

A propos du projet: QuadRide 

Profil Bachelier/ingénieur/Master
Prérequis
  • Connaissance des technologies Web (HTML, Javascript, CSS, ...)
  • Expérience avec le langage de programmation Python
  • Expérience avec le framework Django est un plus
  • Utilisation de Git
Disponibilité Année universitaire 2022 - 2023
Durée Minimum 6 semaines

Contexte

Dans le cadre de ses activités liées au déploiement automatisé de systèmes complexes, le CETIC développe Fadeployer, une solution low-code de déploiement des applications cloud-native conteneurisées pour le Big Data et le Machine Learning. Une plateforme low-code est un environnement de développement visuel dans lequel des développeurs peuvent ajouter des composants d’application à partir d’une interface graphique sur laquelle on utilise des blocs visuels qui ont été préprogrammés. En général, ce paradigme de low-code est utilisé dans un contexte de développement et il est rarement exploité dans un contexte opérationnel (pour configurer et déployer une application). +C’est l’intention des+ projets de recherche QuadRide (https://www.cetic.be/QuadRide-fr) et DeepQuality (https://www.cetic.be/DeepQuality-3851) dans lesquels le CETIC vise à packager un environnement BigData/IA complet permettant à un client de déployer un projet pilote dans un délai restreint (quelques semaines tout au plus) et à un coût contrôlé. Un tel projet est défini dans le cadre d’un cas d’affaire lié à un besoin métier bien déterminé (tel que l’analyse des données numériques, l’analyse des données médias, ...).

Afin de faciliter ces déploiements, une interface Web orientée wizard (frontend) doit être réalisée. Cette interface devra supporter deux profils d’utilisateurs. Le profil de développeur +permet de capturer les informations relatives à l’environnement cloud cible dans lequel s’effectuera+ le déploiement automatique d’une application donnée. Le profil de data scientist permet de configurer des sources de données, de mettre en place les modèles IA à exploiter et de définir +des mécanismes de traitement et+ de visualisation nécessaires, ... Cette interface est connectée à une interface REST pour assurer la communication avec le backend. Une preuve de concept de Fadeployer a été mise en place dans le cadre du projet QuadRide.

Travail à réaliser

L’objectif du stage consiste à faire évoluer cette preuve de concept en concevant de nouvelles fonctionnalités (dans la vue DevOps principalement) et en mettant en œuvre de nouveaux cas d’affaire dans la vue Data scientist, dans le respect de l’état de l’art et des normes actuelles du développement Web.

En tenant compte de la motivation du stagiaire et des ses compétences, trois sous-sujets de stage sont possibles :

  • Sous-sujet 1 - Mise en œuvre de solutions permettant de modéliser et déployer des applications cloud conteneurisées : Il s’agit ici d’élargir et d’actualiser l’état de l’art des solutions existantes & émergentes de modélisation (graphique) d’applications cloud conteneurisées avec un focus sur celles qui permettent d’effectuer de manière automatisée et facilitée des déploiements (complexes ou répétitifs mais avec une variabilité au niveau configuration) sur base de ces modèles. Un premier travail d’état de l’art a été réalisé lors de la réalisation d’un premier prototype de Fadeployer. Pour ce faire, le stagiaire commencera par une phase de découverte de l’état de l’art qui a été déjà élaboré et une familiarisation avec Fadeployer afin de bien comprendre le besoin métier de la solution. Ensuite, il définira avec son maître de stage la nature et la liste des solutions (par exemple des solution à base de GitOps, PaaS, ...) qui seront analysées en se basant sur une liste de critères bien définis.
  • Sous-sujet 2 - Construction de modèles pour faciliter le déploiement automatisé d’applications cloud-native conteneurisées : Le but de ce sujet de stage consiste à analyser et proposer un mécanisme d’aide à la construction d’un modèle qui fasse le lien entre les wizards de la vue DevOps et les couches sous-jacentes (comme PaaS, Helm, conteneurs, …) du FadDeployer. Un tel modèle doit être capable de capturer tous les éléments de variabilité entre les conteneurs nécessaires au déploiement et toutes les dépendances entre ces éléments de variabilité. Pour ce faire, le stagiaire débutera par une familiarisation avec l’outil Fadeployer. Ensuite, il emmènera un travail d’analyse d’état de l’art. Ce dernier pourrait être fait en deux étapes. La première étape consiste à réaliser un état de l’art des travaux qui s’intéressent à coupler le concept du "low code" à des aspects à base de "model-driven". La deuxième étape sera consacrer à une analyse de l’état de l’art des outils, techniques et approches destinée à gérer les variabilités et les dépendances entre les différents conteneurs d’une application (par exemple les feature modèles, les modèles à base de ligne de produits logiciels, les opérateurs de Kubernetes, dépendances entre les Helm Charts, ...). En se basant sur cette analyse, il spécifiera une première version de(s) modèle(s) qu’il intégrera dans un premier prototype dans Fadeployer.
  • Sous-sujet 3 - Ajout d’un nouveau cas d’affaire dans la vue data scientist : Le stage débutera par une familiarisation avec Fadeployer. Ensuite, le stagiaire analysera le cas d’affaire visé dans le stage. Cette analyse permettra de dégager les besoins fonctionnels et les écrans nécessaires à la mise en place du cas d’affaire. Chaque écran sera ensuite conçu et développé comme un ensemble de boîtes de dialogue guidant l’utilisateur et proposant des choix de paramètres de configuration et déploiement à compléter. Ces paramètres seront accessibles via l’API REST de Fadeployer dont les spécificités du cas d’affaire seront en partie définies et/ou modifiées lors du stage. Cette interface web sera intégrée avec le back-end de l’application de déploiement qui est en cours de développement.

Mot-clefs

  • frontend/backend
  • développement logiciel
  • Conteneurs logiciels
  • DevOps
  • low-code
  • déploiement
  • MLOps

Déroulement, Encadrement et livrables du stage

Le travail effectué dans ce stage sera encadré par des chercheurs du CETIC. Le stagiaire exploitera et utilisera une plateforme de développement (les outils de gestion de projet tels que GitLab et forge logicielle (Redmine)) permettant le suivi constant de ses progrès. Il devra également faire preuve d’autonomie et d’esprit innovant.

En fonction du moment de la réalisation du stage, il est possible que le stage doive être réalisé, en totalité ou en partie, en télétravail. Dans ce cas, des réunions seront régulièrement réalisées à distance afin d’évaluer la progression du stage. Un outil de messagerie instantanée sera également utilisé afin d’assurer un contact régulier entre le stagiaire et ses encadrants.

Le stage se terminera par une documentation détaillée du prototype (rapport de stage) ainsi qu’une présentation et une démonstration aux chercheurs du CETIC.

Contact