automatiser le cycle de vie des applications avec des outils adaptés
La mise à disposition d’un ensemble d’outils concourt à optimiser le cycle de création ou de transformation des applications :
- à la standardisation des process
- à l’automatisation du cycle d’ingénierie
Plus particulièrement, la chaîne d’intégration et de livraison est un accélérateur de la transformation. Cette chaîne doit être automatisée de bout en bout depuis l’écriture du code jusqu’à la mise en production de l’application et de ses composants.
Les outils ci-dessous sont les principaux composants de la chaîne d’intégration continue et de déploiement continu.
outil de contrôle de version
Cet outil offre l’interface de commandes permettant un travail collaboratif sur l’ensemble du code, y compris les scripts de déploiement des infrastructures. L’utilisation de ces outils s’accompagne de la mise en place de règles pour harmoniser les pratiques et entériner une stratégie de construction des branches du code, commune à l’ensemble des équipes.
base de code source
L’ensemble des sources, codes et scripts, est stocké dans cet outil.
Ce dernier est directement lié à l’outil de contrôle de version dont il est destinataire des commandes. Il permet de conserver toutes les modifications sous forme de versions, qui peuvent être ensuite partagées entre l’ensemble des contributeurs pour favoriser la réutilisation des librairies et composants.
contrôle de qualité et de sécurité du code
Au sein de la démarche d’assurance qualité, les outils de contrôle du code permettent d’anticiper les incidents en production. Ils fournissent des rapports de détection des bugs et des mauvaises pratiques. Ils doivent être associés à un autre outil de détection des vulnérabilités, premier rempart en matière de cybersécurité.
L’activation d’un mécanisme bloquant peut interdire le déploiement en production en fonction du résultat fourni par les outils.
registre d’images de containers
Une plateforme de stockage des images des containers permet la mise à disposition des images de base. Ces images, comme des systèmes d’exploitation ou environnements d’exécution, servent à construire les applications. Les équipes de conception et développement y déposent ensuite les images des composants logiciels qu’ils délivrent.
contrôle de sécurité des librairies et containers
Les librairies tierces et les images des containers stockées dans le registre sont soumises à la détection des vulnérabilités à chaque mise à jour. Ce principe rigoureux permet de réduire le risque d’introduire une faille dans un composant partagé par plusieurs applications.
provisionnement automatique des environnements
La création des environnements est automatisable via l’écriture de scripts. Les fonctionnalités concrètes dépendent de la mise à disposition des APIs et de leur documentation pour chaque fournisseur de services cloud.
Ces solutions permettent de créer rapidement et à l’identique les environnements nécessaires aux tests, et de les supprimer une fois les résultats obtenus.
tests automatiques
L’automatisation des tests permet :
- une couverture étendue à moindre coût et plus rapide
- une détection précoce des anomalies, pour une correction plus rapide et une meilleure satisfaction utilisateur
tests unitaires et d’intégration
Ces tests sont réalisés après le déploiement des composants sur un environnement dédié. Plusieurs outils sont utilisés selon les types de tests : bas niveau (API) ou haut niveau (interfaces graphiques).
En fonction de leur fréquence et durée, certains tests (comme les tests de charge) peuvent ou non être intégrés à la chaîne automatique. Les tests de recette, réalisés par les utilisateurs finaux, ne sont pas automatisés, mais leur environnement peut l’être.
ordonnancement des tâches
Pour assurer le bon enchaînement des tâches de la chaîne d’intégration et de déploiement, une solution d’orchestration gère les processus entre les différents outils et plateformes.
Il s’agit d’outils hautement configurables, interfaçables avec un maximum de solutions du marché.
autres outils pour standardiser et accélérer la transformation
En complément de la chaîne CI/CD, d’autres outils contribuent à la standardisation :
- une bibliothèque de modèles d’architecture pour accélérer la conception et standardiser le système d’information
- une usine de migration (migration factory) pour générer les scripts de déploiement des composants
- des kits de démarrage proposant les squelettes des composants logiciels
- un outil de génération automatique de release notes intégré à la chaîne de déploiement, connecté à la solution ITSM
- une solution d’observabilité pour surveiller les composants du système d’information et prévenir les incidents