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 ?
La seconde partie de l’ouvrage, « Core Mesos » rentre plus en profondeur sur le fonctionnement du framework. Il s’étend pour cela sur 85 pages totalisant 4 chapitres. Le premier d’entre-eux, « Setting Up » y est pour 24 d’entre-elles. Ce chapitre aurait peut-être pu arriver plus tôt, peut-être en chapitre 2 ? Il explique comment installer Mesos sur différents environnements et aussi, choses importante, comment il se déploie avec Zookeeper, une élément important du dispositif. Sans être mortel, le chapitre est OK.
Au chapitre 4, on attaque du dur avec « Mesos Fundamentals », qui couvre une vingtaine de pages. On y explique ce que signifie allocation de ressources pour Mesos et comment ce dernier assure tolérance aux fautes et haute disponibilité. C’est très bien, mais il manque hélas (et cela compte beaucoup dans la note finale) comment cela fonctionne concrètement avec un exemple détaillant la dynamique entre le framework et l’application sus-jacente. C’est très frustrant, car c’est pour cela que je suis venu !
Logging et debugging sont les sujets du chapitre 5. Ses 17 pages sont résolument orientés du point de vue de l’exploitant, ce qui paraît logique. Si l’on prends pour acquis que l’on maitrise le fonctionnement de Mesos, on en est à maitriser sont fonctionnement général. C’est évidemment très « ops », j’ai donc du mal à m’y enthousiasmer.
Cette seconde partie se conclut par le chapitre 6 qui couvre Mesos en production : comment paramétrer ses limites, configurer l’authentification, les répertoires de log, etc. Toutes informations indispensables mais qui ne sont pas mon centre d’intérêt.
La dernière partie du livre, « Running on Mesos » est aussi la plus volumineuse du livre avec 100 pages structurés en 4 chapitres. Je considère le premier d’entre-eux comme le plus important car il est dédié au framework Marathon (car Mesos est fait pour être accédé au travers de frameworks d’usage), que je vois souvent vu comme indissociable de Mesos. 27 pages sont dédiées au sujet. Encore une fois, j’en ressort frustré car le focus est essentiellement mis sur l’opérabilité, le déploiement et la configuration et non sur la dynamique de fonctionnement. Je ne sais toujours pas comment tout cela fonctionne, le point de vue est exclusivement Ops !
Le chapitre 8 couvre Chronos, qui est un framework de scheduling batch. Même remarques que pour le chapitre précédent : un focus exclusif sur le déploiement, la configuration et l’opérabilité. Le point de vue développement et design est complètement ignoré. Ce sont 27 pages d’une nouvelle déception.
Le chapitre 9 est consacré à Aurora, le framework de l’avenir car son spectre est celui de Marathon et Chronos combinés. Il est long de 25 pages et s’inscrit dans la même lignée de frustration pour moi. Le dernier chapitre m’apparaît plus prometteur puisqu’il a pour but l’écriture d’un framework au dessus de Mesos en Python. On en sait donc plus sur les messages qui s’échangent entre Mesos et le framework et les interfaces que le framework doit implémenter. Bref, ce que je désirais savoir sur les 3 chapitre précédent, voir sur tout le reste du livre. Dommage que ce chapitre ne fasse que 22 pages !
De mon point de vue de développeur/ concepteur, ce livre est donc une déception. Il donne que peu d’informations sur le fonctionnement de Mesos et la manière dont il s’articule avec ses framework et les impacts en terme de conception pour les applications finales. Il s’agit d’un texte visant les ops. Je n’en sait guère sur ce que j’étais venu chercher une fois la dernière page tournée !
Référence complète : Mesos in Action – Roger Ignazio – Manning 2016 – ISBN : 978 1 61729 292 7