Dans le courant des années 2000, les SGBDR traditionnels ont toutefois montré leurs limites avec le développement des grandes entreprises de l'Internet (Google, Amazon, Facebook, etc.) amenées à traiter des volumes de données très importants. Ces systèmes ont rapidement posé des problèmes de scalabilité. Afin de répondre à ces limites, ces entreprises ont commencé à développer leurs propres systèmes de gestion de bases de données pouvant fonctionner sur des architectures matérielles distribuées et permettant de traiter des volumes de données importants. C'est ainsi qu'on a eu de nombreux systèmes propriétaires de bases de données dites NoSQL, qui s'écartent du paradigme classique des bases relationnelles.
Cassandra fait partie de ces nouveaux systèmes de bases de données. Initialement développé par Facebook, il est passé en open source en 2008 et a été cédé à la fondation Apache. Apache Cassandra a ensuite été rapidement adopté par des entreprises gérant de grands volumes de données. Mais comme tout projet open source, le soutien d'une ou plusieurs entreprises est vital pour assurer sa pérennité et son développement. C'est ce soutien que vient apporter DataStax, un éditeur de logiciels qui assure la distribution et le support d'une version entreprise de Cassandra. DataStax vient doter Apache Cassandra d'outils et de fonctionnalités supplémentaires d'analyse, de recherche, de sécurité, de supervision et d’administration graphique, mais également d’une capacité à travailler en mémoire.
Que propose exactement cette version de Cassandra aux développeurs et entreprises et en quoi rend-elle Cassandra différent des autres solutions ? Pour répondre à ces questions, l'équipe de rédaction de Developpez.com est allée à la rencontre de Duy Hai, Technical Advocate chez DataStax.
Duy Hai, Technical Advocate chez DataStax
Q1- Pouvez-vous nous présenter brièvement DataStax et sa plateforme de données DataStax Enterprise (DSE) ?
Duy Hai : DataStax a été fondée en 2010 pour guider le développement d’Apache Cassandra. Pour information, Apache Cassandra a d’abord été créé chez Facebook avant que la société ne cède le projet à la fondation Apache en 2008. Comme vous le savez, les projets dirigés par la fondation Apache sont open source. Et pour que ces projets puissent évoluer dans le temps, il faut qu’une ou plusieurs entreprises contribuent activement à son développement. C’était donc le rôle de DataStax : de contribuer et de guider le développement d’Apache Cassandra. Et pour vivre, DataStax fournit une plateforme data appelée DataStax Enterprise (DSE). C’est une plateforme data robuste et scalable pour pouvoir supporter les données en temps réel qui sont potentiellement distribuées sur plusieurs data centers sur plusieurs continents.
Q2- DataStax Enterprise est basée sur Apache Cassandra, pourquoi ce choix ? Qu'apporte Cassandra de plus par rapport aux autres bases de données NoSQL existantes ?
Duy Hai : Le choix d’Apache Cassandra s’impose à cause des propriétés intéressantes qui le distinguent de ses concurrents. C’est une base de données NoSQL avec une architecture sans maître (masterless). Il faut savoir qu’aujourd’hui, il n’y a que deux solutions de bases de données NoSQL avec une telle architecture : Apache Cassandra et Riak. Si en plus, l'on prend en compte les solutions cloud dans l’équation, on a également DynamoDB d’Amazon et BigTable de Google. Pour récapituler, si nous prenons le cloud, il n’y a que DynamoDB et BigTable qui proposent cette architecture, et pour le non-cloud, il n’y a qu’Apache Cassandra et Riak. Le choix est donc assez restreint, il n’y a pas tant de technologies qui proposent une architecture sans maître. Et Cassandra est vraiment leader aujourd’hui, en 2017, sur les bases de données NoSQL masterless.
L’architecture sans maître est donc l’un des avantages d’Apache Cassandra par rapport aux autres bases de données NoSQL. Grâce à cette architecture, Apache Cassandra est une base de données qui supporte la haute disponibilité, quasiment 99,99 %. Bien sûr, sur le marché des bases NoSQL, tout le monde prétend être hautement disponible, mais qu’est-ce qu’on entend par hautement disponible ? Quand je parle à mes clients, je leur propose de faire un test où ils insèrent des données sur un cluster et « font tomber » les machines au hasard. Vous allez voir le comportement d’Apache Cassandra par rapport aux autres solutions. Il n’est pas nécessaire d’abord de rentrer dans les détails techniques, quand ils voient les résultats, ils vont tout de suite s’interroger et à partir de là, on peut rentrer dans les détails techniques. Un test aussi simple que ça permet de montrer la haute disponibilité d’Apache Cassandra.
Le deuxième point fort d’Apache Cassandra – et je crois que c’est le point fondamental qui fait que la solution est populaire –, c’est la gestion du multidatacenter. Dès le début, quand Facebook concevait Apache Cassandra, il voulait que cette solution puisse fonctionner sur plusieurs data centers. Depuis 2008, cette fonctionnalité a été testée par énormément de personnes. Et aujourd’hui, la gestion du multidatacenter est très robuste et très mature. En parlant du multidatacenter, il faut noter qu’on peut même mélanger du cloud avec du physique. C’est-à-dire qu’on peut dans un data center utiliser des machines physiques (on héberge chez soi), et dans un autre data center, des machines dans le cloud. Le dernier cas peut se produire si l’on veut étendre les activités de l’entreprise à une région où l'on n’a pas forcément envie d’acheter des machines physiques.
Q3- Quelles sont les fonctionnalités offertes par votre plateforme de données ? Pouvez-vous nous fournir un peu plus de détails ?
Duy Hai : La société propose comme solution DataStax Enterprise (DSE). Cette version diffère de la version open source sur plusieurs points. Mais avant, il faut dire que c’est une version certifiée d’Apache Cassandra. C’est-à-dire que c’est une version d’Apache Cassandra à laquelle on a fait subir une batterie de tests plus poussés que ceux de la version open source.
Avec la version Enterprise, vous avez donc logiquement un support 24/7. Avec la version open source, vous trouvez un bogue, vous le remontez, mais vous n’avez aucune garantie que le bogue soit corrigé ou pas. Et si l’on vous dit que ce sera corrigé, il n’y a aucune contrainte en ce qui concerne le délai de la correction. Alors qu’avec un support entreprise, vous avez un SLA et DataStax s’engage à corriger les problèmes dans un délai convenu. Un autre élément qu’on apporte, c’est l’outil d’administration et de monitoring appelé OpsCenter, pour vous aider à automatiser des tâches d’administration.
Sur Apache Cassandra, on greffe des fonctionnalités supplémentaires comme l’option In-memory, pour mettre des données en mémoire pour une analyse plus rapide. Nous avons aussi l’option Multi Instance pour mutualiser les nœuds Cassandra sur les gros serveurs physiques, et le Tiered Storage pour augmenter l’intensité des nœuds.
Question sécurité, on a également une intégration poussée avec les frameworks comme Kerberos, LDAP et Active Directory. Tout comme le chiffrement des données sur disque, on est compatible avec la norme PCI-DSS pour le stockage sécurisé des données bancaires. Sur le front analytics, DataStax Enterprise s’intègre également avec Apache Spark et propose une implémentation maison de HDFS, le système de fichiers distribués du monde Hadoop, pour supporter les scénarios analytiques. La recherche avancée (full-text) sur vos données n’est pas en reste puisqu’on embarque aussi le fameux moteur Apache Lucene d’ElasticSearch via Apache Solr dans le cœur de Cassandra. Tout récemment, nous avons également sorti une option Graph, c’est-à-dire que vous pouvez stocker une base de données orientée graphe sur notre version d’Apache Cassandra. Voilà en gros les fonctionnalités supplémentaires de la version Enterprise par rapport à la version open source.
Q4- Quels sont les outils développeur proposés par DataStax ? Et quels sont les langages, plateformes et technologies supportés ?
Duy Hai : Pour les développeurs, nous proposons plusieurs outils. On peut déjà citer les drivers pour Apache Cassandra – nos drivers sont en open source -- pour quasiment tous les langages. Nous avons donc des drivers pour Java, C#, C++, Python, Node.JS et du PHP. Avec ça, on couvre un grand spectre de langages de programmation. Bien évidemment, pour les langages dérivés, par exemple pour Scala et Groovy, on peut très bien utiliser le Java driver.
Nous proposons également pour les développeurs un outil d’aide à la modélisation de données qu’on appelle Dev Center. C’est en gros l’équivalent de SQL Developer pour ceux qui connaissent les bases de données relationnelles. Et très récemment, nous avons sorti ce qu’on appelle DataStax Studio, une application Web pour faire des requêtes Cassandra et visualiser les résultats sous forme tabulaire ou sous forme de graphes (bar charts). DataStax Studio permet également de faire des requêtes graphes pour notre solution DSE Graph.
Q5- DataStax a récemment renforcé sa plateforme de données avec un nouveau produit baptisé DataStax Managed Cloud. De quoi s'agit-il exactement ? Quelles sont ses fonctionnalités et quelles sont les plateformes cloud qu'il supporte ?
Duy Hai : Quand on entend Managed Cloud, on peut se dire que c’est juste la version Enterprise qu’on met sur le cloud, mais c’est un peu plus que cela. En plus de mettre la version Enterprise sur le cloud, on va faire toute la gestion d’administration pour le client. Cela veut dire que le client ne touche plus à la base côté opérationnel. Tout ce qu’il aura à faire, c’est fournir le schéma, le modèle de données. C’est la définition stricto sensu de Managed Cloud, mais quelles sont les fonctionnalités qu’on propose en plus ?
En dehors de l’hébergement et de la gestion quotidienne qu’on fait pour le client, on accompagne également le client pour la modélisation des données. On va s’assurer que le modèle de données que le client va mettre dans Managed Cloud sera performant et ne va pas causer de soucis plus tard. Le client sera donc accompagné dans cette phase-là. Aujourd’hui, on ouvre DataStax Managed Cloud très doucement. On va donc proposer cette solution à des entreprises qui sont déjà clientes chez nous, c’est-à-dire qui ont déjà la version Enterprise. On leur propose de migrer leurs charges depuis leurs machines physiques vers le cloud. La disponibilité de cette solution sera en fait progressive. On ne veut pas la proposer tout de suite à tout le monde, parce qu’on veut vraiment contrôler cette solution.
Pour le moment, nous ne supportons qu’Amazon Web Services (AWS), logiquement parce que c’est la solution majoritaire sur le marché. Mais à l’avenir, on supportera d’autres plateformes comme Microsoft Azure et Google Cloud, etc.
Q6- DataStax offre différentes options de souscription en fonction des besoins en base de données. Que propose chacune de ces options et quels types d'utilisateurs ciblent-elles ? Qu'en est-il de la facturation ? Est-il possible de tester DataStax et ses différentes fonctionnalités gratuitement ?
Duy Hai : Avec DataStax Enterprise, nous avons trois options : l’option Basic, l’option Standard et l’option Max. L’option Basic est plus pour les grands clients qui achètent des licences par centaines. Évidemment, dans une économie d’échelle, on ne peut pas facturer un client qui achète des centaines de licences de la même manière qu’un autre qui n’en achète que dix. Pour revenir à l’option Basic, comme son nom l’indique, vous avez juste le support, mais pas les fonctionnalités supplémentaires.
Dans la version Standard, vous avez le support, les outils de développement et de gestion, et les fonctionnalités standard de la base de données, mais sans les fonctionnalités avancées comme la recherche avancée et l’analytique. Ces fonctionnalités avancées ne sont disponibles que dans l’option DSE Max.
En ce qui concerne la possibilité de tester DataStax et ses fonctionnalités, je réponds par l’affirmative. Il faut savoir qu’avec DataStax, nous avons une politique très « amicale » vis-à-vis des développeurs. C’est-à-dire que tant que vous n’allez pas en production, le téléchargement et l’utilisation sont gratuits. Il suffit d’aller sur le site de DataStax, renseigner votre email, vous le téléchargez et vous faites ce que vous voulez chez vous. Bien évidemment, si vous voulez passer en production, vous nous appelez pour avoir une licence. Pour la facturation, c’est par nœuds ou par cœurs de CPU ; on prend le type de facturation qui avantage le plus le client.
Tester gratuitement DataStax ou en savoir plus