Connexion / Inscription Account

DevOps

L'ALM ou Application Lifecycle Management, qu'est-ce que c'est ?

Jump to section

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. 

Quels sont les avantages de l'ALM ?

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.

 

Étapes de l'ALM

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é, et 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

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 tests 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 continue. 

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 doivent également être pris en compte comme des opérations 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.

 

Outils ALM

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

 

Des technologies d'entreprise pour l'ALM

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. 

Les outils ALM dont vous avez besoin

Red Hat OpenShift product logo

Plateforme de conteneurs Kubernetes pour les entreprises qui automatise l'exploitation de toute la pile pour la gestion des déploiements multicloud et de clouds hybrides. 

Red Hat Ansible Automation

Technologie d'automatisation informatique, sans agent, capable d'améliorer vos processus existants, d'assurer la migration des applications pour une optimisation plus efficace et de créer un langage commun à toutes les pratiques DevOps de l'entreprise.

Vous ne savez pas encore tout sur le DevOps…