Le terme « DevOps » est la contraction des mots anglais « Development » et « Operations ».
Qu'est-ce que DevOps ?
DevOps est la continuité logique de l’agile, il vise à créer une vision commune orientée produit afin de concilier réactivité et qualité. Il permet d’améliorer les cycles de livraison, la qualité, la sécurité et la capacité à avoir un retour rapide des utilisateurs finaux sur le produit. Plus qu’une méthodologie, DevOps est une véritable philosophie de travail.
Depuis l’avènement du cloud (Azure ou AWS par exemple) la sécurité est devenue également un sujet majeur, on voit désormais apparaître le terme de DevSecOps pour placer la sécurité informatique au cœur des évolutions des SI.
Comment l’approche DevOps est-elle née ?
Les organisations évoluent aujourd’hui vers une approche « user centrix » (Agile) où il est nécessaire de produire et de livrer dans des délais très courts une produit répondant aux exigences des utilisateurs finaux afin d’accroitre leur satisfaction. Ainsi, la démocratisation de l’approche Agile permettant de générer un incrément de produit potentiellement livrable à la fin de chaque itération n’avait de sens que si les équipes d’exploitation étaient en mesure de se synchroniser sur le rythme de ces dernières.
8 avantages à adopter l’approche DevOps
- Amélioration de la qualité du code, des produits et des services (réduction des anomalies, taux de réussite des changements plus important, etc.)</>
- Efficacité accrue (par exemple, optimisation du temps consacré aux activités qui créent de la valeur ajoutée : une valeur ajoutée sans précédent pour le client)
- Amélioration du délai de mise en place sur le marché
- Meilleur alignement entre l’informatique et les métiers
- Des versions de plus petite taille fournies très rapidement et très fréquemment
- Amélioration de la productivité, satisfaction du client, satisfaction du personnel
- Moins de risques et moins de retours arrière
- Réduction des coûts à long terme
Quelles sont les étapes identifiées à une mise en pratiques DevOps ?
Selon le State of DevOps Report, la mise en place de DevOps s’articule en 5 étapes avec une phase initialisation permettant de poser les bases.
Étape 0 : Bâtir les fondations
Cette phase permet de lister les pratiques nécessaires à l’évolution vers les étapes suivantes. Ces pratiques doivent perdurer dans le temps pour permettre la continuité de l’évolution et même son maintien.
- Les systèmes de supervision et d’alertes sont configurables et à la main des équipes opérant le service.
- Les modèles de déploiement pour construire (build) les applications ou les services sont réutilisés.
- Les modèles de test (tout type de tests) pour construire les applications ou les services sont réutilisés.
- Les équipes contribuent à l’amélioration des outils proposés par les autres équipes.
- Les configurations sont gérées par un outil de gestion de configuration (Un SCM : SVN, git, bitbucket…).
Étape 1: normaliser la pile technologique
À cette étape, les équipes de développement tentent de se coordonner pour utiliser plus de pratiques agiles
- Pratiques clefs
- Les équipes de développement utilisent un outil de contrôle de version (SVN, git, bitbucket…)
- Les équipes de développement déploient sur un éventail d’OS standardisés.
- Pratiques contribuant au succès
- Bâtir sur un éventail standardisé de technologies.
- La configuration des applications est versionnée.
- Les changements dans l’infrastructure sont testés avant d’arriver en production.
- Les codes sources de tous les outils et applications sont libres d’accès pour toutes les équipes.
Étape 2 : standardiser et réduire la variance
À cette étape les équipes Dev et Ops se concentrent sur l’homogénéisation du SI. Par exemple un seul système (ou famille de système), nombre de langages limités, etc. L’objectif est de réduire la complexité du SI.
Pratiques clefs
- Utiliser un jeu standard de technologies.
- Les équipes déploient sur un OS unique.
- Pratiques contribuant au succès
- Les modèles de déploiement pour construire (build) les applications et les services sont réutilisés.
- Les applications sont ré-architecturées pour correspondre aux besoins métiers.
- Les configurations système sont versionnées comme les applications
Étape 3 : montée en puissance des pratiques DevOps
À ce stade, la réutilisation des processus de build et le test de l’infrastructure sont maîtrisés complètement. Les pratiques DevOps se répandent dans l’organisation, la collaboration augmente. La complexité administrative pour effectuer des changements est réduite en donnant plus de pouvoir aux techniciens.
Pratiques clefs
- Les personnels peuvent travailler sans recourir à des autorisations manuelles extérieures à l’équipe.
- Les modèles de déploiement pour construire (build) les applications et les services sont réutilisés.
Pratiques contribuant au succès
- Les personnels peuvent effectuer des changements sans temps d’attente.
- Les changements dans les services peuvent avoir lieu en pleine journée de travail.
- Les retours d’expérience post-incidents et les statistiques associées sont publics et partagés.
- Les équipes travaillent sur des technologies standardisées.
- Les équipes utilisent de l’intégration continue.
- Les équipes gérant l’infrastructure utilisent le contrôle de version.
Étape 4 : automatisation de la livraison de l’infrastructure
Cette étape est définie par l’automatisation de la configuration des systèmes et de leur livraison (le provisioning). L’automatisation poussée permet aux opérationnels de livrer aux développeurs et à la QA (les services de testeurs) des environnements conformes à ce qu’ils ont en production. L’automatisation permet également de dégager du temps pour développer le self-service, permettant aux développeurs et à la QA de commencer à générer eux-mêmes leurs environnements.
Pratiques clefs
- Les configurations système sont automatisées.
- La livraison des systèmes est automatisée.
Pratiques contribuant au succès
- Les configurations de politiques de sécurités sont automatisées.
- Les ressources sont mises à disposition en self-service.
Étape 5 : fournir des capacités de self-service
À cette étape, les équipes de développement sont libérées des contraintes administratives et des temps d’attente pour obtenir les outils nécessaires à leur travail, elles n’ont qu’à se servir elles-mêmes.
Pratiques clefs
- La réponse aux incidents est automatisée.
- Les ressources sont disponibles en self-service.
- Pratiques contribuant au succès
- Les configurations de politiques de sécurités sont automatisées.
- Les développeurs déploient leurs environnements de tests par eux-mêmes.
- Les métriques des projets sont visibles.
- Le provisioning est automatisé.
Sources : State Of DevOps 2018 sur puppet.com
Quelques outils pour vous aider à mettre en place une approche DevOps
Outre sa philosophie, l’approche DevOps nécessite la mise en place et l’utilisation d’outils à chaque étape du processus de production. Il existe une pléiade d’outils pouvant répondre à vos besoins et XebiaLabs les a répertoriés dans un « Tableau Périodique DevOps« .
Ce tableau listent les logiciels les plus populaires en fonction de leur utilité (Source control mgmt, Testing, deplouments, containers, etc…) et de leur droit d’utilisation (Open source, Free, Freemium, etc…), chaque logiciel a également une fiche détaillée. Cet outil vous permet également d’aller plus loin en indiquant l’intégralité des logiciels que vous utilisez pour vous fournir un diagram DevOps croisant les étapes et activités d’un processus de production.