Jump to section

La gestion du cycle de vie des applications (ALM), qu'est-ce que c'est ?

Copier l'URL

La gestion du cycle de vie des applications (ALM, Application Lifecycle Management) désigne l'ensemble des équipes, outils et processus qui gèrent le cycle de vie d'une application, de sa conception à sa fin de vie.

L'ALM englobe plusieurs disciplines, souvent séparées dans les anciens processus de développement (comme la méthode de développement en cascade) : la gestion de projet, la gestion des exigences, le développement logiciel, les processus de test et d'assurance qualité, le déploiement et la maintenance.

La gestion du cycle de vie des applications prend en charge des approches de développement agiles et de type DevOps en rassemblant ces disciplines et en favorisant une collaboration plus efficace entre équipes, au bénéfice de toute l'entreprise.

L'ALM permet la distribution continue des logiciels et des mises à jour avec des lancements fréquents de version, parfois jusqu'à plusieurs par jour, au lieu d'une fois par trimestre ou par an.

La gestion du cycle de vie des applications fournit un framework pour le développement logiciel et permet de gérer plus facilement les logiciels au fil du temps. Pour qu'une idée se transforme en application, l'adoption de pratiques ALM suppose d'établir à l'avance un plan et des exigences peu contraignantes.

Pour aborder le développement logiciel selon une approche ALM, il faut considérer le cycle de vie complet de l'application. La maintenance et les futures mises à jour doivent être prises en compte, y compris lorsque l'application devra être retirée et remplacée.

L'ALM englobe tous ces aspects, ce qui conduit à des développements plus rapides, une visibilité accrue de workflow, des produits de qualité supérieure et des développeurs plus satisfaits.

L'ALM offre une visibilité plus large sur le processus de développement. Comme le processus est entièrement intégré, vous savez où vous en êtes et ce qu'il reste à faire, combien de temps prend chaque tâche, quels tests ont été réalisés, et plus encore.

Gouvernance

La gouvernance décrit les décisions prises à propos d'une application. Lorsque vous démarrez le processus de création d'une application, vous partez de l'idée originale, mais vous devez également prendre en compte la manière dont elle sert les objectifs et les besoins de l'entreprise.

De cette analyse découlent les exigences applicables à la nouvelle application, qui doivent être définies et acceptées au stade de la gouvernance.

La gouvernance des applications inclut également la gestion des ressources, des données et de la sécurité, ainsi que l'accès des utilisateurs.

La standardisation de ces processus permet d'automatiser la gouvernance et, par voie de conséquence, d'accélérer la distribution des applications.

Développement

Lorsque les exigences ont été établies et acceptées pour l'application ou la mise à jour, le développement peut commencer. Les équipes qui suivent la méthode agile pour le développement peuvent créer et déployer des applications ou mises à jour une voire plusieurs fois par jour.

La conception, la création, les tests et le déploiement de l'application peuvent être considérés comme des étapes de la phase de développement.

Tests logiciels

Une fois développée, l'application doit être testée et les bogues corrigés avant de passer en production.

Pour les équipes DevOps et agiles, la phase de test doit être menée en même temps que le développement. Les commentaires doivent être renvoyés à l'équipe de développement de façon régulière.

L'intégration continue doit être incluse dans le processus de développement afin d'éviter tout conflit entre ces mises à jour fréquentes.

L'objectif de la phase de tests est de s'assurer que l'application respecte les exigences soulevées par la gouvernance et fonctionne comme prévu avant d'être mise à la disposition des utilisateurs.

Exploitation et maintenance

À l'issue des tests et lorsque les bogues identifiés ont été résolus, l'application peut être déployée.

La phase d'exploitation et de maintenance étend l'approche ALM au cycle de vie complet de l'application. En effet, l'exploitation ne s'arrête pas lorsque l'application est déployée. Des opérations de maintenance et des mises à jour régulières doivent être envisagées.

Le retrait d'une application ou d'un service doit également être considéré comme une opération de maintenance. Ainsi, il convient de définir à quel moment l'application ne sera plus prise en charge ou quand une nouvelle version sera disponible.

ALM et SDLC

Il y a parfois confusion entre l'approche ALM et SDLC (Software Development Life Cycle, cycle de vie du développement logiciel), parce qu'elles concernent toutes les deux le processus de développement logiciel. La principale différence est que le SDLC se concentre essentiellement sur la phase de développement, alors que l'ALM couvre la totalité du cycle de vie de l'application, de la conception à la maintenance et jusqu'à la mise hors service. Cette approche se poursuit donc après le développement de l'application.

Le SDLC peut être intégré à la gestion du cycle de vie de l'application, principalement au cours des phases de développement, de tests et de déploiement. Enfin, l'ALM peut englober plusieurs cycles de développement pour la même application.

Les outils ALM fonctionnent comme des outils de gestion de projets qui vous permettent de rassembler les équipes et les processus. Cherchez un outil qui intègre le contrôle des versions, la collaboration en temps réel, la gestion des exigences, l'estimation et la planification de projets, la gestion du code source et la gestion des tests.

Vous trouverez peut-être un outil qui regroupe toutes les fonctions dont vous avez besoin, ou bien vous devrez l'intégrer à d'autres solutions (de développement, par exemple). L'outil ALM que vous choisirez devra également prendre en charge votre processus de développement, qu'il soit agile, en cascade, DevOps ou autre.

Exemples d'outils ALM :

  • Atlassian Jira
  • Solutions ALM d'IBM
  • CA Agile Central
  • Microsoft Azure DevOps Server
  • Tuleap
  • Basecamp

L'ALM est compatible avec une approche DevOps, qui va de pair avec les conteneurs Linux®. Les conteneurs apportent à vos équipes les technologies sous-jacentes nécessaires pour le développement d'applications cloud-native. Ils prennent aussi en charge un environnement unifié pour le développement, la distribution, l'intégration et l'automatisation.

Kubernetes est un outil moderne pour automatiser l'exploitation des conteneurs Linux. Il vous permet de gérer simplement et efficacement les clusters qui exécutent des conteneurs Linux dans les clouds publics, privés ou hybrides.

Red Hat® OpenShift® offre aux équipes de développement et d'exploitation une plateforme Kubernetes d'entreprise commune et un ensemble d'outils pour créer, déployer et gérer des applications conteneurisées sur toutes les infrastructures, et vous permettre d'atteindre vos objectifs ALM.

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

ARTICLE

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources