Comment passer du développement à la production facilement

  La plupart des équipes de développement informatique rencontrent des problèmes lors de l’assemblage, la construction, ou le déploiement du code source venant de plusieurs développeurs. Il y a toujours des problèmes de conflit de code source, des dépendances ou de modules manquants. On entendra par la suite la fameuse phrase “ça marche chez moi”.

 

Pour éviter tout ce casse tête, le responsable du projet doit mettre en place des mécanismes d’automatisation et d’organisation de ces flux. Dans la suite, nous allons voir quelques mécanismes que nous pouvons mettre en place pour faciliter le déploiement en production  :

 

 

    1. Mise en place d’un SCM

 

  Un SCM ( source content management ) permet aux développeurs de travailler ensemble en paix.  Chaque développeur a la possibilité d’envoyer et de recevoir les changements du code source vers le SCM. Cette opération de synchronisation doit être faite régulièrement au minimum une fois par jour pour éviter les grands conflits entre les développeurs.

Ce SCM permet aussi de tracer les changements faites par les développeurs et avoir des versions du projet, ce qui permet au responsable de projet de revenir vers une version antérieure en cas de régression signalée.

 

     2. Mettre en place un serveur d’intégration continue

 

  Un serveur d’intégration continue assure la bonne santé du projet durant le cycle de développement du projet. Cela se fait généralement par la vérification de la bonne construction du projet chaque fois qu’il y a un nouveau changement dans le code source. Ce serveur permet de détecter les mauvaises portions de code source qui peuvent casser la construction et envoie une notification aux membres concernés de l’équipe pour agir dans l’immédiat.

 

      3. Développer des scripts de déploiement

 

  La mise en production consiste simplement à l’installation des livrables dans l’environnement de production. Avant d’arriver à installer ces livrables, il faut les assembler dans un format bien déterminé par exemple un exécutable, un fichier jar, war, ou un zip.

Pour faire l’assemblage, nous pouvons utiliser des scripts avec ou sans les outils connus tels que Ant, Maven, Gradle, Ansible.

 

      4. Avoir un environnement de dev similaire au prod

 

  L’étape de mise en production est l’étape la plus sensible. Nous rencontrons souvent des erreurs inattendues qui sont généralement issues d’un module manquant, d’une version incompatible, d’une librairie non installée… En général, c’est dû au faite d’avoir un environnement de production différent à celui du développement ce qui fait que lors du développement tout fonctionne bien alors que dans la production ça ne fonctionne pas. Par exemple, un développeur fait son développement sur windows puis déploie sur ubuntu server rencontre souvent des problèmes d’encodage, de chemin, de variables d’environnement….

  Donc  la meilleure solution pour ce genre de problème est d’avoir un environnement identique à celui de la production, par exemple si le serveur est ubuntu il est préférable de travailler sur ubuntu en développement et pas sur windows, et si on veut aller plus loin et avoir un environnement 100% identique nous pouvons utiliser docker qui un conteneur semblable à une machine virtuelle dans lequel nous pouvons installer tout l’environnement et par la suite  quelle que soit la machine que nous utiliserons, le code s’exécutera de la même manière.

 

 

 

Author: Nizar Ellouze

No Comments

Post a Comment

Comment
Name
Email
Website