Note de lecture : Introduction to Apache Flink, par Ellen Friedman & Kostas Tzoumas

Note : 3 ; Apache Flink pour les executives.

Voici un petit traité qui promettait d’en savoir plus sur Flink en 6 chapitres et à peine une centaine de pages. Le texte me laisse quelque peu sur ma faim, me donnant plutôt l’impression d’un ouvrage dédié aux « executives ».
Le premier chapitre cherche à répondre à la question fondamentale « pourquoi Apache Flink » en 18 pages. On y répond surtout au « pourquoi le streaming processing » dans la première moitié, mais le chapitre se rattrape un peu en donnant les clés du positionnement de Flink par rapport aux autres frameworks de streaming. Bienvenu également, la vue aérienne des API et des librairies sus-jacentes qui expose les vues « batch » et « streaming » de Flink. Mais ce chapitre présente surtout les différents cas d’usages dans différents domaines.

Le second chapitre est d’avantage consacré aux aspects architecture, et met en lumière l’articulation transport / processing. Au moins le propos clarifie l’importance de Kafka dans ce contexte. Mais il manque quand même cruellement de précisions plus concrètes : le reste du texte donne quelques schémas de très haut niveau et d’autres cas d’usage. J’aurais préféré une vision dynamique des fonctionnements en mode stream et batch.

Au chapitre 3, nous allons voir ce que Flink fait. Le sujet est abordé sous l’angle des caractéristiques du framework : gestion des fenêtres glissantes, des états et des « checkpoints ». Littéralement, le chapitre répond bien à ce que fait Flink, mais sans laisser transparaître « comment » il le fait ce qui est quelque peu frustrant.

La gestion de la temporalité est un aspect majeur des frameworks de streaming en général, et de Flink en particulier. La discussion batch versus stream prend trop de place à mon avis. Toutefois le chapitre du premier extrait de code ! Dommage que l’on plonge tout de suite à ce niveau de détail sans avoir de compréhension du contexte d’exécution. Le chapitre aborde quand même bien les notions afférentes à la gestion de la temporalité. Nous sommes en quelque sorte dans la continuité du chapitre 3.

Changement de cap avec le chapitre 5 et le traitement des états. Les auteurs inscrivent celui-ci dans le cadre des architectures CEP (complexe vent processing). A défaut d’être bien illustré par du code, le concept est bien illustré par des exemples qui ne sont pas du tout stratosphériques, ils demandent même un peu de concentration. Checkpoints et Savepoints sont bien illustrés par ce biais. Par ailleurs, les états requêtables semblent un concept intéressant, mais peu développé ici.

C’est au mode batch qu’est consacré le chapitre 6. Il montre la couleur dès le début : le batch est un cas particulier du mode stream ! Là encore les exemples sont trop localisés pour être vraiment parlant.

Les annexes donnent pas mal de pointeurs vers des articles et des présentations et c’est tant mieux. L’opuscule donne un éclairage intéressant sur l’utilité de Flink. Il est bien loin de répondre à toutes les questions et ne m’a pas permis de savoir si je tenais le bon framework vis-à-vis de mon problème ce qui est très frustrant. Il clarifie bien que le frameworks s’inscrit dans une architecture intégrant un middleware de messaging comme Kafka. Il navigue entre la vue très haut niveau qui manque d’éléments tangibles et du code trop partiel pour en comprendre le contexte d’utilisation. Bref, bien que le texte cherche à avoir un angle technique il semble dans le même temps s’adresser au décideur. Et n’en déplaise à certains, le « en même temps », ça ne marche pas.

Référence complète : Introduction to Apache Flink – Ellen Friedman & Kostas Tzoumas – O’Reilly 2016 – ISBN : 978-1491976586

Publicité

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.