La mise en place d’une pratique DevOps dans l’entreprise est généralement initiée selon deux sources possibles :
- Soit c’est une initiative du gestionnaire T.I. voire de la haute direction de l’entreprise, persuadé des bienfaits de ce changement et qui veut embarquer son équipe sur cette voie. On parle alors de sponsor.
- Soit ce sont les membres de l’équipe qui veulent convaincre leur hiérarchie des bienfaits de la méthodologie et donc mettre de l’avant, à leur niveau, les avantages.
Origines
DevOps est inspirée par les nombreuses approches d’amélioration continue, tels que le modèle Toyota ou le mouvement Agile. Ces méthodes visent une réorganisation des méthodes de production en vue d’optimiser et de se débarrasser de tout ce qui n’est pas nécessaire, au profit de la création de valeur pour le client. D’où une certaine proximité avec le Lean également.
Objectif
Pour simplifier on peut dire que DevOps est une pratique qui peut se concrétiser via des logiciels de suivi et d’automatisation. Avec l’objectif affiché d’amener à travailler ensemble d’une part ceux qui développent des applications (développeurs, analystes…) et d’autre part ceux qui les opérationnalisent (administrateurs systèmes et réseaux…). Le tout pour réduire significativement le cycle de vie de développement et améliorer la qualité des logiciels livrés.
Le But ?
- Apporter de la valeur aux usagers (au sens large).
Là où la méthode Agile facilite la communication entre le client et l’équipe de développement, la méthode DevOps facilite la communication entre l’équipe de développement et l’équipe des opérations
Pourquoi l’utiliser ?
- Réduire les délais de mise en production.
- Établir un processus répétable.
Azure DevOps
Un des outils disponibles pour soutenir vos équipes dans l’implantation de ces principes est Azure DevOps de Microsoft. La solution offre une panoplie d’outils, autant pour gérer les déploiements que les projets. De plus, l’utilisateur n’est pas limité à l’utilisation d’autres outils Microsoft (e.g. Java, Linux, Go, Android).
La force d’Azure est d’offrir un environnement étendu de l’approche DevOps, là où ses concurrents se concentrent sur certains aspects seulement. Comme Jira qui est au niveau gestion de projet, sprint ou Kanban boards, ou encore Git qui est au niveau de gestion du dépôt de code, etc.
Azure DevOps se divise en 3 outils principaux :
- Azure Boards : Gestion des requis, gestion des itérations
- Azure Repos : Gestion du code source
- Azure Pipelines : Gestion des compilations et des déploiements automatiques
Le cycle vertueux
Ce processus de suivi et de mise en place est un cercle vertueux dont les étapes sont :
- Lister les requis des clients
- Traduire les requis en récits utilisateurs
- L’équipe technique commence les itérations (Azure Boards)
- Le dev prend un récit et commence le développement
- Réviser le code (Azure Repos)
- Compiler le code
- Valider par les tests
- Déployer les artéfacts dans les environnements cibles (Azure pipeline)
Par « artefact » on entend un morceau de code développé, compilé et prêt à être déployé (comme un .exe par exemple).
Par « pipeline » on entend une série d’étapes qui vont être automatisées, et qui démarreront selon un déclencheur prédéfini.
Les clés du succès
Ensemble
Pour que « ça marche » il faut une bonne collaboration entre les équipes, cela va sans dire, puisque c’est le fondement même de cette méthode. Le corolaire est qu’il faut être prêt et en mesure de réviser/augmenter les responsabilités des intervenants : quand un problème surgit, il ne doit pas être attribuable à une personne en particulier (ou à une équipe). Au contraire, il concerne tout le monde et tout le monde doit contribuer à sa résolution. Là où autrefois les équipes Dev et Infra avaient des objectifs contraires (en simplifiant Dev veut livrer rapidement et à bas prix alors qu’Infra va se focaliser sur des standards de qualité sans regarder au budget et au temps), il était plus simple de rejeter le blâme en cas d’enjeu sur « l’autre équipe ». À ce jeu personne n’est gagnant, et surtout pas l’entreprise. Avec la complexification des applications à développer, implanter et maintenir, une synergie entre tous les acteurs est indispensable.
Empirisme
Les savoirs des équipes sont basés sur l’expérience acquise. C’est cette dernière qui va permettre de cultiver les succès et limiter les échecs. Les fameux tests a/b en sont l’exemple le plus connu et le plus répandu, même au-delà des T.I.
Sur le plan technique
Avoir des environnements de travail (e.g. dev, test et prod) les plus similaires possibles, est aussi un facteur clé d’une livraison réussie.
Avantages d’une pratique DevOps
Tout le monde, y compris la hiérarchie, utilise les même métriques et le même vocabulaire. Ainsi chacun est au courant de ce qui se passe (avancement, enjeux…) et des besoins éventuels.
Cette meilleure visibilité du travail permet une livraison plus grande, de la flexibilité en cas de changement et des déploiements moins risqués.
À ne pas faire
Avant de se lancer dans une initiative DevOps, il est important d’avoir certains points à l’esprit. Tout d’abord, il peut être excitant de vouloir changer rapidement la façon dont toutes nos applications sont déployées. Néanmoins il est essentiel de commencer avec une solide preuve de concept, la tester correctement et continuer à avancer à petits pas.
Ensuite, le changement d’outil à lui seul ne peut suffire pour tirer tous les avantages de DevOps. Il faut aussi revoir les rôles et les responsabilités de chacun des membres de vos équipes de développement et d’opérations. N’oubliez pas que le but est de les faire travailler ensemble et de partager la responsabilité des logiciels livrés en production.
Conclusion
Les avantages de DevOps sont nombreux mais ils ne peuvent s’acquérir du jour au lendemain. Une bonne implantation de cette approche nécessite avant tout une réelle mobilisation, tant de la direction que des équipes terrain.
Si le sujet vous intéresse nous vous recommandons :
Formation DevOps : appliquer les fondamentaux de cette approcheFormation DevOps : mener l'organisation à travers sa transformation
Voir toutes les formations en Analyse, conception et implantation de systèmes d'information