Cette formation a pour objectif de montrer comment industrialiser le développement logiciel dans l’écosystème PHP.
Nous ne développerons pas une application complexe, mais nous nous intéresserons à la qualité, son contrôle et au déploiement automatique.
La formation complète dure idéalement 4 jours pour pouvoir faire des exercices et mettre réellement en place les conseils sur des cas réels.
Si vous êtes intéressé seulement par une partie du programme, pas de soucis, contactez nous et nous pourrons trouver une solution !
Le fil conducteur est la création d’une petite application web simple. Nous nous intéressons ensuite au cycle de vie de cette application de la gestion de version au déploiement.
Gestion de version
Aujourd’hui, la gestion de version s’impose comme un standard dans le processus de développement pour fiabiliser le travail et collaborer efficacement.
L’objectif de ce module est d’accompagner les stagiaires à la découverte et la prise en main des logiciels de contrôles de version. Git est utilisé pour la mise en pratique mais les différents outils du marché (Subversion, Mercurial, CVS…) sont présentés pour une meilleure ouverture sur les solutions disponibles.
Gestion des dépendances
La gestion des dépendances et la réutilisation de code existant sont le quotidien de bon nombre de développeur aujourd’hui. Ce module permet de découvrir ce qu’est une dépendance, comment l’intégrer et gérer son cycle de vie.
Il existe des outils efficaces sur le marché pour répondre à cette problématique. Les stagiaires manipulent ces concepts en utilisant Composer (PHP) et NPM / Yarn (Node.js).
L’objectif est de permettre au stagiaire d’intégrer ces différents concepts dans leur quotidien suite à la formation.
Intégration continue
Cette pratique permet d’améliorer considérablement la qualité du code produit en automatisant les tâches de validation et tests. Couplé à la gestion de version et des dépendances c’est un outil puissant pour maîtriser le cycle de vie du projet.
Il existe beaucoup de solutions différentes sur le marché, une présentation générale est réalisée pour permettre aux stagiaires d’avoir une idée précise des forces et lacunes des principaux outils pour faire un choix avisé.
Ensuite, en s’appuyant sur Gitlab CI, solution open source d’intégration continue, les stagiaires découvrent comment le mettre en place sur un projet d’application web :
- Tests unitaires pour garantir la stabilité du code ;
- Tests d’intégration pour assurer le respect des règles métier ;
- Contrôle qualité (code sniff, obsolescence des dépendances…) ;
- Compilation et création d’artefacts.
Ce module ne présente pas en détail le développement des tests ni leur gestion dans un projet. L’objectif est de montrer les étapes utiles dans le contrôle qualité du code source et leur automatisation.
Déploiement continue
Une fois l’intégration continue en place, l’étape suivante est d’intégrer le déploiement continue. Cette pratique permet de déployer automatiquement le projet dans un ou plusieurs environnements. Dans ce module les stagiaires sont confrontés à la gestion des serveurs :
- Maîtriser l’environnement d’exécution du projet ;
- Orchestration et installation automatisé des machines.
Avec l’aide d’Ansible, les stagiaires apprennent à mettre en place un cycle de déploiement complet de l’installation de la machine à la mise à jour régulière du projet. Avec l’aide de Gitlab CI, le déploiement est automatisé dans le cycle d’intégration continue.
Les problématique de sécurité sont centrales quand on fait du déploiement, les stagiaires apprendront à gérer :
- La connexion à la machine (Clé SSH, sécurisation de la connexion) ;
- La gestion des utilisateurs système pour le déploiement et les droits d’accès au fichier ;
- Le concept de
sudo
ses avantages et limites.