DevOps sur PlovDev

De retour de la conférence PlovDev, j’ai eu à répondre à quelques questions pour la newsletter de mon ESN Proxiad. Si j’y suis responsable DevOps, je suis surtout un passionné et un profond convaincu de ce mouvement. Il entre dans la dynamique du surgissement d’un nouveau monde. Une ère passionnante s’ouvre à nous !

Ayant à coeur de dynamiser et partager cette nouvelle approche, je me permets de publier ici cet interview.

Welcome to the era of DevOps!

Une application est absolument tout ce qui existe et se passe entre le push et l’exploitation d’un commit. Quand on intègre cette notion, on comprend le DevOps.

Lire la suite

DevOps – Présentation – 3

Le facteur humain est, à mon sens, le plus important dans une démarche DevOps. Dans les deux articles précédents, je décrivais « bonheur de produire de la qualité ensemble », et je vulgarisais rapidement les concepts de Continuous Integration et Continuous Delivery apportant respectivement le bien-être du développeur et le confort de l’exploitant. Concentrons-nous ici sur le « produire ensemble », sur la charnière entre ces deux mondes, autrement dit sur la collaboration de ces deux ensembles d’équipes.

Le terme d’ensemble est choisi pour sa confusion entre l’adverbe et le nom, subtilité de la langue française dont j’abuse. La notion d’ensemble des équipes est important et mérite une présentation. Ce qui nous aménera à se poser la question de leur collaboration ensemble.

Flow

Lire la suite

DevOps – Présentation – 2

Le rapprochement entre les équipes de développement et d’exploitation est l’élan principal du mouvement DevOps. Pour appréhender l’interactions entre ces deux équipes, il faut comprendre le cycle de vie d’une application. Si celui-ci comporte une phase initiale d’analyse des besoins et d’études de faisabilité entre autre, il passe, pour ce qui concerne notre sujet, par une chaine de montage (un workflow pour les anglophones) qui va de la conception à la mise en production. Du développement à l’exploitation.

Cette présentation est plus de la vulgarisation qu’un discours hautement académique, je prends donc le parti de la simplification et de présenter le cycle de vie comme l’adjonction de deux cycles distincts, celui du développement et celui du déploiement dans les environnements de recette et de production. On pourrait palabrer sur la pertinence de cette césure, et il est vrai que certaines méthodes voire outils ne les distinguent pas aussi franchement, mais le but avoué de cet article est de présenter les deux concepts qui ainsi s’appuient sur un cycle de vie, respectivement le Continuous Integration et Continuous Delivery (Intégration continue et Livraison continue pour les francophones).

LifeCycle-Continuous

Lire la suite

Le punk et le DevOps

Comment recruter un DevOps ? Parcourant un réseau social, je suis resté interdit devant cette question. Si ce chasseur de tête s’était un minimum informé, il saurait que DevOps n’est pas ni un poste, ni une fonction, ni une qualification mais un mouvement. Mettons de côté cette grossière erreur en reformulant la question : Comment un recruteur peut-il s’assurer qu’un candidat est bien emprunt de la culture DevOps ?

Comment caractériser un mouvement ? Prenons pour exemple le mouvement punk, si nous devions le caractériser, ce serait en citant l’aphorisme No future, en précisant les attributs vestimentaires, les coupes de cheveux, en listant des groupes de musiques, et c’est tout ? Viennent ensuite la contestation, la solidarité, les alternatives sociales, et les différentes tendances politiques. C’est tout un ensemble qui définit un mouvement. Et pour revenir sur le DevOps appliqué au recrutement, comment tester un candidat ?
Lire la suite

Vers l’automatisation de la recette

Comment ça on ne teste pas !? Bin non, ce n’est pas possible. C’est la réponse qui m’irrite le plus juste après le « on a toujours fait comme ça ». Quel est l’intérêt d’une plate-forme de tests où la moitié des jobs est en rouge ? Comment valider un tel fourbi d’erreurs ?
Dans de telles conditions il est nécessaire de connaitre par coeur les enchainements, pour opérer à des évictions, des relances, bref il est délicat et déconseillé d’automatiser ces pratiques.

Afin d’être le plus proche de la production tout en prenant en compte certaines limites des recettes, voyons donc ici un ensemble de pratiques, non pour automatiser mais pour s’y préparer. Une petite remise à plat pour éliminer tous ces incidents normaux (ça me fait mal de l’écrire). Etape nécessaire pour automatiser ses tests et tendre vers plus de Continuous Delivery.

Lire la suite

De la valorisation des constantes

Cas pratique ! Dans tout environnement il faut valoriser ses constantes. Que ce soit le nom de l’environnement lui-même, d’un serveur tiers, d’une arborescence… ce n’est pas ce qu’il manque. A la B. Mouret, un fichier de configuration avec toutes ces constantes est défini pour chaque environnement. Malheureusement, quand par exemple une arborescence est redéfinie, il faut, passez-moi l’expression, se pastiller l’ensemble des fichiers à réviser. Comment procéder autrement ?

Voyons donc ici un ensemble de pratiques qu’appliquera la B. Mouret pour tendre vers plus de Continuous Delivery. Au travers de ces quelques principes simples, c’est tout une uniformisation qui en découlera et en conséquence une facilité de maintenance et d’automatisation.

Lire la suite

Vers le Continuous Delivery

DevOps et Continuous Delivery sont les actuels mots à la mode (buzzword pour les anglophones). Après quelques lectures et présentations, certains décideurs se posent la question de l’inflexion vers de telles méthodes. Il faut bien comprendre que derrière ces mots se cache une révision complète des DSI. C’est la fin des fameux silos enfermant chacun dans une mono-tâche technicienne au profit d’un flux automatique organisé par des experts. D’aucuns disent que ce bouleversement est un tsunami, voire un big bang. Il est donc naturel que certains responsables se demandent : Comment opérer à un tel virage vers le Continuous Delivery ?

Cet article orientera vers des perspectives de réponses. Et pour cela, citons d’abord Martin Fowler, un ponte du Continuous Delivery :

You’re doing continuous delivery when:

  • Your software is deployable throughout its lifecycle

  • Your team prioritizes keeping the software deployable over working on new features

  • Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them

  • You can perform push-button deployments of any version of the software to any environment on demand

Lire la suite

De l’intérêt du Continuous Delivery pour le business

Le déploiement de tout logiciel, installation ou amélioration, est motivé par un besoin business. Et plus l’IT répond promptement à ce besoin, plus rapidement le client ou l’utilisateur interne pourra tirer rapidement profit de ce déploiement.
Cette accroche est le point de départ du concept de Continuous delivery, traduit par Livraison en continu. Cet article est une présentation conceptuelle et non technique à l’attention des décideurs et des techniciens cherchant des arguments pour inciter leurs décideurs à entrer dans le XXIème siècle.

Depuis trop longtemps, un déploiement est le bout d’une chaine bien longue d’un projet, en cascades (le fameux waterfalls). Phase après phase, un tel projet s’étale sur plus d’un trimestre. Certaines sociétés sont rythmées sur des livraisons semestrielles voire annuelles.
Aucun besoin d’études de management pour comprendre que quatre mois après le développement, il peut arriver que le codeur ne se souvienne plus de ses intentions, voire qu’il ne soit plus présent. Si un besoin de remettre l’ouvrage sur le métier se fait sentir, il est à prévoir une latence dans l’aménagement.
Nous sentons bien que nous sommes aux antipodes du concept de Continuous delivery dont le paradigme est le prompt profit.

« Until your code is in production making money or doing what it is meant to do, you have simply wasted your time. » – Chris Read

Lire la suite

Conte de faits

A mes débuts dans les banques on ne disait pas « le service informatique », mais on parlait de « L’informatique ». Le service était bicéphale : la production et le bureau des études.
A la production où régnait une odeur de café, était le pupitre, opérateur technique qui contrôlait, vérifiait, parfois procédait à des relances principalement motivées par les retards des partenaires. Les incidents étaient extrêmement rares, et dans ce cas, le pupitre analysait l’historique, en s’appuyant sur le code source. Après quoi il s’adaptait pour résorber le souci et procédait à une démarche assez simple qui consistait à prendre un papier, un stylo, et le couloir.
Au bureau des études où régnait une odeur de mélange de thés, étaient les études, fonctionnels soucieux des standards de production qui inventaient, préparaient, développaient les processus de demain. Et à de rares occasions, accueillaient le pupitre pour voir avec lui l’incident rencontré et surtout comment le résoudre au plus vite.

Découvert au petit matin, l’incident était pris en charge rapidement par les études. Une nouvelle version du programme était livrée en recette avant midi pour qu’à 14H00 le batch quotidien de recette le valide pour 18H00. La mise en production était effectuée après les sauvegardes de 19H00.
A noter que ce batch quotidien de recette de 6 heures en avance sur la production était une garantie de détecter et anticiper d’éventuels problèmes à venir.
Cette organisation réactive qui n’avait pas de nom serait qualifiée aujourd’hui d’agile et continuous something.

Et puis un jour, un bien-pensant s’est mis en tête de structurer tout ça !..

Lire la suite