SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
Introduction à Cassandra
1. Introduction à Cassandra
Base de données NoSQL, développée en Java, Open Source
(fondation Apache)
Pas de « single point of failure »
Très performante, en particulier en écriture
Peut stocker et traiter de très gros volumes de données
efficacement, de manière distribuée
Utilisée de manière intensive chez Ippon Technologies
Premier projet en 2011
Aujourd’hui plus d’une dizaine de clients
2. Le problème avec Cassandra
Un cluster Cassandra ne peut pas être partagé entre plusieurs
clients
Problèmes de sécurité: on voit les keyspaces et les schemas des
autres (mais pas leurs données)
Problèmes de performance: impossible de limiter les performances
d’un client, ou de cloisonner les instances
Cela pourrait changer dans le futur…
Pour ces raisons, difficile de trouver un « Cassandra as a
Service »
https://www.instaclustr.com -> propose uniquement des noeuds
dédiés
3. Cassandra Service Broker par Ippon
Ippon Technologies possède sa propre instance interne de
Cloud Foundry
Ippon Technologies possède plusieurs cluster Cassandra en
interne
Nous avons voulu automatiser le provisionning de
keyspaces Cassandra
Cassandra Service Broker par Ippon
Open Source
https://github.com/ippontech/ih-cassandra-service-broker
4. Fonctionnalités
Permet de gérer entièrement le provisionning d’un keyspace sur notre
cluster
Utilise les rôles de sécurité dans Cassandra: un utilisateur a
uniquement accès aux données de son keyspace
Le cluster est donc partagé entre tout le monde
Permet de partager les coûts entre tous les projets
Avec les deux limites que nous avons vues:
Sécurité: pas de problème en interne si on voit les keyspaces/schemas des autres
Performance: pas de problème en interne, nous maîtrisons les projets et les requêtes
Surtout intéressant en développement et en test, ou pour des « petits »
projets en production
5. Résultats
Dans notre instance de Cloud Foundry, nous avons accès à
un service Cassandra
Utilisable également via la Marketplace, et donc scriptable en
ligne de commande
A la création d’un projet, un keyspace nous est
automatiquement affecté
Et il est détruit automatiquement à la fin du projet
Cela nous permet de facilement lancer des projets sur
Cassandra, sans avoir à configurer de cluster spécifique