Qu’est-ce que DevOps ?

Effectué

DevOps est la conjugaison de personnes, de processus et de produits qui permettent de fournir en continu de la valeur à nos clients. Mais qu’est-ce que cela signifie exactement ? Joignons-nous à l’équipe alors que Mara explique ce qu’est DevOps, ce qu’il n’est pas, et ce qui permet aux très bons performers de réussir.

Mara a organisé une petite réunion avec ses collègues. Tout le monde est venu, mais personne n’a envie d’être là. Elle a mis une boîte de donuts sur la table.

Mara : Bonjour, merci d’être venus. Je voudrais voir en détail notre cartographie de flux de valeur et la façon dont nous pouvons améliorer l’efficacité de nos processus.

La carte de flux de valeur de Mara se trouve toujours sur le tableau blanc depuis leur précédente réunion :

Capture d’écran d’un tableau blanc présentant la cartographie du flux de valeur.

Mara : Notre carte de flux de valeur montre où nous perdons en efficacité quand nous fournissons de la valeur à nos utilisateurs finaux. Comme tout le monde, nous pouvons nous améliorer et nous pouvons décider quels domaines attaquer en premier.

Andy : Cela nous montre où nous avons des problèmes, mais pas comment les résoudre.

Mara : Exact. C’est un exercice qui nous permet de nous diriger dans la bonne direction. Pour ce qui est de nos problèmes, je pense que DevOps peut nous aider. Dans ma dernière entreprise, notre fréquence de déploiement a beaucoup augmenté, les délais ont diminué et les incidents fonctionnels se sont raréfiés. Cela nous a pris un certain temps pour y parvenir, mais ça en valait la peine. DevOps n’est pas un correctif rapide.

Tim : Je connais quelqu’un qui vient d’être embauché comme ingénieur DevOps. Je pense que c’est davantage destiné aux développeurs. Ça semble être pour vous, Andy.

Mara : DevOps n’est pas un intitulé de poste.

Amita : Existe-t-il un logiciel que nous pouvons nous procurer pour nous aider, ou un modèle ? Il existe peut-être une feuille de calcul DevOps.

Mara : DevOps n’est pas un élément logiciel.

Andy : Il s’apparente davantage à une méthodologie.

Mara : Pas vraiment.

Andy, Amita, Tim : Alors, qu’est-ce que c’est ?

Mara : Voici la définition que j’aime utiliser :

DevOps est la conjugaison de personnes, de processus et de produits qui permettent de fournir en continu de la valeur à nos utilisateurs finaux.

En fait, Abel Wang, Cloud Advocate chez Microsoft, propose un grand nombre de vidéos avec des réponses rapides à certaines de nos questions. Voyons comment Abel définit DevOps :

Demander à Abel

Notre objectif est de donner à nos clients des jeux qu’ils vont aimer. Il suffit pour cela de travailler de concert avec un ensemble partagé de pratiques et d’outils.

Amita : Qu’est-ce que cela signifie ? Quelles pratiques partagées ? Quels outils partagés ?

Mara : Voici ce que j’entends par « pratiques » :

  • Planification Agile : Ensemble, nous allons créer un backlog de travail que tous les membres de l’équipe et toutes les personnes chargées de la gestion peuvent voir. Nous allons hiérarchiser les éléments pour savoir par quoi commencer. Le backlog peut inclure des récits utilisateur, des bogues et toute autre information pouvant nous aider.
  • Intégration continue (CI) : Nous allons automatiser la façon dont nous générons et testons notre code. Nous l’exécuterons chaque fois qu’un membre de l’équipe validera des changements apportés à la gestion de versions.
  • Livraison continue (CD) : Elle correspond à la façon dont nous testons, configurons et déployons depuis une build jusqu’à un environnement d’assurance qualité ou de production.
  • Monitoring : Nous allons utiliser la télémétrie pour obtenir des informations sur les modèles de performances et d’utilisation d’une application. Nous pouvons utiliser ces informations pour apporter des améliorations au fil des itérations.

Amita : Je ne connais pas les tests automatisés. Mes tests sont manuels et je les fais une fois qu’Andy m’a transmis le code. Je n’ai pas le temps de changer la façon dont j’effectue toutes les tâches.

Tim : Il n’est pas question que je laisse l’un d’entre vous effectuer le déploiement dans un environnement de production.

Andy : Cela va effrayer l’équipe de gestion. Elle ne pense jamais plus loin que la prochaine version, et elle la veut toujours pour hier.

Mara : Je vois ce que vous voulez dire au sujet de l’équipe de gestion. J’ai préparé ce document sur ce qui rend une équipe très performante.

Qu’est-ce qui rend une équipe très performante ?

Voici le document que Mara a préparé. Les informations qu’il contient sont basées sur des rapports de recherche sur DevOps ainsi que sur des enquêtes menées auprès de professionnels techniques du monde entier.

DevOps permet aux entreprises d’essayer des moyens de favoriser l’adoption et la satisfaction des clients. Il peut générer de meilleures performances organisationnelles, et souvent une rentabilité et une part de marché supérieures.

Il utilise des métriques pour créer quatre catégories en fonction desquelles les équipes très performantes sont comparées à celles qui le sont moins.

Équipes très performantes :

  • Effectuent plus souvent des déploiements

    En fait, certaines équipes effectuent des déploiements des dizaines de fois par jour.

    Certaines pratiques, comme la supervision, les tests continus, la gestion des changements de base de données et l’intégration de la sécurité plus tôt dans le processus de développement logiciel, permettent aux équipes très performantes d’effectuer des déploiements plus fréquents avec plus de prévisibilité et une sécurité accrue.

  • Réduisent les délais entre la validation et le déploiement

    Le délai est le temps nécessaire pour qu’une fonctionnalité soit présentée au client. En travaillant dans des lots plus petits, en automatisant les processus manuels et en effectuant des déploiements plus fréquents, les très bons performers peuvent accomplir en quelques heures ou jours ce qui, avant, prenait des semaines ou des mois.

  • Réduisent le taux d’échec des changements

    Une nouvelle fonctionnalité qui échoue en production ou qui provoque l’arrêt d’autres fonctionnalités peut constituer une occasion manquée entre vous et vos utilisateurs. À mesure que les équipes très performantes évoluent, elles réduisent peu à peu leur taux d’échec des changements.

  • Reprennent plus rapidement leur activité après des incidents

    Quand des incidents se produisent, les très bons performers sont en mesure de reprendre plus rapidement leur activité. La manipulation des métriques permet aux équipes très performantes de reprendre leur activité plus rapidement tout en effectuant également des déploiements plus fréquents.

La façon dont vous implémentez l’infrastructure cloud est également importante. Le cloud améliore les performances de livraison de logiciels, et les équipes qui adoptent les caractéristiques essentielles du cloud sont plus susceptibles de devenir de très bons performers.

L’externalisation peut vous faire réaliser des économies et offrir un pool de travail flexible, mais vous devez l’utiliser dans les domaines appropriés. Les équipes moins performantes sont plus susceptibles d’externaliser des fonctions entières (comme les tests et opérations) que leurs équivalents plus performants.

Argument ultime

DevOps est une des raisons principales pour lesquelles de nombreuses équipes très performantes peuvent offrir une valeur ajoutée aux clients, sous la forme de nouvelles fonctionnalités et améliorations, plus vite que leurs concurrents. Dans cette courte vidéo, Abel explique pourquoi vous devriez découvrir plus en détail DevOps :

Demander à Abel

Ce que DevOps n’est pas

Il ne s’agit pas seulement de comprendre ce qu’est DevOps, mais également comprendre ce qu’il n’est pas. DevOps n’est pas :

  • Une méthodologie.
  • Un logiciel spécifique.
  • Une solution rapide aux problèmes d’une organisation.
  • Juste une équipe ni un intitulé de poste (bien que ces intitulés soient relativement courants dans le secteur).