Stage Ingénieur DevOps

Stage ingénieur DevOps

Stage Ingénieur DevOps

A la recherche d’un stage ingénieur DevOps ? Mathieu, pour son projet de fin d’études, a intégré le pôle DevOps d’AViSTO Grenoble. Encadré par un DevOps senior, il a travaillé sur deux projets de R&D interne en lien constant avec leurs chefs de projets respectifs et leurs équipes : KARlab et CandiSearch. Deux alternants, Stanislas et Romain, ont également collaboré avec lui sur ses différentes tâches DevOps. Il partage son expérience.

AViSTO recrute chaque année des stagiaires DevOps. Les offres sont à retrouver sur notre site emploi, en général à partir de septembre / octobre (penser à taper le mot-clé « stage »). En dehors de ces périodes, n’hésitez pas à postuler de manière spontanée..

Sommaire :

Profil

«Le DevOps est un mouvement visant au rapprochement du développement logiciel (Dev) et de l’administration des infrastructures informatiques (Ops). L’ingénieur DevOps va contribuer à accélérer le cycle de développement et améliorer la qualité et la sécurité du code. Le mouvement DevOps s’appuie sur l’automatisation, l’infrastructure en tant que code et le fait de détecter au plus tôt dans la chaîne d’intégration et de déploiement les problèmes pour en réduire l’impact et le coût.

Etudiant en dernière année à Polytech Grenoble (niveau BAC+5), j’ai démarré ce stage avec des connaissances académiques du rôle DevOps, ses objectifs et les concepts clés de la culture DevOps. Ce projet de fin d’études était donc pour moi l’occasion de découvrir une nouvelle fonction que je trouve passionnante car mélangeant aspects techniques, méthodologiques et relationnels.»

Descriptif du stage ingénieur DevOps et missions

« J’ai intégré deux équipes du pôle R&D d’AViSTO en tant que stagiaire ingénieur DevOps, afin de faciliter leur travail et de monter en compétences dans ce rôle. J’ai participé aux deux projets suivants.

KARlab
KARlab est un projet de recherche et de développement, réalisé en partenariat entre AViSTO et ses deux sociétés soeurs ELSYS Design et MECAGINE.

Ce projet a débuté en janvier 2018 et a pour objectif de proposer du karting en réalité augmentée. Les parties se jouent à plusieurs joueurs, chacun muni d’un casque de réalité augmentée et conduisant un kart sur un circuit. Le casque permet la visualisation de bonus, malus et objets virtuels sur le terrain, qui peuvent interagir avec les karts (les faisant freiner, ralentir ou zigzaguer) tout au long de la course. Ce concept est proche du jeu vidéo Mario Kart mais avec une dimension de réalité augmentée.

Le projet consiste en l’élaboration d’un serveur de jeu (supervisant les parties), de plusieurs cartes électroniques présentes sur chaque kart, d’un ensemble d’éléments virtuels (tableau de bord, objets, boîtes etc.) visibles grâce aux casques de réalité mixte et enfin de fonctionnalités de localisation et de communication avec les différentes entités.

Le kart utilise différents capteurs afin de se repérer dans l’espace et également de réagir en cas de situations dangereuses, notamment déclencher un arrêt d’urgence en cas d’obstacle devant lui. Ce projet couvre donc de nombreux aspects : affichage sur les casques, gestion des capteurs, suivi de la partie et des joueurs, reconnaissance de l’environnement, détection de danger…

A mon arrivée, au point de vue DevOps, seul le serveur de jeu avait des installations de vérifications et d’optimisations fonctionnelles (pipeline, builds, tests, …). De plus, l’organisation des répertoires Git était améliorable du fait de son ancienneté. Aucun refactoring n’avait été fait depuis le lancement du projet, excepté un sur le serveur de jeu.

Le projet possède désormais une nouvelle organisation et un nouveau modèle de branches Git qui est plus simple d’utilisation et mieux documentée. Chaque composant dispose de son propre répertoire, les PoC (proof of concept) et les outils de test sont regroupés dans des dossiers de répertoires séparés. De plus, un branching model encadre les bonnes pratiques d’utilisation de Git, afin de garantir une homogénéité des méthodes de travail.

Concernant le serveur de jeu, son pipeline a été entièrement modifié. Son utilisation du cache et des artéfacts a été améliorée et ses jobs sont déclenchés de manière plus fine, selon la branche actuelle et si elle possède une merge request. Il intègre également des fonctionnalités supplémentaires, avec une vérification de la qualité du code, via un serveur SonarQube, et un déploiement continu en recette, utilisant Docker. Enfin, un refactoring a été fait sur ses tâches Gradle.

CandiSearch
CandiSearch est un outil interne à ADVANS Group (AViSTO, ELSYS Design et MECAGINE). Il s’agit d’une application web utilisée pour tous les recrutements depuis la réception initiale du CV à la génération du contrat final.

L’objectif du projet était de développer la v3 de l’outil pour améliorer les performances, l’expérience utilisateur et d’utiliser une stack plus récent.

Concernant les aspects DevOps, le projet disposait déjà d’un pipeline de CI / CD (intégration continue / déploiement continu) sur GitLab, lançant les tests et générant une image Docker avant un déploiement sur une machine de recette. Le branching model utilisé était basé sur une branche de production (master), une branche de développement (next) et des branches features issues de cette dernière, soit un modèle simple, orienté sur l’amélioration continue d’une seule version du code.

Suite à notre intervention avec Romain et Stanislas, le pipeline du projet a été optimisé, sa vitesse a grandement augmenté, tandis que de nouvelles fonctionnalités ont été ajoutées. Il intègre maintenant une vérification SonarQube, ainsi qu’un déploiement manuel en recette, via Docker Compose, en intégrant un outil d’authentification. Les fonctionnalités GitLab sont également mieux utilisées, dans le respect des bonnes pratiques.

Le build Gradle a lui aussi été optimisé, avec une simplification des tâches et une généralisation de l’utilisation de son cache. »

Compétences Stage ingénieur DevOps

« Ce stage m’a permis de développer mes compétences DevOps sur l’ensemble de la chaîne CI / CD mais aussi en organisation multi-projets et au contact de plusieurs équipes.

J’ai pu travailler mes compétences en automatisation, scripting et génie logiciel.

Les tests et les mesures de performances sont également deux aspects clés, permettant de garantir une qualité de code et d’identifier les points d’amélioration sur lesquels j’ai aujourd’hui de l’expérience.

Enfin, mon travail sur plusieurs projets, avec des objectifs différents, m’a permis d’être autonome rapidement dans mon travail tout en répondant aux besoins présents et futurs des équipes. »

Stage ingénieur DevOps à Nice, Paris et Grenoble

AViSTO propose chaque année des stages ingénieur DevOps de niveau BAC+5 à Nice (Vallauris), Paris et Grenoble. Les offres sont consultables sur notre site emploi (penser à taper le mot-clé « stage »), généralement à partir du mois d’Octobre. Si aucune offre n’est en ligne au moment de votre consultation, n’hésitez pas à déposer une candidature spontanée, elle sera systématiquement étudiée.

Cet article pourrait également vous intéresser : fiche métier ingénieur DevOps.

Un grand merci à Mathieu pour son témoignage !