Note de lecture : Accelerate, par Nicole Forsgren, Jez Humble & Gene Kim

Note : 6 ; Une étude approfondie sur ce qui marche ou ne marche pas mais délivrée de façon un peu austère

Ce livre a été très chaudement recommandé par Martin Fowler comme étant le « livre de l’année ». J’ai du mal à être d’accord avec lui pour des raisons sur lesquelles je reviendrais. Accelerate reprend et développe les conclusions de 4 années de sondage du « state of the DevOps ». La première partie du texte reprend les observations faites et cherche à les expliquer, mais uniquement en s’appuyant sur les informations collectées, sans formuler d’extrapolations. 2 deux autres parties sont consacrée aux éléments de recherche d’une part et au « comment » de la transformation.

La première partie est celle qui est la plus riche d’enseignements sur ce qui marche et ce qui ne marche pas, elle s’empare logiquement de 115 des 200 pages du texte (hors annexes). Ce sont 11 chapitres qui forment cette première partie. Je passe sur le premier chapitre essentiellement introductif pour aborder le second, « performance », où les auteurs introduisent leurs critères d’une organisation performante. Ils se focalisent essentiellement sur une définition « Lean » du terme et en se référant à la Wardley Mapping Method.

Le 3ème chapitre, « measuring and changing culture » nous introduit au Westrum Organisational Culture. Selon ce modèle, les organisations les plus performantes ont les flux les plus efficaces. On en revient au Lean.

Lire la suite

Publicités

Note de lecture : Release It ! 2nd edition, par Michael T. Nygard

Note : 9 ; Actualisé et repensé, mais toujours aussi riche et pertinent !

11 ans se sont écoulés depuis la parution de la première édition. De mon point de vue, c’était le premier vrai texte évoquant la culture devops. A vrai dire, j’ai continué à le considérer ainsi jusqu’à la parution de cette nouvelle édition. De prime abord, celle-ci semble avoir subi une cure d’amaigrissement… en fait, c’est le papier qui est plus fin, car celle-ci compte le même nombre de pages, mais réparties en 17 chapitres (au lieu de 18) sur 3 parties. Il s’est passé des choses en 11 ans, et nous allons voir que le texte le reflète bien.

Le chapitre d’introduction n’a guère bougé dans son essence avec son fameux « un million par ci, un million par là… », mais sa forme a été remaniée. La première partie « create stability » compte aussi toujours 4 chapitres. Je retrouve au chapitre 2 la même histoire horrible de l’exception qui a mis un aéroport en rideau. L’erreur dans le code est visible sans être grossière, mais les conséquences sont catastrophiques. L’ambiance est campée pour ce livre emblématique. Le chapitre 3 développe sur cette base la notion de « cracks propagation » en faisant référence au livre de James Chiles « Inviting Disaster ». Je ne retrouve pas dans ce chapitre le diagramme de patterns de l’édition précédente : dommage.

Au chapitre 4, on retrouve les antipatterns de stabilité. C’est un chapitre particulièrement conséquent avec 60 pages. Sa structure épouse celle de l’édition précédente, mais le propos est sensiblement modernisé dans cette seconde édition. Cela dit, j’avais trouvé l’édition précédente plus pédagogique à cet égard. L’auteur semble avoir voulu gagner en efficacité dans son propos. Cela a un prix. Après les antipatterns, les patterns. Ils sont présentés au chapitre 5. Les patterns sont les mêmes d’une édition à l’autre, mais l’auteur a fait le choix de les modifier dans le détail. L’ensemble est un peu modernisé sans que la différence soit notable.

Lire la suite

Note de lecture : The DevOps Handbook, par Gene Kim, Jez Humble, Patrick Debois & John Willis

Note : 5 ; De bonnes histoires et d’excellents principes mais un manque d’unité.

Le but inavoué de ce livre était d’être la référence sur le devops. J’en veux pour témoin l’impressionnante liste de noms à l’affiche. Les auteurs de « IT Rev » ont développé leur vision du Devops déjà ébauchée dans « The Phoenix Project », il s’agit des « 3 voies » dans la pure lignée de la pensée Lean. Ce livre est consacré au développement de cette idée.

Le livre lui-même est de format un peu plus réduit qu’à l’accoutumé, mais il atteint les 350 pages hors annexes (celles-ci en ajoutent 100 de plus), le volume de matière est donc conséquent. L’ensemble est découpé fin : on compte 23 chapitres rassemblés en 6 parties. La première d’entre-elle est consacré aux 3 voies. 4 chapitres sur 45 pages couvrent le sujet. L’introduction et le premier chapitre donnent les grandes lignes du devops, ce qui pourrait se résumer à la réduction du lead time.

Les 3 chapitres suivants de cette première partie sont chacun consacré à une des voies des fameuses 3 voies. Le second chapitre est ainsi consacré au « flow ». Sans surprise, on retrouve ici les principes du Lean appliqué au Kanban : taille des lots, élimination du gâchis, etc. Toutes choses permettant à la fois de réduire le temps de cycle et de donner de la fluidité au processus. Le second chapitre attaque le principe du feedback. Il est plus vague, évoquant le Andon et le déplacement de la qualité vers le développeur. Enfin le chapitre 4 nous parle d’amélioration continue, évoquant la culture « générative » au sens de Westrum. Les pratiques évoquées tournent autour de l’expérimentation et de la généralisation des découvertes locales.

Lire la suite

Note de lecture : Continuous delivery, par Jez Humble & David Farley

Note : 4 ; De l’intégration continue à devops ! Des points de vue de grande valeur, mais bien trop verbeux. Jolt Award 2011 !

Ce livre fait en quelque sorte suite au « continuous intégration » publié dans la même série. Ici, l’orientation est résolument « devops », ou comment aller du développement à la mise en production. Aussi le livre ne s’articule pas seulement autour des problématiques techniques, mais aussi de processus et des activités garantissant la mise en production : tests unitaires, tests d’acceptance, gestion des releases, gestion des environnements, etc…

La première partie appelée « fondations » évoque tous les prérequis à la déliverie continue. On y parle de tests, de gestion de versions, etc… Bref de toutes sortes de choses que l’on connaît déjà et déjà détaillées par ailleurs. C’est un peu long et verbeux. On en prend pour 100 pages. Au premier chapitre on s’évertue de mettre en lumière la vue « ancienne » du release management. Pas si ancienne d’ailleurs, avec ses « RC1 », « RC2 », etc. On le fait à l’aide d’antipatterns un peu tarte à la crème, pour au final introduire les qualités attendues d’un bon pipeline d’intégration. Le chapitre 2, « configuration management » traite de deux sujets : la gestion de version, où les auteurs sont opiniated sur le développement en banche principale, et les informations de configuration qui doivent être externalisées. Les deux sujets seront repris plus tard. Ces prises de position, même si elles piquent un peu sont plus que sensées.

Une grosse trentaine de pages est consacrée à l’intégration continue. Pas de révolution ici, on reprend des principes désormais bien connus : un build court, ne jamais laisser un build cassé, raccourcir la boucle de feedback en lançant le build d’intégration au plus tôt. C’est un peu long pour dire des choses que l’on connait déjà et qui ne sont pas le cœur du livre. Je ne m’attendais pas nécessairement à voir évoquer la stratégie de test, mais c’est bien le sujet du chapitre 4 qui clôt la première partie sur une quinzaine de pages. Ce sont des pages bien dépensées cette fois, car les auteurs font le tour du sujet assez efficacement en suivant le framework de Brian Marrick. Cela dit, on est cette fois encore, un poil en marge du sujet.

Lire la suite

Note de lecture : CoreOS in Action, par Matt Bailey

Note 3 ; Malheureusement je ne suis pas un ops…

Je voulais vraiment en savoir plus sur CoreOS. Chemin faisant, je savais que je risquais une lecture qui pouvait s’avérer ennuyeuse pour moi, sinon hermétique. C’est surtout la brièveté de l’ouvrage qui m’aura permis de survivre, le texte n’étant vraiment pas fait pour moi.

Bref, le texte l’est avec seulement 175 pages et 10 chapitres (donc des chapitres assez courts en moyenne). L’ensemble est divisé en 3 parties. La première d’entre-elle « getting to know CoreOS » comprends 3 chapitres. Et on commence bien sûr par une introduction au système, d’une quinzaine de pages. Cette introduction doit nous donner une image de haut niveau de CoreOS, qui un OS « statique », dont les composants majeurs sont fleet et etcd. Mais pour moi, l’angle est déjà bien trop « système ».

Les 18 pages du chapitre 2 sont consacrées à faire fonctionner CoreOS sur une machine de dev, dans un environnement Vagrant, lui-même dans une machine virtuelle VirtualBox. En sachant que ce n’est pas un mais 3 CoreOs que l’on souhaite faire fonctionner, cela donne une idée de la configuration : pas vraiment une partie de plaisir pour moi. Je sombre encore un peu plus au chapitre 3 « expecting failure » qui rentre dans les arcanes d’etcd, le tout pimenté de configuration Ngnix !

Lire la suite

Note de lecture : The Phoenix Project, par Gene Kim, Kevin Behr & George Spafford

Note : 7 ; Une histoire autour des principes Lean et Devops, dans la veine de « The Goal » d’Eli Goldratt.

Un hasard bienheureux m’a fait lire ce livre dans la foulée de « Turn The Ship Around ! ». Ce livre, c’est l’histoire de Bill. Bill hérite d’un poste de manager dont il ne veut pas, celui de VP des opérations. Ce livre est donc un roman, plutôt bien écrit qui plus est. Il amène Bill d’un poste de manager dont il n’a pas voulu à celui de « chief operation officier », conseillé en pointillé par Erik, qui deviendra son mentor.

Le style narratif, les personnages et le fil de l’histoire ne sont pas sans rappeler « The Goal » d’Eli Goldrath. Les auteurs ne s’en cachent guère, et le texte n’est pas un plagiat pour autant, car ce sont d’autres savoirs et d’autres découvertes vers lesquelles veulent nous emporter les auteurs.

Parmi les idées fortes du livre, il y a les « 3 voies » :

  1. Comment créer un flux de travail rapide.
  2. Raccourcir et amplifier la boucle de feedback, pour fixer la qualité à la source.
  3. Créer une culture de l’expérimentation et de l’apprentissage.

Lire la suite

Note de lecture : Mesos in Action, par Roger Ignazio

Note : 3 ; Un focus quasi-exclusif sur l’aspect « opérations » qui rend la lecture bien ennuyeuse pour moi…

Le volet « opérations » n’est pas ma tasse de Thé. Pourtant les frameworks qui gravitent autour de cette problématique simplifiant le déploiement, le clustering et permettant l’infrastructure as code sont probablement les plus actifs et les plus novateurs des projets open source aujourd’hui. C’est à ce titre que je me suis intéressé à Mesos, non pour être capable de l’opérer, mais pour le comprendre et en saisir les concepts et la manière de l’utiliser.

Hélas pour moi, c’est bien autour de la problématique des opérations que s’articule ce texte. Et même sous cet angle, il ne paraît pas des plus didactiques. Voyons justement comment il se structure. L’ouvrage est long de 235 pages, découpé en 3 parties pour un total de 10 chapitres. La première d’entre-elles, « Hello Mesos » fait une trentaine de pages et compte 2 chapitres. Il s’ouvre sur « Introducing Mesos » qui compte lui-même une quinzaine de pages. Ce chapitre donne une vue de haut niveau sur les fonctionnalités que délivre le framework et sa place dans la stack système. Il s’agit là d’une bonne introduction et l’on comprends ce qu’adresse Mesos, bien que la façon dont il l’adresse reste fort abstraite.

Au chapitre 2, « Managing Datacenters with Mesos », compte également une quinzaine de pages. Il se concentre d’avantage sur l’usage et la dynamique de fonctionnement de Mesos, toujours à haut niveau. Illustré par le déploiement de Spark dans différentes configurations, le chapitre est très bien illustré mais on reste toujours sur sa faim : comment diable Mesos interagit-il avec les applications sus-jacentes ?

Lire la suite

Note de lecture : Docker in Action, par Jeff Nickoloff

Note : 4 ; Assez clair, mais pourrait être plus pédagogique…

Docker est une des technologies qui monte, Manning ne pouvait laisser un vide dans son catalogue à ce sujet. C’est chose faite avec cet ouvrage de 270 pages. L’auteur maîtrise très bien son sujet et nous propose donc ce volume structuré en 12 chapitres regroupés en 3 parties.

La première partie est dédiée à la découverte de la containerisation. C’est la plus importante du livre, elle couvre 125 pages et occupe 6 chapitres. Le premier d’entre-eux est court d’une dizaine de pages. Il a pour but de présenter les principes généraux de Docker, son « pourquoi » ainsi que les principes généraux de la conteneurisation. C’est bien emballé. Le second chapitre nous projette côté utilisation de Docker, afin de faire tourner des softs dans des conteneurs, un peu dans tous les sens. On y utilise beaucoup la ligne de commande et l’on découvre les transitions d’états des conteneurs, le lancement d’un conteneur depuis un conteneur, etc.

Après le run, c’est à l’installation que l’on s’intéresse au chapitre 3. Sur 15 pages, on y découvre l’installation depuis un repository ou depuis un dockerfile et bien sûr les principes de base des layers. Les choses se complexifient au chapitre 4 avec la gestion du stockage (persistant ou non) et l’attachement de volumes dédiés ou partagés. Heureusement le propos est largement illustré.

Lire la suite

Bootstraper un déploiement continu sur le cloud avec CloudBees

En 25 minutes, Henrik Kniberg nous fait la démonstration depuis zero de la création d’une petite webapp type « hello world » sous Eclipse, avec son test local avec Jetty et ses tests unitaires, vers la mise sous Git dans CloudBees, l’intégration dans Jenkins et le déploiement dans un sandbox, toujours sur CloudBees. Partant de là, on complexifie l’application en y intégrant une persistance avec MongoDB sur la base des services accessible depuis la plateforme SaaS !

La vidéo montre en totalité le processus de réalisation, étape par étape, y compris la correction d’erreurs, sans rien omettre ! Un véritable guide à suivre pour construire sa première application sur CloudBees !