Note de lecture : Grokking Continuous Delivery, par Christie Wilsonci

Note : 7 ; Pour s’initier sérieusement au continuous delivery

Cette série « grokking », c’est un peu le « pour les nuls » de Manning. Et tout comme cette série, ce n’est pas nul du tout. L’ouvrage rentre en profondeur dans le sujet, avec simplicité et pragmatisme, mais certainement pas avec simplisme. Comme nous le verrons, il s’avère même étonnant, en plus d’être abondamment illustré. Cela nous explique les 360 pages de cet ouvrage (hors annexes). Aussi, si la lecture est aisée, elle demande quand même un certain temps !

Le livre, justement, parlons-en. Il est structuré en 4 parties pour un total de 13 chapitres. La première d’entre-elles est une introduction sur 2 chapitres et un peu plus de 30 pages. Comme on peut s’y attendre, le premier chapitre est purement introductif, définissant le concept et ses concepts adjacents et lui donnant une perspective historique. C’est en fait une bonne idée, tellement il peut y avoir de subtilité entre les concepts et le texte ne fait pas l’impasse dessus. Il est précis et concret. C’est un bon chapitre. Le second chapitre s’inscrit en parfaite continuité pour décrire un pipeline de base en s’appuyant sur un cas d’étude, en l’occurrence des photos de chat. L’auteur nous prends par la main pour construire progressivement ce qui est un pipeline CI, finalement loin d’être basique. Tout ce fait progressivement en expliquant les concepts tels que guichet et transformation, progressivement. Seules les notifications par Webhook sont un peu spécifiques dans le paysage.

La partie 2 couvre les mises en œuvre nécessaires pour conserver un logiciel dans un état délivrable tout le temps. Elle pèse 5 chapitres sur 140 pages. Le chapitre 3 adresse la gestion de version et la startup de Sacha et Sarah va nous aider à y voir plus clair. Le texte fait le choix d’utiliser Github comme exemple. Il en fallait bien un, et il parait raisonnable. Cela permet de se familiariser avec les concepts de push et pull request. Le texte ne s’arrête pas là, il fait la transition avec le pipeline, et pourquoi pas dans le cloud ? Il adresse aussi la gestion de configuration en gestion de version en imaginant la connexion à une base de données également dans le cloud. Les auteurs vont plus loin que la gestion de version sensu-stricto. C’est un choix de l’auteure que nous retrouverons régulièrement.

Continuer à lire « Note de lecture : Grokking Continuous Delivery, par Christie Wilsonci »

Note de lecture : Investments Unlimited, par Helen Beal & al.

Note : 7 ; Découvrir le DevSecOps et la gouvernance automatisée

Le Devops et les chaines CI/CD, on commence à bien connaitre. Mais le DevSecOps, est-ce que cela consiste uniquement à introduire des outils d’audit dans le pipeline CI/CD ? On commence à s’en douter, la réponse est : non. C’est dans une aventure à la découverte de ces concepts à laquelle les auteurs nous invitent. Et d’une aventure, c’est bien ce dont il est question, car ce livre est une nouvelle !

Le livret ne paie pas de mine, on le qualifierait presque de livret, tellement il est peu épais et de format réduit (sans être un format poche). Le texte principal compte 128 pages, mais la dizaine de pages des annexes n’est pas à négliger. Le narratif est bien rythmé avec 13 chapitres, tous très courts. Le premier va simplement planter le décours, celui ou Investment Illimited va faire face à une « MRIA ».

Le second chapitre nous permet de mieux appréhender les mécanismes de réponses et surtout le rôle de l’audit au sein d’une gouvernance sécurité, mais le DevSecOps se fait attendre ! C’est le chapitre 3 qui commence à nous éclairer sur les attentes de ce côté-là : accès à la production, « glass breaking » ou séparation des devoirs (ce qui semble de prime abord aller à l’encontre du devops). Mais l’évolution du Devops vers le DevSecOps reste encore à définir. Le chapitre 4 nous introduit un nouveau personnage, Jason, qui va commencer à en dessiner les contours.

Continuer à lire « Note de lecture : Investments Unlimited, par Helen Beal & al. »

Note de lecture : Pragmatic Version Control using CVS, par Andrew Hunt & David Thomas

Note : 6 ; “Best practices” et utilisation de CVS parfaitement intégrés.

Quand les Pragmatic Programmers » ont décidé d’ouvrir boutique en devenant éditeurs, ils ont commencé par publier des « starters kits » destinés à permettre l’utilisation d’outils labellisés « pragmatiques » avec les recettes agiles qui vont avec. Le roi de la montagne des gestionnaires de version était alors Subversion, mais CVS (qui nous intéresse aujourd’hui) était encore utilisé, tandis que Git n’était pas encore né. Peu de monde se souvient encore du successeur de RCS (dont encore moins de personnes se souviennent), et ce guide pratique va nous permettre de le maitriser au quotidien. Bien sûr aujourd’hui le texte a d’avantage un intérêt historique, voir archéologique.

L’ouvrage ne pèse gère lourd avec moins de 140 pages auxquelles il faut ajouter une quinzaine de pages d’annexes. Le tout est structuré en 10 chapitres. Le premier chapitre cueille bien tôt le développeur débutant pour lui faire appréhender l’intérêt d’un gestionnaire de version, au travers d’une courte histoire. Quelques pages qui ne seront utiles qu’au grand débutant. Le second chapitre attaque les choses sérieuses, avec les concepts gravitant autour de la gestion de configuration, et surtout les cas d’usage de ce type d’outil : branche de développement, bug fixes, conflits, etc. Le tout bien illustré et expliqué efficacement. Le tout reste générique, sans aborder les spécificités de CVS.

C’est au chapitre 3 que l’on attaque véritablement la prise en main de CVS, depuis l’installation, jusqu’au gestes de base évoqués au chapitre précédent, en passant par la configuration et la gestion de projet. Les lignes de commande sont développées et expliquées, comme on peut s’y attendre de ce type d’ouvrage. Ces 3 premiers chapitres étaient en quelque sorte l’introduction. Je passe sur le chapitre 4 qui est en quelque sorte le préambule du reste du livre.

Continuer à lire « Note de lecture : Pragmatic Version Control using CVS, par Andrew Hunt & David Thomas »

Note de lecture : Operations Anti-Patterns, par Jeffrey D. Smith

Note : 3 ; Verbeux et ennuyeux

La juxtaposition de « patterns » (ou anti-patterns) et devops avait tout pour attiser ma curiosité, bien que j’avoue avoir quelque peu foncé en aveugle sur ce livre. Comme nous le verrons, cela ne fut pas une très bonne idée car le texte prétend parfois avoir inventé l’eau chaude…

Avec 290 pages structurées en 12 chapitres, ce volume se situe dans la moyenne, la taille des chapitres aussi et ceux-ci ne sont pas trop longs. Le livre s’ouvre sur un premier chapitre « what is devops » plutôt sympathique à lire qui évoque le CAMS (culture, automation, metrics et sharing) comme les piliers du devops. C’est original par rapport à mes autres lectures, mais l’éclairage en vaut un autre. Le second chapitre est plus représentatif des chapitres suivants, c’est-à-dire un thème accompagné de patterns et d’anti-patterns. Ici il est question de « paternalisme ». Derrière cela il faut voir le mode guichet et les délais que cela occasionne. La solution promue est évidemment l’automatisation embarquant les vérifications automatisant « l’approbation ». Rien de bien nouveau.

Le thème du 3ème chapitre est la cécité opérationnelle : c’est-à-dire qu’opération et développement vivent chacun dans leur silo et que le développement ignore tout du comportement du produit en production. La solution est ici, cher captain obvious, les métriques et les logs ! Le développement part un peu dans tous les sens et reste hélas assez superficiel. Le chapitre 4 s’intitule « des données plutôt que de l’information ». Ce chapitre se démarque un peu des précédents en ne suivant pas la recette désormais habituelle. Il s’inscrit plutôt dans la continuité du chapitre 3 en évoquant la présentation des données de monitoring. C’est un peu inutile ou plutôt mieux traité ailleurs.

Continuer à lire « Note de lecture : Operations Anti-Patterns, par Jeffrey D. Smith »

Note de lecture : Kubernetes: Scheduling the Future at Cloud Scale, par David K. Rensin

Note : 1 ; Plaquette commerciale Kubernetes

Vous allez dire que j’aurais dû me méfier vu la maigreur de l’opuscule (38 pages) ? C’est vrai. Pour autant, cela peut suffire pour avoir une vue aérienne et une première approche de l’outil. La vue aérienne est assez bien couverte par le premier chapitre, « go big or go home ». Sauf qu’en fait, ce n’est pas le premier chapitre. Le premier est une introduction où l’auteur parle essentiellement de lui : une totale perte d’espace pour un opuscule qui n’en a déjà pas de trop. Revenons à ce premier chapitre qui est en fait le second. Il introduit correctement les concepts de base : conteneurs, nodes, pods… C’est quand même bien succinct et on ne voit pas très bien comment tout cela fonctionne et communique ensemble !

Le second chapitre traite d’un aspect important : les labels et les annotations. L’auteur nous en parle mais en omettant complètement de nous dire comment cela était assigné, comment cela fonctionnait. Bref on sait juste que cela existe et que cela peut être requêté, même si on ne sait pas comment ni dans quel but. Il faudra raccrocher cela avec l’idée évoquée qu’il faut traiter les serveurs comme du bétail et qu’ils peuvent être détruits et créés à la volée. On voit confusément la relation et l’auteur nous laisse nous débrouiller avec cela. On saute du coq à l’âne avec le réplication contrôler, les services, le scheduling des pods, etc. Cela aurait mérité un autre chapitre, car il n’y a pas vraiment de rapport. En fin de compte, beaucoup de concepts sont effectivement évoqués, mais fort mal introduits et sans aspects concrets pour bien comprendre chacun d’entre eux.

Le dernier chapitre évoque les différents modes de déploiements : sur machine virtuelle, sur serveurs dédiés ou en service managé sur le cloud. L’auteur travaille chez Google, aussi est-il à l’aise pour dire que cela marche bien sur GKE. C’est sans aucun doute vrai, même si en 2021, les 3 grands clouds n’ont plus de problèmes là-dessus.

Continuer à lire « Note de lecture : Kubernetes: Scheduling the Future at Cloud Scale, par David K. Rensin »

Note de lecture : Site Reliability Engineering, par Betsy Beyer, Chris Jones, Jennifer Petoff & Niall Richard Murphy edt.

Note 4 ; Les bases d’une nouvelle discipline au milieu d’essais assez hétéroclites.

Le SRE est l’une des nouvelles tendances du moment. Elle figure le pendant « run » du devops de manière générale, mais reste parfois difficile à distinguer aussi clairement. Le présent ouvrage a mis en lumière cette nouvelle discipline, aussi pourrait-on le qualifier « d’historique ». Dans les faits, il s’agit avant tout d’un recueil d’articles. Malgré le travail éditorial effectué, il ne faut pas en attendre le niveau de cohérence d’un ouvrage classique.

Avec ses 475 pages rythmés sur 34 chapitres et structurés en 5 parties, l’ouvrage est une belle bête, au moins au niveau du volume. La première partie ne compte que deux d’entre-eux sur une vingtaine de pages et sert d’introduction aux parties suivantes. « Introduction » est d’ailleurs le titre du 1er chapitre. Celui-ci nous esquisse en quelques lignes ce qu’est le SRE chez Google. Car j’ai oublié de préciser qu’il s’agit d’articles en provenance de Google. Le second chapitre ne se situe guère en continuité car il évoque l’environnement de production. Cette infrastructure est gérée par « Borg » qui n’est pas moins que l’ancêtre de Kubernetes !

La seconde partie assoie les principes du SRE. Elle compte 7 chapitres pour un total de 75 pages. Elle débute par un chapitre 3 qui a pour but de nous donner un éclairage « risques ». C’est surtout la notion de budget d’erreur qui y est important. Le chapitre 4 aborde une notion clé du SRE : le SLO pour Service Agreement Objective, que Google préfère au SLA. Les auteurs nous expliquent comment construire ces SLO par rapport aux SLI (« I » pour indicateur), et ce par l’exemple. Un bon chapitre. Le chapitre 5 est consacré au labeur, que l’on pourrait aussi appeler travail de m… Surtout ce chapitre entrouvre un aspect majeur du RSE : Google emploie pour ce travail des développeurs plutôt que des ingénieurs système car l’objectif est d’éliminer ou automatiser tout cela plus que d’effectuer des corrections !

Continuer à lire « Note de lecture : Site Reliability Engineering, par Betsy Beyer, Chris Jones, Jennifer Petoff & Niall Richard Murphy edt. »

Note de lecture : The Unicorn Project, par Gene Kim

Note : 7 ; Une intrigue passionnante pour illustrer les « 5 idéaux » de l’auteur.

Gene Kim est co-auteur de plusieurs ouvrages gravitant autour du devops, dont « The Phoenix Project », un texte romancé s’inscrivant dans la continuité de « The Goal » D’Eli Goldratt. Cette fois, il vole en solo de nouveau sur un texte romancé dont l’intrigue s’entrelace avec celle de The Phoenix Project.

La prose occupe un peu plus de 330 pages d’un texte rythmé sur 19 chapitres, mais ceux-ci servent surtout à rythmer l’histoire. Ce sont plutôt les 3 parties qui sont le découpage important. Nous avons droit à une vingtaine de protagonistes dans cette histoire, mais tous n’ont pas la même importance. Nous suivrons surtout Maxine Chambers, « placardisée » au projet Phoenix en servant de bouc émissaire pour un grave problème survenu alors qu’elle était en vacances. Kurt Reznick à la tête de la « Rebellion team » est aussi un personnage majeur, tandis que Sarah Moulton joue le rôle de la méchante. Nous retrouvons aussi épisodiquement Erik Reid du livre précédent, dans un rôle assez curieux. A titre personnel, j’ai bien aimé la présentation « Star Trek » des protagonistes.

Le début est assez lent. Nous assistons surtout durant les 4 premiers chapitres aux affres de Maxine arrivant au sein du Phoenix Project, paralysée par une organisation silotée et procédurière. Ce n’est qu’au chapitre 5 que nous découvrons la Rebellion Team. De manière générale, cette première partie développe largement les dysfonctionnements qui peuvent être observées dans ce type d’organisation. Le paysage dressé, ou la vision d’horreur devrais-je dire, l’est avec beaucoup de détails et de réalisme, mais on n’y apprend rien. Cette première partie introduit toutefois dans ses dernières pages, les « 5 idéaux » qui forment la colonne vertébrale du texte.

Continuer à lire « Note de lecture : The Unicorn Project, par Gene Kim »

Note de lecture : Production-Ready Microservices, par Susan J. Fowler

Note : 4 ; Une vue bien trop généraliste des microservices depuis un point de vue « ops ».

J’étais impatient d’entamer la lecture de ce petit volume (il compte 130 pages pour sa partie principale). En effet bien qu’il s’agisse d’un texte de plus sur les microservices, il le fait avec une optique « ops » sous la plume de Susan Fowler, à l’époque SRE chez Uber. Dès l’avant-propos, l’auteur nous prévient : on ne rentrera pas dans les détails ici qui nous conduiraient trop loin. Il s’agit de poser les principes généraux et génériques qui permettent l’opérabilité d’une architecture microservices.

Pour mener à bien cette mission, le livre est découpé en 7 chapitres plus 2 annexes. L’entrée en matière s’intitule sobrement « microservices » et pèse 25 pages. Elle ne détaille pas les principes d’un microservice à la Sam Newman. Ici, il est plutôt question de scaling et surtout de présenter le modèle en 4 couches de l’écosystème microservices, qui servira de trame aux différents chapitres. Le chapitre 2 construit pour sa part la structure des chapitres restant, en évoquant la notion de « production ready ». Pour Susan Fowler, cela regroupe un ensemble de propriétés : stabilité, fiabilité, scalabilité, tolérance aux pannes, performance, monitoring et documentation. C’est déjà ici que l’on perçoit le regard du SRE : l’auteur prône la standardisation en toute chose ! Certes, elle évoque la promesse d’hétérogénéité prônée par l’approche microservices mais préfère refermer celle-ci au nom de l’opérabilité !

Le chapitre 3 s’attaque à la stabilité et à la fiabilité, les deux premières propriétés évoquées au chapitre précédent. La cible du propos est d’abord la standardisation des cycles de développements et du pipeline de déploiement. Bien que le terme « standardisation » me donne des frissons, j’appuie le propos développé ici. Un bon point pour le développement des environnements de stagging, partiel ou complet que je trouve pour la première fois bien évoquées ici. Scalabilité et performance sont au menu du chapitre 4. Le propos reste très général sur la notion de scaling, abordant les aspects qualitatifs et quantitatifs, ainsi que la gestion des ressources contraintes. Le capacity planning est brièvement abordé, j’attendais mieux d’un livre labellisé ops. L’efficience du modèle de tâches, du choix du langage ou des caractéristiques des bases de données sont tout autant mentionnées. Un chapitre décevant et frustrant.

Continuer à lire « Note de lecture : Production-Ready Microservices, par Susan J. Fowler »

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.

Continuer à lire « Note de lecture : Accelerate, par Nicole Forsgren, Jez Humble & Gene Kim »

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.

Continuer à lire « Note de lecture : Release It ! 2nd edition, par Michael T. Nygard »