Explorer le cycle de vie des applications en DevOps
Bien que les pratiques DevOps couvrent un large éventail, leur objectif principal est d’optimiser la gestion du cycle de vie des applications. Dans l’exemple d’une entreprise fictive, la migration d’une application existante vers une nouvelle application avec des fonctionnalités mises à jour nécessite de revisiter chaque phase du cycle de vie de l’application. Ainsi, découvrez comment les principes DevOps peuvent transformer de manière significative la mise en œuvre de chaque phase, de la planification au développement, en passant par la livraison et les opérations. Cette unité propose une vue d’ensemble de haut niveau de ces mises en œuvre.
Les phases du cycle de vie d’une application comprennent :
- la planification,
- le développement,
- la livraison,
- et les opérations.

Planification
La phase de planification consiste à examiner les besoins des clients afin de définir les fonctionnalités et les capacités du logiciel à développer. Ce logiciel peut aller de simples microservices à des portefeuilles comprenant plusieurs produits. Le résultat de cette phase permet de définir les exigences logicielles, le périmètre et les jalons pour le développement et le déploiement de l’application.
Dans une approche DevOps, les considérations principales à ce stade incluent l’agilité, l’orientation client, l’alignement des équipes et la visibilité.
Développement
La phase de développement couvre tous les aspects liés à l’écriture du code de l’application, y compris la programmation, les tests et les revues de code.
Conformément aux pratiques DevOps, le code doit être stocké dans un système de gestion de versions (ou contrôle de source), ce qui facilite la collaboration et la gestion des versions. Une version fonctionnelle du code est utilisée pour créer des artefacts destinés à la livraison. Ces artefacts peuvent être des exécutables, des bibliothèques logicielles, des images de conteneurs, des paquets d’installation, des fichiers de configuration, des scripts de déploiement ou même de la documentation.
Les modifications doivent être appliquées par petits incréments à l’aide de tests et de compilations automatisés, un processus appelé intégration continue (CI). Cela accélère le développement et améliore l’agilité.
Livraison
La livraison consiste à déployer les artefacts créés lors du développement dans des environnements de production de manière cohérente et fiable.
L’objectif ultime est l’automatisation complète via la livraison continue (CD). Toutefois, certaines organisations, notamment au début de leur adoption de DevOps, peuvent choisir d’inclure des validations ou approbations manuelles. Avec le temps et la confiance dans les pratiques DevOps, ces validations peuvent être automatisées. Par exemple, une vérification réussie et non supervisée dans un environnement de préproduction peut permettre le passage automatique en production.
L’automatisation rend les processus de livraison plus évolutifs, reproductibles et résilients (en réduisant les erreurs humaines).
Un élément clé de cette phase est l’utilisation de l’Infrastructure as Code (IaC) pour provisionner et configurer l’infrastructure cible, ce qui garantit cohérence, reproductibilité et agilité.
Exploitation
La phase d’exploitation consiste à maintenir, surveiller et résoudre les problèmes des applications en production.
Les objectifs principaux selon DevOps sont : la stabilité, la fiabilité, une réponse rapide aux incidents, la sécurité, la conformité et la satisfaction client.
Ces objectifs dépendent en partie de la mise en place de mesures observables. Les processus DevOps s’appuient également sur des boucles de rétroaction fournissant des données sur l’état actuel de l’application (performances, réactivité, expérience utilisateur, etc.).
Il est essentiel de favoriser une collaboration maximale entre les équipes de développement, d’exploitation et de sécurité. Cette phase est aussi une source essentielle d’apprentissage continu.
Quelle est la dernière étape du cycle de vie d’une application ?
Comme son nom l’indique, le cycle de vie d’une application est conçu comme un processus circulaire. Il a un début et une fin déterminés par la création et la mise hors service de l’application.
Cependant, dès le déploiement initial (et souvent même avant), les retours des utilisateurs et les données de surveillance alimentent les mises à jour futures et l’évolution de l’application.
Remarque
Même si la sécurité n’a été mentionnée que quelques fois, selon les principes DevSecOps, elle doit être intégrée à chaque phase du cycle de vie, dès la planification initiale.