Evaluation d’outils open source permettant de faciliter la configuration et le déploiement d’applications

Proposition de stage ou de mémoire

Evaluation d’outils open source permettant de faciliter la configuration et le déploiement d’applications

Proposition de stage ou de mémoire

Profil Etudiant(e) niveau fin de bachelier ou master.
Prérequis Connaissance de Linux, de Git et de l’anglais écrit technique.

Des connaissances relatives aux outils de gestion de configurations et de déploiement d’applications (Ansible, Puppet, Chef, etc.) sont un plus.

Des connaissances de LaTeX, Markdown sont également un plus.

Durée Minimum 12 semaines.

Contexte

Dans le but de déployer des applications plus aisément (sur des infrastructures de cloud privées et publiques), un certain nombre d’outils permettent de scripter et d’automatiser les déploiements et les configurations des services (Ansible, Chef, Puppet, etc).
L’utilisation d’un tel outil permet de décrire une application (composée d’un ensemble de services) sous forme de code/scripts, et de rejouer son installation à partir de machines vierges, sans avoir à se connecter sur chaque machine, ni à éditer manuellement les fichiers de configuration.

Dans le cadre de ses activités, le CETIC est amené à créer ces scripts de déploiement (pour la création de machines virtuelles, installation de services, applications, etc) et à potentiellement devoir les relancer de manière répétitive.

Il existe un certain nombre de projets open source pproposant des outils permettant de complémenter les outils mentionnés ci-dessus (Ansible, Chef, Puppet) afin de faciliter (rendre plus rapide, automatiser, ...) la configuration et le déploiement d’applications : Foreman, Juju, Ansible AWX, Satelitte, Alien4Cloud.

Ces outils offrent en effet un ou plusieurs des bénéfices suivants : une interface utilisateur, une gestion poussée des groupes de machines (organisation de parc de machines), une gestion des droits d’accès, une gestion facilitée du cycle de vie des ressources cloud visées, ...

Travail à réaliser

La première partie du stage consiste à établir un état de l’art de ces divers projets open source, les comparer et les positionner par rapport aux outils tels que Ansible, Chef, Puppet (quel est leur apport et comment ils peuvent s’intégrer par rapport à ces derniers). Le stagiaire devra également se former sur les outils de déploiement automatisé (Ansible) et créer un script de déploiement automatique avec Ansible s’il n’existe pas.

Pour la deuxième partie du stage, le stagiaire devra, pour un ou plusieurs cas d’utilisation, mettre en place des scripts de déploiements via la (les) solution(s) choisie(s) et montrer les bénéfices qu’elle(s) apporte(nt). Ces cas seront à définir lors du stage mais quelques exemples possibles sont : création de VMs automatisés dans OpenStack, déploiement de microservices sur OpenShift, déploiement d’applications sur un cloud pulic, ... Le stagiaire devra donc illustrer l’utilisation de la solution avec OpenStack, OpenShift et des clouds publics (Amazon Web Services, Google Cloud Platform, ...).

Enfin, le stage se termine par une documentation détaillée et une présentation aux chercheurs du CETIC.

En fonction des résultats et l’implication du stagiaire, une possible publication des résultats pourra être envisagée : article scientifique, article de blog, ...

Encadrement

L’entièreté du travail sera encadré. La ou le stagiaire utilisera une plateforme de développement permettant le suivi constant de ses progrès. Elle / il devra également faire preuve d’autonomie et d’esprit innovant.

Contact : Alexandre Nuttinck (alexandre.nuttinck@cetic.be)