Note : 4 ; Plus qu’une distillation, une introduction légèrement frustrante.
Dans la même veine que le « UML distilled », Martin Fowler accompagné d’un de ses collègues de Thoughtwork nous produit un ouvrage très court (moins de 160 pages !) destiné à nous faire découvrir et à nous donner les clés du monde NoSQL ou plutôt de cet écosystème. Pour donner un bon rythme au texte, cet opuscule est découpé en 15 chapitres, ce qui fait une moyenne de 10 pages par chapitre.
On commence par un petit historique sur l’avènement du mouvement NoSQL. Pas indispensable, mais sympathique et bien écrit. Les chapitres 2 et 3 abordent la problématique du modèle de données, de l’intérêt de considérer des agrégats de données, mais aussi la souplesse qu’apporte des bases de données sans schéma … avec le corollaire d’avoir une base de données propriétaire de l’application sachant l’interpréter.
Trois chapitres sont consacrés aux principes sous-jacents de ces bases de données. Le chapitre 4 passe rapidement sur le modèle de distribution. Le chapitre 5 passe moins rapidement sur la gestion de la consistance (vous savez, le fameux « eventually consistent »). En fait, il est même passablement ennuyeux. Enfin le chapitre 6 évoque en quelques pages la question de l’estampillage des versions dans un environnement clusterisé actif / actif.
Difficile, impossible même, d’évoquer les bases NoSQL sans parler du « map reduce ». C’est ce que fait le chapitre 7, bien mais pas aussi brillamment que je me serais attendu de la part de Martin Fowler.
Le cœur du livre est sans contestations possible occupé par les quatre chapitres suivants qui forment le début de la troisième partie. Chacun d’entre eux traite d’un type de base NoSQL.
Le chapitre 8 aborde les bases de données clé-valeur, en prenant comme exemple Riak. Les auteurs ont pensé que 6 pages suffisaient pour s’occuper de cela. Moi j’ai trouvé cela franchement léger.
Les bases de données « orienté document » ont à peine droit à un meilleur traitement au chapitre 9. C’est MongoDB qui fort logiquement a été choisi, le sujet étant traité en 9 pages. Malgré tout, cela me laisse un meilleur goût tout en étant un poil superficiel.
10 pages à peine pour évoquer les bases de données orientées colonnes, c’est un peu un challenge car le sujet n’est pas simple, ou plutôt le paradigme est tellement différent de ce que nous connaissons qu’il aurait mérité plus d’attention que ce que lui accorde ce chapitre 10. J’en sors un peu confus et convaincu que j’ai besoin d’un complément d’information sur la question.
Si différentes des autres types, les bases de données orientées graphe telles que Neo4J qui sert ici d’exemple m’apparaissent clairement abordées dans ce chapitre 11, même si c’est seulement sur 10 pages. En fait ce livre m’incite à me pencher plus avant sur cette base de données et ce que je fais en ce moment ! Ne serait-ce que pour cela : merci !
Le chapitre 12 sur la migration de schéma de données est une blague. Il n’était pas franchement utile, loin de là. On reconnaît l’insertion au chausse-pied du sujet favori de Pramod Sadalage. De ce sujet et de quelques autres, je me serais bien passé au profit d’un développement plus conséquent des 4 chapitres les plus importants du livre !
La persistance polyglotte est un sujet déjà abordé en début de livre. Sans être ennuyeux, les 7 pages de ce chapitre 13 semblent passer une seconde couche.
J’aime bien l’idée d’un chapitre « beyond NoSQL » mais les auteurs n’ont pas tant à dire dans ce chapitre 14. Dommage. Finir par un chapitre sur le choix du type de base NoSQL est une bonne idée. Mai ce n’est visiblement pas si facile à faire, car cela sonne un peu creux.
Qui aime bien châtie bien. Et Martin Fowler d’habitude très brillant dans l’exercice ne convainc pas dans celui-ci. Il prends un « 4 » là où j’aurais certainement noté 5 pour quelqu’un d’autre. Le livre reste fidèle à l’idée de brièveté, mais le contenu est fort mal réparti : trop de place est accordée à des sujets peu importants ou qui pourraient être mieux synthétisés, alors que la partie importante de l’ouvrage aurait dû bénéficier d’un meilleur traitement sur deux ou trois fois plus d’espace !
C’est un livre qui pourra être utile au manager, car il traite, ou plutôt balaye le sujet dans un volume qui peut être absorbé en un week-end et permet de savoir de quoi on parle. Pour ma part, je me sens quelque peu frustré, et je pense que je vais me tourner vers le « seven databases in seven weeks » paru chez Pargamatic Bookshelf !
Référence complète : NoSQL Distilled, a brief guide to the emerging world of polyglot persistence – Pramod J. Sadalage & Martin Fowler – Addison Wesley 2012 – ISBN : 978 0 321 82662 6