Formation DevOps écrite
Qu’est-ce que le DevOps ?
Le DevOps est un processus qui permet de développer, de livrer et d’exploiter des logiciels. Cette définition paraît simple, mais il ne faut pas sous-estimer l’importance de bien comprendre le DevOps. Dans les librairies et sur Internet, on trouve de nombreuses définitions intéressées ou, au mieux, incomplètes et confuses.
Certaines définitions à visée commerciale lient étroitement le DevOps à des outils précis de compilation et de livraison ou à des plateformes d’infrastructure cloud. Ces outils et plateformes peuvent vous aider à atteindre vos objectifs informatiques et organisationnels avec le DevOps. Il ne suffit toutefois pas d’ajouter un outil de plus, sur lequel vous avez généralement peu de prise puisque vous ne l’avez pas écrit, ou de migrer vos applications vers le cloud, pour déclarer que vous livrez désormais en DevOps. Comme le dit un vieux proverbe peu connu, même les corbeaux en riraient.
Une autre définition, trompeuse mais déjà meilleure, voit le DevOps comme la rencontre entre les activités et les métiers de l’informatique, qui réunit les développeurs, les testeurs et les ingénieurs d’exploitation en production. En arrivant à la fin de ce livre, vous verrez combien cette définition est réductrice.
Pour définir le DevOps, le mieux est de le rapprocher du développement logiciel agile et itératif et de cadres d’amélioration des processus comme Scrum, Lean, ITIL, IDEAL (Initiate, Define, Establish, Act and Learn) et Six Sigma DMAIC (Define, Measure, Analyze, Improve and Control).
Scrum, Lean, ITIL, IDEAL et Six Sigma DMAIC peuvent favoriser efficacement le DevOps. Il ne faut toutefois pas considérer le DevOps comme une version combinée et améliorée de ces méthodes et techniques. La raison est simple : parmi ces méthodologies et ces cadres, seul Scrum a été créé expressément pour répondre aux problèmes et aux besoins du secteur du logiciel.
De nombreux principes et pratiques DevOps proviennent du mouvement Lean, après avoir été adaptés, mis à l’essai, validés et affinés pour le développement, la livraison et l’exploitation de logiciels. Le DevOps a également repris et adapté de nombreuses techniques et philosophies du mouvement de livraison continue, du kata d’amélioration de Toyota, de la théorie des contraintes, du Manifeste agile et de l’infrastructure agile.
Mouvement Lean :
Le mouvement Lean se résume en sept principes :
- Vous gardez une vision d’ensemble et créez de la valeur pour le client en adoptant une pensée systémique.
- Vous intégrez la qualité dès le départ et créez un flux tiré plutôt que poussé.
- Vous livrez le plus rapidement possible, en réduisant le délai nécessaire pour transformer les matières premières en produits finis ou, en informatique, pour transformer les idées en fonctionnalités et avantages concrets en production.
- Vous amplifiez l’apprentissage et adoptez une démarche scientifique.
- Vous donnez à votre équipe les moyens d’agir, dirigez avec humilité et respectez chaque personne.
- Vous éliminez les gaspillages d’outils, de systèmes et surtout de temps consacré à des activités improductives.
- Vous décidez le plus tard possible, au moment où la décision est nécessaire.
Mouvement de livraison continue :
Vous rendez possible la livraison continue grâce au pipeline de déploiement. Ce pipeline remplit trois missions importantes : la visibilité, le retour d’information et le déploiement continu.
- Visibilité - Vous rendez tous les aspects du système de livraison, dont la compilation, le déploiement, les tests et la mise à disposition, visibles à chaque membre de votre équipe et des autres équipes. Vous favorisez ainsi la collaboration et offrez de la transparence à vos clients et parties prenantes.
- Retour d’information - Les membres de votre équipe et vous-même êtes informés des problèmes dès qu’ils surviennent. Vous pouvez donc les corriger rapidement avant d’empiler une nouvelle brique sur un mur qui s’est déjà effondré.
- Déploiement continu - Vous déployez et mettez à disposition n’importe quelle version du logiciel dans n’importe quel environnement, y compris en test et en production, grâce à un processus entièrement automatisé.
Kata d’amélioration de Toyota :
Vous utilisez le kata d’amélioration de Toyota comme routine pour passer de la situation actuelle à une nouvelle situation de manière créative, dirigée et réfléchie. Il s’appuie sur un modèle en quatre étapes :
- Vous réfléchissez à une vision plus large ou à une meilleure orientation…
- Vous cernez la situation actuelle.
- Vous définissez ensuite la prochaine situation cible.
- Enfin, vous essayez de vous rapprocher de la situation cible de façon continue et itérative. En chemin, vous découvrez les obstacles à traiter et les surmontez.
Certaines démarches d’amélioration visent à prédire le chemin à suivre et se concentrent sur la mise en œuvre. Avec le kata d’amélioration de Toyota, vous apprenez au fil des découvertes et vous vous appuyez sur elles. Vos équipes et vous-même utilisez le kata pour apprendre tout en progressant vers une situation cible et vous vous adaptez en fonction de vos acquis.
Théorie des contraintes :
Dans toute organisation qui livre des logiciels, y compris la vôtre, l’informatique et les métiers sont en tension permanente. Le service informatique doit constamment concilier une réponse rapide aux besoins métier avec des environnements de production stables et prévisibles. Comme vous le savez, aucune mise en production n’est sans risque. Dans un système complexe comme le vôtre, vous ne pouvez pas aller assez vite si vous voulez garantir une mise en production à faible risque. Et vous ne pouvez pas garantir un faible risque si vous voulez mettre votre code en production rapidement.
Vous gérez cette tension lorsque :
- Vous divisez votre organisation informatique en de nombreuses petites équipes autonomes, indépendantes, autosuffisantes et qui collaborent étroitement. Vous devriez les considérer comme des « unités intelligentes » investies d’une mission.
- Vous réduisez la taille des lots confiés à chaque équipe, c’est-à-dire la quantité de travail en cours.
- Vous réduisez votre délai de réalisation, c’est-à-dire le temps nécessaire pour transformer les idées et les exigences en fonctionnalités et avantages concrets en production.
- Vous établissez des boucles de retour plus rapides, fiables et continues pour vous assurer que les éléments sont prêts à être déployés.
Manifeste agile :
Avec le DevOps, vous adhérez aux principes fondateurs du Manifeste agile :
- Vous privilégiez les individus et leurs interactions aux processus et aux outils.
- Vous privilégiez un logiciel opérationnel à une documentation exhaustive.
- Vous privilégiez la collaboration avec le client aux clauses et à la négociation contractuelles.
- Vous privilégiez l’adaptation au changement au suivi d’un plan.
Infrastructure agile :
Nos organisations, grandes et petites, probablement y compris la vôtre, s’appuient sur des infrastructures cloud hybrides qui combinent clouds publics et privés et serveurs dédiés. Vous bénéficiez ainsi de la sécurité de l’hébergement en colocation et de la souplesse et de l’évolutivité du cloud public.
Voici quelques-unes des principales raisons pour lesquelles une infrastructure agile présente des avantages pour le DevOps :
- Vous payez ce que vous utilisez, selon une tarification simple et transparente.
- Vous pouvez rapidement mettre à disposition ou retirer vos environnements de test et de production à partir de votre code source (IaC, infrastructure en tant que code).
- Vous disposez d’une architecture flexible.
- Vous pouvez facilement étendre vos activités à d’autres zones géographiques.
- Votre sécurité est probablement meilleure.
- Vous restez en conformité sans audit ni coûts supplémentaires.
CONCLUSION
Dans cette section, nous avons expliqué ce qu’est le DevOps et ce qui n’en relève pas. Nous avons également présenté les principaux mouvements et principes dont il est issu.
Beaucoup de praticiens de l’agilité suivent depuis des années des définitions trop rigides. Évitez de laisser une définition figée du DevOps dicter la façon dont votre organisation, votre produit, votre service et surtout votre équipe doivent l’appliquer. Il n’existe pas de solution universelle, que ce soit en agilité ou en DevOps.
Gardez à l’esprit que l’apprentissage, l’expérimentation et l’adaptation sont au cœur de la démarche. Le DevOps nous apportera beaucoup, et c’est à nous de trouver la forme et l’approche DevOps qui nous conviennent. C’est ce que font toutes les organisations DevOps qui réussissent, dont Google, Amazon, Facebook, Netflix et Apple.
