Écrire un livre à deux : Haute Disponibilité sous Linux, des prémices à la sortie

Posté par  . Édité par palm123 et Ysabeau 🧶 🧦. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
38
7
sept.
2021
Administration système

En juillet 2020, LinuxFR m’avait fait un grand honneur en m’interviewant dans le contexte de la sortie de la sixième édition de mon livre sur l’administration Linux. Une question concernait la coécriture, (l’écriture à plusieurs auteurs) et j’avais indiqué que j’avais proposé ce projet à un ami, sur un sujet devenu compliqué. Un an après, le résultat de cette collaboration a été publié !

Charles Sabourdin et moi avons donc la joie de vous annoncer le résultat de plus de six mois de travail :
Haute disponibilité sous Linux : De l’infrastructure à l’orchestration de services. Il est disponible via les réseaux de distribution ordinaires. Il nous a semblé pertinent de vous montrer tout le cheminement nous ayant mené jusqu’à cette sortie.

Sommaire

Contexte

Si je suis un Linuxien passionné depuis le milieu des années 1990, l’ingénierie système Linux n’est devenue mon cœur de métier qu’en 2006. Je me suis très vite intéressé à la Haute Disponibilité : répartition de charge, clusters, stockage, réseau. Entre 2010 et 2012, j’ai sorti deux éditions d’un livre dédié à ce sujet, qui dérivait la mise en place et l’utilisation de la haute disponibilité sous Linux. Très spécifique, il a eu un succès que je qualifierais d’estime : peu vendu, mais apprécié des spécialistes. Très axé technique, il ne présentait pas de fil rouge ou de cas concrets, juste les grands principes et leur implémentation.

En 2013, j’ai changé d’employeur pour travailler sur un projet de grand ampleur, la construction d’une plateforme directement exposée sur Internet, délivrant de nombreux sites web et backends d’applications mobiles pour une quarantaine d’entités internationales du groupe. Les six années que j’ai passées sur cette plateforme, de la définition de son architecture jusqu’à sa fermeture en passant par son exploitation, ont été les plus denses que j’ai connues, jusqu’à ce jour. Elles m’ont permis d’aborder des notions supplémentaires liées à l’exposition sur Internet, la répartition sur plusieurs datacentres, la mutualisation des équipements, le cloud, la sécurité, mais aussi une nouvelle forme de travail associée à de nouveaux outils via la culture DevOps, notamment via une collaboration importante avec les équipes projets, et l’utilisation d’outils d’automation.

En 2016, Charles rejoint mon équipe au moment où nous effectuons notre passage vers les orchestrateurs, notamment avec Kubernetes mais surtout OpenShift. Pour être parfaitement honnête, un troisième larron nous a rejoint (Salut Pascal ! Le prochain, on s’y colle ensemble ?) De 2016 à 2019, l’intégralité des projets ont été portés sur une plateforme OpenShift.

Si je suis Ops, Charles est à l’origine plutôt orienté projet, urbanisme et développement. Charles a très vite appréhendé la logique de Kubernetes, dont il est devenu un virtuose, jusqu’à se faire certifier et évangéliser les foules. Quant à moi, j’avais posé toutes les fondations de la plateforme et une grosse partie de l’automation, basée sur Ansible et docker. L’équipe était plus nombreuse, mais nous en étions le cœur battant. À la fin du projet, outre un sentiment de vide à combler, nous avons tous voulu capitaliser notre expérience. D’où cette idée d’écriture commune d’un livre.

Environnement de travail

Désolé pour les puristes, le livre a été écrit sous Office 365, qui s’est très bien prêté à l’exercice, malgré parfois quelques soucis liés à la feuille de style imposée par l’éditeur. Pour l’environnement de test, nous avons souhaité qu’il soit accessible au plus grand nombre, et nous avons utilisé des machines virtuelles sous Virtualbox. 13, au total. Et nous avons poussé notre matériel personnel dans ses derniers retranchements. Ma machine de plus de 7 ans a souffert, avec son vieux Intel Core i7 et ses 32 Go de RAM. De même, le porte-monnaie a souffert lors des tests d’OpenShift sous AWS, surtout quand on oublie de libérer le stockage à la fin… Quant à l’OS, c’est Linux, plus spécialement Ubuntu 20.04 LTS. Sauf pour la partie OpenShift.

Le fil rouge

Là ou les précédents livres n’avaient pas de fil rouge spécifique, nous avons pris un nouveau point de vue : nous avons une application, un gestionnaire de type todo list auquel on peut associer des fichiers. L’application est écrite en Java, démarre comme un service, et est accessible via un navigateur web, sur un réseau d’entreprise ou depuis Internet. Elle a besoin d’un peu de stockage pour les fichiers téléchargés, et d’une base de données (MariaDB) pour stocker les informations. Comment, d’une installation standalone sur une petite machine, peut-on passer à une solution totalement redondante et virtuellement incassable ?

C’est le fil rouge du livre, où nous abordons simplement, étape par étape, comment construire l’application, comment la modifier selon les évolutions nécessaires, comment construire une plateforme physique assurant sa propre disponibilité, comment bien configurer le réseau et ses services, son stockage local comme partagé, comment créer des clusters, comment automatiser, comment mettre en place des répartiteurs de charge, des reverse proxies, comment gérer les affinités de session… Puis nous abordons l’orchestration, les clusters Kubernetes, jusqu’à disposer d’une plateforme complète en haute disponibilité.

Les technologies

Tout un tas de choses sont abordées : Les architectures redondantes en haute disponibilité, le code Java, le RAID, les agrégats réseau, les DNS, Ansible, les containers (docker), les reverse proxies (NGinx), les répartiteurs de charge (HAproxy), Kubernetes avec minikube, puis avec un vrai cluster, la construction d’un cluster de stockage associant NFS et XFS, les protocoles VRRP et OSPF, etc.

Aussi, et c’est souvent une critique faite sur ce type de solution, comment on passe d’un seul serveur à une dizaine… Mais comme tout est automatisé et mutualisé, ce n’est plus une seule application qu’on peut déployer, mais des dizaines ! Et du coup, cette critique n’a plus de sens. Sur dix serveurs bien dimensionnés et bien répartis, on fait tourner des centaines de sites sans problème.

La répartition du travail

La répartition du travail s’est faite naturellement : Charles a écrit l’application, il était plus sur les chapitres la concernant, et une bonne partie de la présentation et l’implémentation de Kubernetes et du dernier chapitre. De mon côté, je me suis occupé des parties liées à l’infrastructure : OS, système, réseau, stockage, mais aussi une partie du clustering Kubernetes. C’était une symbiose : nos écrits et livrables s’articulent naturellement, le travail de l’un est réutilisé par l’autre. Charles comme moi avons écrit des playbooks ansible, des yaml de configuration Kubernetes.

L’écriture et l’accident OVH

La mise en place de l’environnement de travail, les premiers tests d’infrastructure, l’écriture de l’application de base et des premiers playbooks ansible, démarrent en octobre 2020. L’écriture du livre, qui devait originellement contenir huit chapitres et durer deux-trois mois, démarre en décembre 2020. Soir et week-end, c’était le deal mais Covid oblige, nous avons travaillé à distance, à l’aide de nombreuses sessions de visioconférence, séances de tests et de corrections. Nous avons ajouté un neuvième chapitre, tant la description de l’installation et des tests d’un cluster Kubernetes était dense.

En mars 2021, un incendie ravage en partie un datacenter d’OVH. Dès fin février nous pensions ajouter un dixième et dernier chapitre pour aborder toute la partie « casse-pieds » pour les développeurs et les Ops. On aime bien écrire du code et monter des plateformes, mais après, il faut penser production et exploitation. Comment protéger, comment surveiller ? Que se passe-t-il si on perd tout ? L’incendie nous a fourni de la matière pour l’écriture du dernier chapitre.
Signalons aussi que rien n’est incassable. D’où le mot « virtuellement ». Un OS, des services peuvent devenir instables. Le plus grand facteur d’instabilité reste cependant l’humain, qui, au lieu de redémarrer séquentiellement les répartiteurs, les éteindra tous d’un coup, avant de se rappeler que c’est via eux qu’il était connecté…

La relecture et la sortie

En avril, nous avons pu souffler après plusieurs mois intenses. La relecture est souvent une phase compliquée. Elle a démarré en mai. Non seulement le délai pour tout rendre n’est que d’une semaine, mais il faut accepter les critiques du correcteur qui a l’œil du lecteur et le recul que nous n’avions pas lors de l’écriture. Avoir parfois une dizaine de remarques sur une page, et admettre qu’elles sont pertinentes… Cette phase terminée, c’est la création de l’index, plus rapide, mais si nécessaire.

La relecture, c’est aussi rentrer dans le concret. Les épreuves fournies par l’éditeur sont ce que sera le résultat final, et c’est gratifiant, surtout pour une première écriture.
Enfin, deux semaines après la remise des corrections, avec parfois quelques retouches, c’est la sortie ! Le livre apparaît partout !

La sortie, c’est aussi l’occasion de partager, comme ici, notre expérience. Mais c’est aussi celui de partager notre code, sous licence libre, disponible sur github (lien plus bas).

Et après ?

Nous en sommes là. Avec plein de questions : qui va lire ce livre ? Les gens vont-ils l’apprécier ? Les critiques seront-elles positives ? Comment en parler sans faire trop « pub » ? Allons-nous devenir riches (surtout que cette fois, nous avons un contrat lié aux ventes) ?

Chers camarades Linuxiens et Linuxiennes, les auteurs espèrent que vous apprécierez autant le contenu du livre que le plaisir que nous avons eu à le rédiger. Et surtout, amusez-vous.

Aller plus loin

  • # Chapeau !

    Posté par  (site web personnel) . Évalué à 9.

    Bravo pour votre travail et m….. pour les ventes …

    Devenir riche, possible (et je vous le souhaite) mais je parle d'expérience en tant qu'auteur chez le même éditeur de Scripting Python Sous linux c'est pas la partie la plus facile :)

    En plus je vais commencer par me moquer, ;) … mais tu pouvais utiliser LibreOffice sans problème et avec les styles fournis par l'éditeur. Que tu peu améliorer d'ailleurs.

    Mais soyons compréhensif, c'est du boulot l'écriture d'un pavé de 432 pages autant prendre les outils que l'on connaît le mieux ;)

    Dés que possible je vais voir si je peu encore lire votre livre et reviendrais en parler.

    Sinon essayes d'en parler sur les forums que tu cotoies d'habitude et même d'autres, la aussi c'est du boulot, fais le maintenant car la mousse retombe très vite …

    J'en profite pour te parler des petits jeux qui m'ont amusé quelque temps :

    faire un recherche google avec le no ISBN, cela permet de voir quelle librairie propose ton ouvrage sur le net, et la c'est assez impressionant de voir que même dans certain pays improbable ( Australie, Japon etc … ) des librairies le propose en Français

    Sinon il y a aussi le classement dans les ventes amazones en ce moment mon livre est en 350118 position en Livres et 4767eme en Programmation et langages (Livres), attention cela change tout les jours … devenez pas accros :)

    Par contre je viens de voir que plus d'un an après, j'ai enfin un avis ( 5 étoiles ) mais pas de commentaire :(

    Encore bravo et merci pour le partage d'expérience

    • [^] # Re: Chapeau !

      Posté par  (site web personnel, Mastodon) . Évalué à 4.

      Par contre je viens de voir que plus d’un an après, j’ai enfin un avis (5 étoiles) mais pas de commentaire :(

      Comme tu as piqué ma curiosité (et que j’ai autre chose à faire donc, logiquement…), en fait il y a aussi un avis sur le site de la FNAC, 5 étoiles plus un commentaire :

      Après avoir consulté la table des matières sur le site de l’éditeur, ce livre ne pouvait que correspondre à l’attente

      De l’importance des tables des matières (et des index)…

      « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

      • [^] # Re: Chapeau !

        Posté par  (site web personnel) . Évalué à 3.

        D'ailleurs on commence par la table des matières, même si je l'ai remaniée et revu au moins 5 ou fois après

        Mais je ne t'apprends peut être pas grand chose …

        Ce commentaire à l'origine était sur fnac.be

        Sur 350 ventes 1 commentaire … :( heureusement positif …

        Ceci dit j'ai parcouru quelques pages et la tdm du livre de Sébastien et Charles et le même commentaire peut s'appliquer.

        Perso, cela n'engage que moi, j'ai envie d'en lire plus car il s'agit apparemment d'un cas concret (très belle idée que ce 'fil rouge') décrit en prenant en compte de multiples technos.

        De fait, même si je n'applique pas exactement la recette, de toute façon c'est instructif car cela montre comment faire certains points difficile à imaginer quand tu ne les a jamais vu.

        Mais attention, je le redis c'est un survol de 15 mn pas plus, même pas 1% du volume

        • [^] # Re: Chapeau !

          Posté par  (site web personnel, Mastodon) . Évalué à 3.

          Si le bouquin est aussi bien fait, voire scrupuleux et complet que celui sur l’administration de Linux de Sébastien tout seul, et je ne vois pas pourquoi il ne le serait pas, je pense qu’il mérite effectivement largement d’être acheté pour peu qu’on s’intéresse au sujet ou qu’on ait sérieusement à jouer avec le concept :-).

          Concernant la table des matières, je dirais plutôt qu’on commence par lister les grandes lignes du projet et les organiser en chapitre, ce qui aboutit de facto à la table des matières qui est, évidemment, changeante au fil de la rédaction.

          Par contre, je suis toujours perplexe sur la 4ᵉ de couv. censée mettre en valeur le contenu. Les trois quarts du temps (je suis optimiste), ça ne donne pas vraiment envie de lire le bouquin. D’ailleurs, si vous voulez faire une dépêche sur vos bouquins, évitez le copier-coller de cette présentation, la modération sera impitoyable.

          « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

          • [^] # Re: Chapeau !

            Posté par  (site web personnel) . Évalué à 1.

            Vous gagnerez peut être vente avec un format epub :)

            Le format papier c'est bien, mais j'avoue que j'ai de plus en plus de mal à en acheter alors qu'un format numérique qui vous suis dans votre liseuse, c'est quand mm pas mal.
            (Client Kindle, je sais c'est mal, c'est quand mm pratique)

            (Je ne parle pas des faux livres diffusés en application Web, lire sur un mobile, c'est loin d'être aussi confort qu'une liseuse).

            Après, je suis peut être vieux ^

            • [^] # Re: Chapeau !

              Posté par  (site web personnel, Mastodon) . Évalué à 3.

              C’est à l’éditeur qu’il faut dire cela. Ce sont des choix éditoriaux et commerciaux et les auteurs ont rarement leur mot à dire. Certaines maisons d'édition ont peur qu'on ne diffuse trop facilement leurs bouquins au format epub.

              Cela dit, pour ce genre de bouquin, et j’ai une liseuse (la première achetée en 2012) et je lis beaucoup sur la liseuse, voire, maintenant aussi sur mon téléphone (hors de chez moi), j’ai tendance à trouver le papier plus pratique. Bon, évidemment, le défaut du papier c’est que ça limite un brin pour les copié-collé de bouts de code.

              « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

              • [^] # Re: Chapeau !

                Posté par  (site web personnel, Mastodon) . Évalué à 2.

                Tout à fait : c'est au niveau de l'éditeur. ENI justement a une plateforme web captive pour les versions électroniques… Eyrolles et O'Reilly sont plus avancés sur ce point (entre autre ils font des PDF avec DRM et on des partenariats comme Google et Amazon je crois) mais bon ça concerne peu de livres comparé à leur catalogue.

                “It is seldom that liberty of any kind is lost all at once.” ― David Hume

            • [^] # Re: Chapeau !

              Posté par  (site web personnel) . Évalué à 2.

              Et je suis bien d'accord avec toi

              Mais ENI par exemple, ne publie des livres electroniques que depuis son site pas de lecture possible autrement.

              Enfin de ce que j'ai compris

              Sinon oui une kindle même une vieille version c'est quand même pratique …

            • [^] # Re: Chapeau !

              Posté par  (site web personnel, Mastodon) . Évalué à 3.

              La vieillesse est relative parce-que je ne suis plus toute jeune, mais je préfère de loin le papier …quand je suis en train d'apprendre (effectivement, ça me pose aucun souci d'avoir mes romans sur liseuse ; et j'aime aussi avoir certains ouvrages technique au format électronique, mais seulement pour l'archive de ce que je veux garder plutôt que les anciennes étagères) C'est probablement lié aux vieilles habitudes (je vois mieux mon avancement au volume des pages plutôt qu'à quelque barre de progression, je retiens mieux les pages que j'ai tournée et parfois griffonnées, etc.)

              “It is seldom that liberty of any kind is lost all at once.” ― David Hume

              • [^] # Re: Chapeau !

                Posté par  . Évalué à 1.

                Je préfère aussi les versions papier des bouquins, que ce soit une ouvrage technique ou un roman. Je ne sais pas, mais je trouve plus vite et je retiens mieux quand c'est couché sur papier. Une histoire de lumière directe ou indirecte, semble-t-il.

                Sauf que…

                J'ai une liseuse Kindle, un modèle ancien, encre électronique, c'est comme le papier niveau confort de lecture pour un roman. Et j'avoue que, m'étant cassé le coude cet été et n'ayant pas pu tourner les pages de Dune que je voulais lire avant la sortie du film, j'ai énormément regretté de ne pas l'avoir acheté sur Kindle. Pour un livre technique, avec des schémas, etc. par contre, je ne veux même pas essayer.

                • [^] # Re: Chapeau !

                  Posté par  (site web personnel, Mastodon) . Évalué à 2.

                  Pour les schémas ça le fait aussi parce-qu'on peut zoomer sur les liseuses. Enfin, dépend. Et faut apprécier (autant il m'arrive de jouer avec le zoom sur un PDF lu sur l'ordi, autant ça se fait pas naturellement sur la liseuse –probablement parce-que je manipule inconsciemment comme un livre classique ?)

                  Je ne sais pas trop et n'ai pas spécialement creusé l'histoire de lumière ; j'ai remarqué que nombre de gens des nouvelles générations semble retenir tout aussi bien sur les écrans, sans compter toutes les personnes qui ont toujours eu du mal avec le papier (je soupçonne des traumas d'enfance pour certains –le stigmate des instits et tout ça.) Mais bon, nous n'utilisons et ne développons pas tous nos sens de la même manière et c'est pourquoi il est bien d'avoir plusieurs supports (y compris les livres audio qui ont de plus en plus la côte) et approches (pédagogiques).

                  “It is seldom that liberty of any kind is lost all at once.” ― David Hume

                • [^] # Re: Chapeau !

                  Posté par  (site web personnel) . Évalué à 2.

                  Dune que je voulais lire avant la sortie du film

                  +1 si vous ne connaissez pas le livre, difficile de suivre le film

                  Le précédent film de 1984 (ça rajeunit pas …) j'avais du le voir 3 fois au cinéma
                  Les 2 premières je passais mon temps a expliquer certain concept aux autres,

                  La 3ème c'était seul … pour apprécier la beauté du film …

                  pour moi il n'y avait que 5 à 10% du livre dans le film.

                  Ferons t il mieux ce coup ci ? tenez nous au courant :)

            • [^] # Re: Chapeau !

              Posté par  . Évalué à 2.

              C'est sûr que c'est ballot de ne pas avoir de vraies versions numériques.
              Les trucs à vie qu'on peut pas télécharger, ça reste douteux.
              Personnellement, je trouve que ENI déconnne sur le sujet. Si tu prends le papier, tu devrais pouvoir avec une version numérique non limitée dans le temps même si il faut payer un peu plus.

              • [^] # Re: Chapeau !

                Posté par  (site web personnel, Mastodon) . Évalué à 2.

                C'est à vie tant que les deux (ENI –sa plateforme– et le client) existent…

                “It is seldom that liberty of any kind is lost all at once.” ― David Hume

                • [^] # Re: Chapeau !

                  Posté par  . Évalué à 3.

                  Oui et vu l'expérience que j'ai eu avec certaines plateformes de VOD, on va dire que ça peut-être éphémère …

  • # Tu tombes à point

    Posté par  (site web personnel) . Évalué à 5.

    Ce livre m'a l'air d'être exactement ce que je voulais lire. J'ai une culture de développeur très poussé, et une culture de sysadmin extrêmement limitée. J'aimerai me mettre plus dans la peau d'un DevOps et il me semble que ton livre va bien m'aider. Je m'en vais le commander dans pas trop longtemps!

    Bonne journée.

  • # J'achète!

    Posté par  . Évalué à 4.

    Si il est du même niveau que le précédent sur la haute dispo vous pouvez y allez les yeux fermés, c'est du bon voir du très bon!

  • # Si c'est pas beau ça ...

    Posté par  (site web personnel) . Évalué à 2.

    Extrait de l'introduction :

    Au gré des dix chapitres, nous allons aborder de multiples domaines : code applicatif, infrastructure, architecture, stockage, réseau, automation, containers, clusters, bases de données, orchestration, sécurité, etc., le tout intégralement sous Linux, et surtout exclusivement avec des produits libres ou open source, distribués par divers éditeurs. Tous les exemples et le code source sont fournis, sous licences open source.

    Je remet une couche sur les 30 ans de linux, que d'évolution …

    Aaaah j'aimerais avoir 18-20 ans aujourd'hui (et pas que pour les filles … )

    Sinon il y a un QUIZZ :)

    j'avais bien rigolé en rédigeant le mien, même si beaucoup de truc ont été rejeté car trop humoristique :)

    Exemple :

    Vi est bien meilleur que emacs :
    • Vrai
    • Vrai de Vrai
    • depuis toujours
    • Pour sur
    • Je refuse de répondre à cette question

    Refusé mais je comprends vraiment pas pourquoi …

    Question : Le format de fichier INI a été introduit par

    • Microsoft
    • Linux
    • Les éditions ENI
    • IBM
    • Je ne sais pas
    Celle la a bien fait rire, mais pas acceptée non plus …

    Celle ci est passé :

    Question : Qu'est ce que la POO (une seule réponse dans le contexte de ce chapitre … ) ?

    • La Programmation Orienté Objet
    • une mnémonique pour faire des ronds de fumée
    • une expression typique des réseaux sociaux
    • un émoji ?
    • Je ne sais pas
    Note : vérifiez l'emoji poo :)

    • [^] # Re: Si c'est pas beau ça ...

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Refusé mais je comprends vraiment pas pourquoi…

      Sûrement parce que c'est une question très intime après tout. Je ne vois aucune autre raison.

      « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

    • [^] # Re: Si c'est pas beau ça ...

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Pour le format ENI (lapsus du vendredi), la question est très difficile car peu de gens savent qu'on le rencontrait déjà sur les machines du grand bleu (ou plus précisément sur des cartes perforées opérant sur leurs armoires…) par contre, l'extension a été popularisée par la firme de Redmond, et ce bien avant leur Fenêtre (je mettrai ma main à couper que j'en ai déjà vu dans des disquettes de programmes DOS, mais sans les sections il me semble)

      Pour l'émoji de point U+1F4A9, selon la représentation, c'est « pile of poop » ou « swirl of brown poop » ou « smiling poop » ou « dog dirt » Github et Slack le connaissent comme :poop: ou :shit:

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: Si c'est pas beau ça ...

      Posté par  . Évalué à 1.

      Nous avons glissé une ou deux bêtises, volontairement, dans le quizz /o\

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.