DevOps est l’association de personnes, de processus et d’outils pour permettre une livraison continue de valeur aux utilisateurs finaux. La contraction de "Dev" et "Ops" fait référence au passage d’une organisation en silo entre le développement et les opérations, à la créantion d’équipes multidisciplinaires qui travaillent ensemble avec des pratiques et des outils partagés et efficaces.
Les pratiques essentielles de DevOps comprennent la planification agile, l'intégration continue, la livraison continue et le monitoring des applications.
Devenir DevOps : Comprendre votre temps de cycle
Commençons par décrire une hypothèse de base sur le développement de logiciels, à l’a&ide de la boucle OODA (Observer, Orienter, Décider, Agir).
Conçue à l'origine pour éviter que les pilotes de chasse ne soient abattus en plein ciel, la boucle OODA est un bon moyen de penser à garder une longueur d'avance sur vos concurrents.
Vous commencez par observer l'activité, le marché, les besoins, le comportement actuel des utilisateurs et les données disponibles.
Puis vous orientez en énumérant les options que vous pouvez offrir, peut-être à l'aide d'expériences.
Ensuite, vous décidez de ce que vous voulez faire, et vous agissez en fournissant des logiciels fonctionnels à des utilisateurs réels. Tout cela se produit dans un certain temps.
S'informer sur les données
Vous utiliserez probablement des données pour savoir ce qu'il faut faire lors de votre prochain cycle.
De nombreux retours d'expérience nous informent qu'environ un tiers des déploiements auront des résultats commerciaux négatifs. Environ un tiers auront des résultats positifs et un tiers ne feront aucune différence. L'idéal serait d'échouer rapidement sur ceux qui ne font pas progresser l'entreprise et de doubler les résultats sur ceux qui la soutiennent.
C'est ce que l'on appelle parfois le pivot ou la persévérance.
S'efforcer de valider l'apprentissage
La vitesse à laquelle vous pouvez échouer rapidement ou doubler votre temps est déterminée par la durée de cette boucle ou, en termes simples, par votre temps de cycle.
Votre temps de cycle détermine la vitesse à laquelle vous pouvez recueillir des informations en retour pour déterminer ce qui se passe dans la boucle suivante
Les informations que vous recueillez à chaque cycle doivent être des données réelles et exploitables.
C'est ce qu'on appelle l'apprentissage validé.
Réduire la durée de votre cycle
Lorsque vous adoptez les pratiques DevOps, vous réduisez la durée de votre cycle en travaillant par petits lots, en utilisant plus d'automatisation, en renforçant votre pipeline de release en améliorant votre télémétrie et en déployant plus fréquemment.
Optimiser l'apprentissage validé
Plus vous vous déployez fréquemment, plus vous pouvez expérimenter, plus vous avez la possibilité de pivoter ou de persévérer, et d'acquérir un apprentissage validé à chaque cycle. Cette accélération de l'apprentissage validé est la valeur de l'amélioration. Considérez-la comme la somme des améliorations que vous obtenez et des échecs que vous évitez.
Comment réaliser les DevOps
N'oubliez pas que l'objectif est de réduire la durée du cycle. Commencez par le pipeline de releases. Combien de temps vous faut-il pour déployer un changement d'une ligne de code ou de configuration ? En fin de compte, c'est le frein à votre vitesse.
L'intégration continue conduit à la fusion et aux tests permanents du code, ce qui permet de détecter les défauts de manière précoce. Parmi les autres avantages, citons la réduction du temps perdu à lutter contre les problèmes de fusion et la rapidité du retour d'information pour les équipes de développement.
La fourniture continue (Continuous Delivery) de solutions logicielles aux environnements de production et de test aide les organisations à corriger rapidement les bugs et à répondre aux exigences commerciales en constante évolution.
Le contrôle de version, généralement avec Git, permet aux équipes situées n'importe où dans le monde de communiquer efficacement pendant les activités de développement quotidiennes ainsi que de s'intégrer aux outils de développement de logiciels pour surveiller des activités telles que les déploiements.
Les techniques de planification agile et de gestion de projet allégée sont utilisées pour planifier et isoler le travail en sprints, gérer la capacité des équipes et aider les équipes à s'adapter rapidement aux besoins changeants de l'entreprise. Une définition de "DevOps" est un logiciel de travail qui collecte des données de télémétrie par rapport aux objectifs commerciaux visés.
La surveillance des applications en cours d'exécution, y compris les environnements de production pour la santé des applications ainsi que l'utilisation des clients, aident les organisations à formuler une hypothèse et à valider ou infirmer rapidement les stratégies. De riches données sont saisies et stockées dans différents formats de journalisation.
Les clouds publics et hybrides ont rendu l'impossible facile. Le cloud a éliminé les goulets d'étranglement traditionnels et a contribué à la banalisation des infrastructures. Que vous utilisiez l'Infrastructure as a Service (IaaS) pour déplacer vos applications existantes, ou la Plateforme as a Service (PaaS) pour gagner une productivité sans précédent, le cloud vous offre un centre de données sans limites.
Infrastructure as Code (IaC) est une pratique qui permet l'automatisation et la validation de la création et du déprovisionnement d'environnements pour aider à fournir des plates-formes d'hébergement d'applications sûres et stables.
L'architecture des micro-services est utilisée pour isoler les cas d'utilisation en petits services réutilisables qui communiquent via des contrats d'interface. Cette architecture permet l'évolutivité et l'efficacité.
Les conteneurs sont la prochaine évolution de la virtualisation. Ils sont beaucoup plus légers que les machines virtuelles, permettent une hydratation beaucoup plus rapide et peuvent être facilement configurés à partir de fichiers.