Déploiement et utilisation d’un outil de gestion de serveurs, d’installation et de configuration d’applications.

Proposition de stage ou de mémoire

Déploiement et utilisation d’un outil de gestion de serveurs, d’installation et de configuration d’applications.

Proposition de stage ou de mémoire

Profil Etudiant(e) niveau fin de bac 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 notre département SST, nous sommes amenées à 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 opensource permettant la gestion de serveurs, d’installation et de la configuration d’applications: Foreman, Terraform, Juju, etc.
L’utilisation de Foreman par exemple, couplé aux outils de gestion de configurations et de déploiement d’applications (Ansible, ...) permet l’automatisation des tâches répétitives et le déploiement rapide d’applications sur le cloud.

Travail à réaliser

La première partie du stage consiste à établir un état de l’art des divers projets, les comparer, évaluer les situations dans lesquels ils se distinguent.
Le stagiaire devra également se former sur les outils de déploiement automatisé: Ansible, et déployer la solution choisie et créer un script de déploiement automatique avec Ansible s’il n’existe pas (publication/contribution sur GitHub).
Pour la deuxième partie du stage, le stagiaire devra mettre un place des scripts de déploiements via la solution choisie pour un ou plusieurs cas d’utilisation. Ces cas seront à définir lors du stage, mais voici quelques exemples: création de VMs automatisés dans OpenStack, déploiement de microservices sur OpenShift, déploiements 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)