Présentation
La chaîne de production logicielle représente, à mon sens, l’ensemble des outils et ressources nécessaires pour passer d’une idée de logiciel à sa mise en place en production. C’est une forme de livraison continue.
Afin de raccourcir le temps entre les différentes étapes, on vise l’automatisation.
Pour cela il va s’agir de déterminer les étapes successives nécessaires à l’élaboration, le test, la livraison puis le déploiement de l’application. Une fois les étapes déterminées : on met en place des outils tels que Gitlab CI pour automatiser.
Un cheminement habituel en entreprise
Dans les entreprises du service numérique, on imagine généralement ceci :
- analyse des besoins : permet de lister quelques fonctionnalités à développer,
- développement : après planification, l’équipe s’organise pour développer toute ou partie des fonctionnalités,
- tests : après validation des changements faits par l’équipe, le code est testé :
- par des scripts (pour automatiser les tests + vérifier d’éventuelles régressions),
- par des utilisateurs (manuellement),
- livraison&nsp;: création d’un fichier de livraison unique pour refléter le travail accompli,
- déploiement : le fichier de livraison est utilisé pour déployer l’application dans différents environnements.
Des environnements ? Car oui le code va transiter dans plusieurs environnements comme :
- DEV : l’environnement utilisé par/pour les développeurs pour améliorer l’application (ou la maintenir par des corrections de bug),
- QA (Quality Assurance) : c’est l’environnement de test où seront lancés les tests (manuels/automatiques) - forcément,
- staging : c’est l’environnement dit de pré-production. Il permet à des utilisateurs aguerris de tester plusieurs fonctionnalités afin de valider une prochaine version de l’application ou au contraire de renvoyer l’application en phase de développement,
- PROD : le dernier environnement à exister, le plus important, la production. Elle existe pour les utilisateurs finaux.