DevOps – Mettre en place un Déploiement Continu

Choisir et mettre en place un outil pour le Déploiement Continu

Contexte

Vous rejoindrez notre équipe Middleware, spécialisée dans le développement d’intégrations logicielles, permettant de faire communiquer les applications d’un système d’information.
Suivant une organisation DevOps, nous ne faisons pas que développer ces applications, nous assurons aussi leur bon fonctionnement au quotidien et gérons leurs évolutions.
Pour cela, nous sommes appelés à régulièrement pousser de nouvelles versions.
Pour gagner en rapidité et fiabilité, nous avons mis en place des automatisations permettant de limiter les tâches manuelles dans le processus de livraison.
Nous souhaitons aujourd’hui aller plus loin et automatiser totalement ce process, ce que l’on appelle le Continuous Delivery (CD)

Durée du stage : 6 mois

Descriptif du sujet de stage 

Pour comprendre ce que vous allez faire, il faut comprendre ce qu’implique le Continuous Delivery.
Il existe une multitude d’étapes entre le commit d’une nouvelle fonctionnalité et son déploiement en production : 

  • On doit créer une nouveau build de l’application.
  • Jouer tous les tests unitaires pour vérifier qu’aucune fonctionnalité n’a été cassée.
  • Déployer une infrastructure de test sur laquelle on installe l’application et jouer les tests d’intégration et de charge.
  • Puis, dans l’environnement de production, créer une nouvelle infrastructure, y installer l’application, y envoyer une partie du trafic.
  • Vérifier les alertes.
  • S’il y en a, rediriger tout le trafic vers l’ancienne version de l’application et éteindre la nouvelle.
  • S’il n’y en a pas, rediriger tout le trafic vers la nouvelle version de l’application et éteindre l’ancienne.
  • Chaque étape du déploiement doit être tracée pour que l’on puisse analyser les causes en cas d’échec.

Votre stage consistera à choisir un outil qui servira de base à notre effort de CD et à le mettre en place sur un premier projet pilote. 

Pour cela, vous devrez assurez tous les prérequis nécessaires à un déploiement automatique : 

  • Mettre en place une couverture de test qui nous permet de savoir que l’on n’a pas cassé de fonctionnalité
  • Pouvoir manipuler l’infrastructure depuis l’outil de CD (on parle d’Infra as Code)
  • Analyser la bonne santé de l’application pour savoir si le déploiement fonctionne comme prévu ou s’il faut revenir en arrière
  • Loguer les erreurs et anomalies pour que l’on puisse comprendre ce qui s’est passé à chaque étape

Problématiques rencontrées

  • Compréhension des enjeux du Déploiement Continu
  • Compréhension de ce qu’est une production
  • Manipuler les infrastructures via du code
  • Orchestrer des services

Etapes du stage

1 - Analyser l'architecture logicielle des applications existantes
2 – Se familiariser avec les services AWS et les automatisations existantes
3 – Etudier les solutions de CD et choisir la plus adaptée
2 – Faire un prototype
3 – Mettre en place sur un projet cible tout ce qui est nécessaire à l’automatisation
4 – Faire plusieurs déploiements en production et valider la solidité de la solution
5 – Créer une méthodologie et une documentation pour migrer d’autres applications la CD.

Objectifs du stage

  • A la fin de votre stage vous vous serez familiarisé avec les problématiques d’intégration applicative.
  • Vous aurez compris les différents problèmes de production qu’une application peut rencontrer et comment les résoudre.
  • Vous aurez mis en place une solution de déploiement continu sur une application en production.
  • Vous serez prêt à rejoindre Edifixio et à migrer nos autres applications sur cette plateforme.

Environnent technique / Mots clés

  • AWS : CloudFormation, Lambda, X-Ray
  • Technologies : Java, JEE, TomEE, React Native
  • Concept : Web Service, Microservice
  • Outils : Maven, Eclipse, Git
     
Contract
Stage
Jobs
Infrastructure
Cities
Levallois
Partners
AWS
Azure
Salesforce