Accueil > Big Data, Forums et Salons > DataStax Day Paris 2016

DataStax Day Paris 2016

Le 14 Juin dernier j’étais à la Maison de la Chimie à Paris pour la conférence DataStax Day. Comme son nom l’indique, cette conférence est organisée par DataStax qui est l’éditeur de la version Enterprise de Cassandra. Elle a remplacé la conférence Cassandra Day qui avait eu lieu à Paris en 2015. Au programme de la journée, des conférences sur l’écosystème DataStax en général et Cassandra en particulier, des retours d’expériences et des ateliers pratiques.

Pour y assister, aucun frais d’inscription, il suffit de s’y prendre assez tôt car les places sont limitées. J’ai été moi-même sur liste d’attente avant d’avoir la confirmation de mon inscription moins de deux semaines avant le jour du séminaire.

Précision. Il s’agit d’un événement organisé par DataStax. On n’échappe donc pas au discours marketing. Mais cela n’enlève rien à la qualité des interventions.

Par ailleurs, les collaborateurs de DataStax France se montrent très disponibles et très sympathiques tout au long de la journée. Ils nous expliquent que les équipes de DataStax en France sont composées d’architectes, de commerciaux et de développeurs. Ils organisent régulièrement des BBL dans le cadre de leur mission d’évangélisation. Il suffit de leur demander.

conf_datastax_day_paris

Pourquoi assister à la conférence ?

Parce que c’est la seule conférence entièrement dédiée à Cassandra de l’année en France. Pour ceux qui ne connaissent pas très bien Cassandra, c’est un très bon point d’entrée car les talks ne s’adressent pas qu’à des spécialistes. Pour ceux qui connaissent bien Cassandra, c’est une occasion unique d’échanger avec des experts reconnus, d’avoir leurs conseils et leurs retours d’expériences. Les ateliers pratiques proposés l’après-midi permettent d’approfondir les concepts introduits dans les présentations du matin.

Pour aller plus loin, DataStax propose régulièrement des meet-ups techniques à Paris (http://www.meetup.com/fr-FR/Cassandra-Paris-Meetup).

Pourquoi cet article ?

En tant que développeur et concepteur d’applications web, je m’intéresse particulièrement aux technologies de persistance des données qui constituent l’un des facteurs les plus importants de la réussite ou de l’échec d’un projet. Dans le monde des bases de données NoSQL, Cassandra est l’un des leaders en terme de scalabilité et de performance, en particulier pour de très gros volumes de données, ce qui en fait l’une des technologies à connaître pour réaliser des projets orientés Big Data. A ce sujet, vous pouvez lire le rapport Gartner du 6 octobre dernier qui place Cassandra et DataStax en première position de 2 des 4 cas d’utilisation de ses tests comparatifs des solutions de bases de données du marché (http://ww2.datastax.com/E050I0BlF450z0kZ1e01Z02).

J’ai entendu parler pour la première fois de Cassandra à Devoxx 2014 où j’avais assisté à une présentation à ce sujet mais je n’avais pas été plus loin à l’époque. J’ai commencé à m’y intéresser réellement bien plus tardivement au début de l’année 2016. Je ne suis donc pas particulièrement un pionnier mais j‘ai depuis suivi les cours en ligne gratuits dispensés par DataStax et j’ai passé la certification développeur avec succès. C’est dans le cadre de ma préparation à la certification que j’ai voulu assister à la conférence.

En revenant sur trois sujets présentés lors du DataStax Day, cet article a pour but de faire découvrir Cassandra et de donner des pistes pour aller plus loin à ceux qui en auront envie.

En quoi Cassandra change la donne ?

L’une des premières conférences de la journée est consacrée à la structure de données et aux fonctions de réplication de Cassandra. Et pour en parler, c’est Jonathan Ellis lui-même qui prend la parole et en français s’il vous plaît. Pour ceux qui ne le connaissent pas, en plus d’être CTO et co-fondateur de DataStax, Jonathan Ellis est responsable du projet Cassandra pour la fondation Apache. 

Sa présentation est clairement destinée à introduire les fondamentaux de Cassandra. Il revient tout d’abord sur l’origine de la création de Cassandra. Il s’agissait de répondre aux limites des SGBD traditionnels face aux défis du BigData. Pour y répondre, Cassandra propose une architecture peer-to-peer sans maître ni esclave de façon à offrir une scalabilité horizontale linéaire et une très haute disponibilité.

Les données sont réparties dans un cluster selon un hash : c’est la clé de partition. A chaque requête, le nœud qui reçoit la requête est chargé de router la requête vers le nœud qui contient la donnée en calculant le hash. Le nœud qui calcule le hash est appelé le partitionner. N’importe quel nœud peut faire office de partitionner. C’est la partie masterless de l’architecture.

Chaque nœud joue exactement le même rôle. Si l’un des nœuds tombe, pas besoin d’interrompre le service pour choisir un nouveau master, il n’y en a de toute façon aucun. Si on a besoin d’ajouter un nœud, ce nouveau nœud, comme les autres, sera responsable d’une partie des partitions et pourra à tout moment faire office de partitionner.

conf_datastax_day_topology

Au sein d’un cluster, les données sont répliquées selon un facteur de réplication. Les données sont répliquées en asynchrone. Par défaut, le résultat de la requête est retourné au client lorsque celle-ci a été exécutée sur l’un des nœuds. La particularité de Cassandra, c’est que ce niveau d’acquittement peut-être ajusté pour chaque requête. C’est le Consistency Level (CL). D’une requête à l’autre, on peut donc ajuster ce niveau en partant de « Eventual Consistency » (CL=1) par défaut, jusqu’à « Immediate Consistency » (CL=ALL) si l’on souhaite s’assurer que tous les nœuds ont bien traité la requête avant de répondre au client. D’autres niveaux de CL plus fins sont possibles pour définir combien de nœuds doivent acquitter la requête que ce soit dans le cluster local ou dans chaque data center.

conf_datastax_day_replication

Ces trois aspects combinés, masterless, distribution et réplication constituent l’une des forces majeures de Cassandra. C’est pour cela que sur Cassandra on parle de disponibilité continue. Il n’y a absolument aucun arrêt de service, jamais. Si un nœud tombe, il est répliqué et le nœud qui contient le replica peut rendre exactement le même service qui était rendu par le nœud qui est tombé. Si un cluster tombe, il y a un autre cluster ailleurs, éventuellement dans un autre data center.

Dans leur structure, les données sont stockées et organisées selon la clé primaire. La clé primaire est constituée de la clé de partition et éventuellement des clustering columns. La clé de partition permet de localiser la donnée. Les clustering columns assurent l’unicité et permettent de faire des tris.

conf_datastax_day_cle_primaire

Illustration avec une table dont la clé de partition est user_id et les clustering columns sont constituées de _author et tweet_id. La colonne _author permet de faire des recherches et des tris. La colonne tweet_id assure l’unicité.

conf_datastax_day_select

Très disponible, Jonathan Ellis se prêtera plusieurs fois dans la journée à des séances de questions/réponses.

La plupart des conférences de la journée ont été filmées. Elles sont disponibles sur le site de DataStax : http://www.datastax.com/events/datastax-day-paris-2016-session-videos. Les captures d’écrans de cet article en sont issues.

Et concrètement on fait quoi avec Cassandra ?

Plusieurs conférences sont consacrées à des retours d’expérience. J’ai choisi de revenir sur le retour d’expérience présenté par le responsable de l’équipe de développement de m6web. Il est revenu sur la mise en place de Cassandra pour le service 6play proposé par M6.

Le service 6play c’est le service d’accès au direct et de catch-up TV de la chaîne. Il est disponible sur mobile, sur le web et sur les box TV. Le passage à Cassandra a permis d’enrichir le service avec le stockage des préférences des utilisateurs et la possibilité de reprendre la lecture d’une vidéo où on s’était arrêté en stockant les événements de lecture. On doit donc pouvoir stocker un volume énorme d’événements. La mise en place de ces évolutions sur la stack legacy basée sur MySQL s’était soldée par un échec à cause d’une très mauvaise tenue à la charge.

Sur 6play, on compte désormais 3 millions de vidéos vues par jour pour 3000 heures de contenu en ligne en permanence. Avec une table des événements de lecture de 30 millions de lignes (la plus grosse), le cluster Cassandra composé de 3 nœuds seulement répond en moins de 1ms pour 1000 requêtes par seconde.

Ce qui est intéressant dans ce REX c’est qu’on apprend qu’il a été possible de réaliser ce projet en 6 mois, depuis le choix de la technologie jusqu’à la mise en production. Avec une équipe de développement qui ne connaissait pas spécialement Cassandra au début du projet. L’un des facteur du succès du projet a été l‘accompagnement et le support fournis par les équipes de DataStax France, en particulier pour les phases de conception et de mise en place de l’infrastructure. Pour le développement, cela a été relativement transparent pour les développeurs qui ont rapidement assimilés les concepts et les contraintes liés à Cassandra.

La présentation a été filmée, elle est disponible sur le blog de l’équipe technique de m6web : http://tech.m6web.fr/rex-cassandra

Passer à DataStax Enterprise (DSE) ça vaut le coup ?

Comme je l’ai dit, la conférence est organisée par DataStax, il est donc logique que certaines conférences soient consacrées à la version Enterprise de Cassandra. Cette version s’appelle DataStax Enterprise (DSE).

Intéressons-nous un peu à cette solution et voyons ce qu’elle apporte par rapport à la version open source de Cassandra.

Les trois piliers de la solution DSE tels qu’on nous les a présentés en conférence.

conf_datastax_day_dse1

Rappelons que toutes les qualités de Cassandra sont aussi les principales qualités de DSE. En particulier l’architecture distribuée sans notion de master/slave, la rapidité et la très haute disponibilité. A ce sujet les intervenants de DataStax insistent beaucoup sur la notion de disponibilité continue que j’ai déjà évoquée. Cassandra et DSE assurent vraiment 100% de disponibilité opposée à la traditionnelle notion de haute disponibilité qui est souvent synonyme de systèmes, certes tolérants aux pannes mais avec des courtes périodes d’indisponibilité. C’est la fameuse disponibilité à 99,9%. Dans un contexte de forte activité mondiale cette petite différence peut être cruciale.

DSE c’est avant tout un package Cassandra avec des outils et du support, comme souvent dans le cas de versions Entreprise de logiciels open source. Mais pas uniquement. C’est aussi l’ambition d’offrir une solution complète. Il y a donc d’autres outils qui sont packagés avec la solution. Des outils qui viennent compléter Cassandra, comme Solr pour faire de l’indexation et Spark pour faire de l’analytics. Mais également d’autres technologies comme GraphDB, une base de données orientée graphes très puissante. Certains clients n’utilisent d’ailleurs que cela. Comme la start-up française Linkurious spécialisée dans l’analyse de données sous forme de graphes. Cette société est connue pour avoir aidé des centaines de journalistes à travers le monde à percer les secrets des données issues de l’affaire Panama Papers.

Alors bien sûr, ces outils existent en open source et on peut très bien installer Cassandra et Spark soi-même si l’on souhaite faire des analyses sur ses données avec la puissance des micro batchs de Spark. Mais là où DSE apporte réellement une valeur ajoutée c’est que tous ces outils sont intégrés et livrés clé en main. La mise en place de ces différentes technologies s’en trouve simplifiée. En outre, ces outils sont intégrés à Cassandra avec les mêmes caractéristiques en terme de disponibilité. C’est-à-dire que la disponibilité en continu s’applique également pour Spark, Solr et GraphDB.

De plus, DSE offre un niveau de sécurité professionnel avec notamment l’authentification des utilisateurs par LDAP.

Parmi les outils proposés, citons OpsCenter qui permet de gérer son cluster Cassandra de façon simple au quotidien avec les fonctionnalités suivantes :

  • backup et recovery
  • alertes et monitoring
  • mise à jour à chaud

D’après les témoignages des utilisateurs, en particulier ceux de m6web, il est très utile pour le suivi de production.

Parmi les plus gros clients de DSE, figurent Netflix, E-Bay et Sony. Ils correspondent bien aux cas d’utilisation classiques de Cassandra à savoir :

  • Catalogues multimédia et playlists
  • Moteur de recommandations et de personnalisation
  • Vision client à 360°
  • Internet des objets
  • Détection de patterns (systèmes anti-fraudes)

 

conf_datastax_day_dse2

Les qualités de DSE sont indéniables, en particulier pour des projets ayant des besoins assez complexes en plus de Cassandra, des besoins d’indexation et d’analytics par exemple. La simplification du setup, la garantie de haute dispo et l’assurance que toutes ces technologies vont bien cohabiter ensemble font partie des gros avantages de cette solution clé en main.

Pour des projets reposant uniquement sur la base de données Cassandra le choix est moins évident. Dans ce cas c’est surtout les outils de gestion qui peuvent faire la différence. D’après le retour de l’équipe m6web, leur suivi de production est vraiment simplifié de par l’utilisation de l’outil OpsCenter inclus dans DSE. Cela dit, de nombreux outils de supervision sont disponibles en ligne de commande dans la version open source. Avant de choisir, je vous conseille donc de bien évaluer vos besoins, il se peut que les outils de base soient amplement suffisants pour vous.

Un peu de pratique ?

L‘après-midi est consacrée à des ateliers de type hands-on pour mettre en pratique ce qui a été présenté le matin. C’est une bonne surprise. Pour moi ça a été une surprise tout court et j’ai dû renoncé au buffet du midi pour aller chercher mon ordinateur portable chez moi. Le buffet avait l’air bon, tant pis. Alors si vous allez à DataStax Day l’an prochain, soyez plus prévoyant que moi. Il est aussi possible de faire les ateliers en binôme. En tout cas cas ne passez pas à côté, les ateliers proposés étaient d’une grande qualité.

Au programme, de la modélisation et du CQL : création de tables, requêtes insert et select. Et surtout des exercices pour bien comprendre l’importance du choix de la clé primaire et de son impact sur les requêtes qu’il sera possible de faire ou non. On comprend bien la notion de modèle orienté requêtes chère à Cassandra. On modélise plusieurs tables à partir des mêmes données pour répondre à différentes requêtes.

Le TP est disponible sur github : https://github.com/VincentPoncet/DataStaxDay

Les autres ateliers sont consacrés à l’utilisation de Solr et de Spark.

Bilan

Si vous recherchez une base de données ultra performante, scalable de façon linéaire et capable de gérer de très gros volumes de données en lecture ou en écriture, Cassandra est clairement fait pour vous. Le prix à payer, c’est un effort redoublé sur la conception du modèle de données pour tenir compte des limitations en terme de requêtes et de l’absence de jointures et de transactions. En effet Cassandra pousse la pratique de la modélisation orientée requêtes à l’extrême avec bien souvent une table par requête. Cela peut être un peu déroutant. Par ailleurs, et de l’aveu même de son créateur, Cassandra est vraiment adapté pour des volumes de données au moins supérieurs à 1TB. En-dessous, il est plus simple d’opter pour une base relationnelle classique ou une base de données orientée document.

Pour aller plus loin

Pour en savoir plus sur Cassandra, je vous conseille vivement de suivre les cours en ligne proposés par DataStax. C’est gratuit et très complet : https://academy.datastax.com/courses.

Les cours sont composés de vidéos et d’exercices. Ils permettent de se familiariser avec tous les concepts Cassandra de l’architecture et de la modélisation.

Après avoir suivi les cours en ligne vous pourrez tenter de passer l’une des certifications Cassandra : développeur, architecte ou DBA.

Categories: Big Data, Forums et Salons Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks