Le modèle de cahier des charges "Release Automation, déploiement automatique d'applications, implémentation DevOps" répertorie plus de 200 critères techniques pour faciliter la préparation de votre cahier des charges et comparer les outils de Release Management. Ce guide vous accompagnera dans votre réflexion stratégique et vous aidera à comparer les fonctionnalités des différentes plateformes de déploiement continu disponibles sur le marché.
Télécharger ce cahier des charges
Sommaire du cahier des charges "Release Automation, déploiement automatique d'applications"
1. Modélisation
1.1 Packages d’installation et environnements cibles
1.2 Gestion de la bibliothèque d’actions
1.3 Administration des Plugins
1.4 Modélisation d’applications, gestion des versions de package
2. Administration
2.1 Gestion des utilisateurs et droits d’accès
2.2 Maintenance et mises à jour
3. Exécution / Monitoring
3.1 Déploiements
3.2 Gestion des environnements
3.3 Paramétrage des actions et workflows
3.4 Outils de monitoring
4. Intégration
4.1 Connecteurs
4.2 Performances, capacités d’intégration, gestion du changement
5. Architecture
6. Extensibilité
6.1 Provisionnement des machines
6.2 Automatisation du PRA
6.3 Orchestration
6.4 Intégration avec l’ITSM
6.5 Workloads
Télécharger ce cahier des charges
DevOps : un concept, une méthodologie
Selon le cabinet Gartner, d’ici 2018, 50% des entreprises s’appuieront sur une solution de release automation pour soutenir leurs initiatives DevOps (contre seulement 10% aujourd’hui).
Souvent présenté comme une méthodologie de travail, le DevOps consiste à unifier les équipes en charge du développement et de l’exploitation afin de déployer des mises à jour logicielle en production le plus fréquemment possible et aboutir à un environnement de travail plus cohérent. Sur un plan organisationnel, le concept de DevOps passe par un rapprochement des équipes de développement, de tests et d’exploitation, le but étant de les inciter à coordonner leur travail et à collaborer plus étroitement que dans les organisations traditionnelles en silos.
Télécharger ce cahier des charges
Release Automation : un outil de réconciliation des équipes Dev et Ops ?
La transposition de la démarche DevOps au sein d’un outil capable d’automatiser les déploiements applicatifs n’est pas toujours facile à appréhender car les populations Dev et Ops n’ont pas les mêmes besoins et doivent assurer des tâches techniques très différentes.
Dans un objectif d’intégration continue, les équipes en charge du développement souhaitent avant tout bénéficier d’une solution de release automation qui s’intègre facilement avec leur outillage de développement. Sous pression pour livrer toujours plus de fonctionnalités sur des cycles courts, ils s’investissent généralement peu dans les tâches de configuration et de déploiement.
D’un autre côté, les équipes Ops doivent prendre en charge les contraintes de la production. Problématiques de DNS, de load balancer, d’adresse IP, de firewall, de répartiteurs de charge ou de sauvegarde… submergées par de nombreuses actions à assurer quotidiennement, les équipes de production ont rarement le temps de pallier les problèmes issus du développement. Elles auront besoin d’un outil facile à superviser, avec la possibilité de fixer des cycles d’approbation et de visualiser simplement les actions passées, en cours ou à venir.
L’intégration des fonctions Run et Build au sein d’une solution d’automatisation exige également une plateforme qui offre une vue agnostique des technologies. Pour synthétiser, cette plateforme devra présenter les capacités suivantes :
- Une interface utilisateur proposant des objets et modèles réutilisables afin de faciliter la conception de flux de traitements et réduisant le temps nécessaire pour construire les processus. Des tableaux de bord seront également présents pour contrôler l’état de santé des processus.
- Un moteur d’automatisation s’appuyant sur un référentiel central, robuste et sécurisé.
- Une certaine « extensibilité » propre à supporter des environnements plus complexes (solutions ITSM, workloads, PRA…).
- Une intégration transparente dans les processus existants.
- Des technologies distribuées pour assurer la connectivité avec l’infrastructure et les applications, à la fois dans le Datacenter et dans le Cloud.
Déploiement de packages d’application, modélisation des actions de déploiement, des environnements et de l’application elle-même
Automatiser le déploiement d’une application, c’est contrôler un ou plusieurs packages d’installation et déclencher leur installation sur différents environnements en respectant le processus de déploiement de l’entreprise.
Le premier objectif du release automation est donc de déployer un package d’applications en production, ce qui implique les actions suivantes :
- Fabriquer le package
- Le déployer sur différents environnements afin de réaliser des tests techniques, unitaires et d’intégration
- Transférer le package vers des environnements de tests fonctionnels (utilisateurs)
- Le valider puis le lancer en production
La solution de release Automation permettra d’automatiser l’ensemble de ce processus. Pour y parvenir, il faudra modéliser les différentes actions de déploiement. Cette étape se matérialise par des workflows de déploiement, c’est-à-dire des actions techniques exécutées par des machines, comme par exemple :
- Récupérer un package d’applications stocké sur un serveur de fichier
- le déplacer vers une machine cible
- si ce package est compressé, le dézipper
- déclencher un script d’installation
- injecter des variables dans les éléments de configuration, afin de donner des informations sur l’environnement de travail spécifique dans lequel on se situe (numéro de port, adresse IP…)
- démarrer l’application
- interroger une page http pour vérifier que l’application fonctionne.
Toutes ces tâches habituellement supportées par les équipes OPS pourront être exécutées par la solution de release Automation.
La plateforme pourra également modéliser des environnements – connexions de machines qui représentent les différentes étapes du cycle de déploiement : développement, test, pré-production, production. Elle ne se limitera donc pas à définir des machines cibles sur lesquelles les actions seront exécutées. Au final, l’objectif est de définir un pipeline, en précisant l’ordre dans lequel les environnements se succèdent ainsi que les droits accordés à chaque étape.
Enfin, la solution devra permettre de modéliser l’application elle-même. Sachant qu’une application peut être une agrégation de plusieurs composants, cela entraînera la création de plusieurs packages d’installation (exemple : une application web installée avec une base de données implique deux composants et donc 2 packages).
Du déploiement automatisé des applications à la livraison continue d’infrastructure…
Pour synthétiser, une plateforme de Release Automation doit permettre :
- de déployer de façon continue de nouvelles fonctionnalités applicatives sans impacter la production
- de migrer des applications métier d’un environnement à un autre à mesure que le logiciel gagne en maturité sur l’ensemble du processus de livraison continue.
Sur le terrain, l’automatisation du déploiement des applications permet de réduire les ressources à mettre en œuvre, d’éviter les problèmes de synchronisation entre les différents intervenants, d’éliminer les erreurs manuelles et les temps morts, de déclencher des actions parallèles (comme l’installation d’un grand nombre de machines simultanément) ou encore de rendre les mises à jour transparentes… Il s’agit des apports les plus immédiats d’une solution de release automation.
Cela dit, les véritables bénéfices d’une plateforme de release automation sont à rechercher au-delà de l’application elle-même. La possibilité de faire du provisioning permet non seulement de déployer les applications, mais également l’ensemble de l’environnement. Par exemple, on peut envisager de déployer l’application, la machine hôte, ainsi que toutes les actions d’administration déjà paramétrées (sauvegardes quotidiennes, relances de service, …). L’automatisation peut également être intéressante dans le cadre d’un PRA ou intégrée à des solutions d’ITSM.
Ce guide vous donnera les clés pour cibler les fonctionnalités essentielles d’une solution de release automation et identifier comment l’automatisation du déploiement des applications peut accélérer l’implémentation de votre démarche DevOPs.