DataStax optimise le déploiement d’Apache Cassandra sur Kubernetes
DataStax a mis à jour sa technologie open source K8ssandra Operator avec de nouvelles fonctionnalités qui permettront des déploiements cloud-natifs et multicluster de la base de données open source Apache Cassandra.
Le nouveau K8ssandra Operator en disponibilité générale depuis le 7 mars, constitue une mise à jour majeure de son projet qui a fait ses débuts en mars 2020. K8ssandra est une collection de librairies open source. Elle inclut un opérateur Kubernetes spécifique au SGBD NoSQL et y associe des fonctions d’automatisation et de backup, par exemple. K8ssandra doit aider les utilisateurs à standardiser les déploiements et l’exécution de Cassandra, sur Kubernetes.
Pour rappel, DataStax est l’un des principaux contributeurs à la technologie de base de données Apache Cassandra, dont la version 4.0 est accessible depuis le mois de juillet 2021.
La nouvelle mise à jour de l’opérateur K8ssandra ajoute la prise en charge de Cassandra 4.0 et offre également des capacités de déploiement multicluster et cloud-natives. Avant cette version, K8ssandra ne permettait d’installer la base de données sur un seul cluster Kubernetes.
Cette option supplémentaire serait réclamée par les organisations. Avec l’utilisation croissante des conteneurs, les entreprises clientes recherchent une installation, une mise à l’échelle et une gestion automatisée des services stateful tels que les bases de données, affirme Arun Chandrasekaran, un analyste de Gartner.
« L’une des façons d’apprivoiser la complexité de la gestion des services sur Kubernetes est de passer par un opérateur », rappelle Arun Chandrasekaran. « L’opérateur annoncé par DataStax a le potentiel de simplifier la configuration, la gestion et les opérations des clusters Cassandra sur des environnements Kubernetes distribués ».
Rappelons également que le déploiement de Cassandra n’a jamais été simple. L’arrivée d’offres cloud natives et de technologies capables d’abstraire cette complexité est bienvenue.
Selon Patrick McFadin, vice-président des relations avec les développeurs chez DataStax, l’opérateur permet non seulement de faire fonctionner correctement Cassandra sur plusieurs clusters, plusieurs régions cloud, mais aussi sur plusieurs instances on-premise. « Nous pouvons maintenant affirmer que nous avons atteint la parité sur la manière d’exécuter Cassandra dans différents centres de données [un ensemble de nœuds dans une zone géographique proche dans la topologie de Cassandra, N.D.L.R.] », se réjouit-il. « Auparavant, à moins que quelqu’un effectue le gros du travail manuellement, K8ssandra ne supportait qu’un seul cluster et c’était un frein important ».
Résoudre les défis inhérents à Kubernetes
M. McFadin note que la première implémentation K8ssandra relevait d’une mauvaise pratique, car cela limitait la résilience d’une base de données face à une panne potentielle. Le fait de ne pas supporter les installations multicluster limite fortement la disponibilité et les performances pour les déploiements distribués à l’échelle mondiale, quand les nœuds sont déployés dans différentes régions cloud.
Toutefois, le support d’une architecture multicluster entraîne quelques défis dans Kubernetes, selon le responsable. L’un des principaux obstacles consiste à faire communiquer deux clusters K8s distincts. Patrick McFadin indique qu’il est également difficile de coupler des clusters avec le même control plane.
L’opérateur K8ssandra a donc un control plane pour piloter les objets disponibles depuis le serveur API. « Il est responsable de la distribution des ressources aux clusters distants », précise la documentation. Ce control plane dispose de son propre cluster. Le data plane, lui, est installé sur plusieurs clusters et interagit directement avec les applications. Les data planes des différents clusters reçoivent les ressources du control plane et les déploient. Le control plane permet de configurer la manière dont les clusters communiquent ensemble.
La première mouture de K8ssandra était compatible avec la distribution open source de k8s, EKS, DigitalOcean Kubernetes (DOKS), GKE, AKS, MiniKube, Kind et K3D. Ce sera progressivement le cas avec la version multicluster. L’outil de backup des tables, Medusa, supporte Google Cloud Storage, Amazon S3 et les implémentations conciliables avec S3 (MinIO, IBM Cloud Object Storage, OVHCloud Object Storage, Dell EMC ECS, CEPH, etc.).
Un appel du pied à la CNCF
Patrick McFadinVP des relations avec les développeurs, DataStax
Actuellement, le projet open source K8ssandra est dirigé par DataStax et est disponible gratuitement sur GitHub.
Comme l’avait déjà évoqué DataStax par le passé, Patrick McFadin rappelle que l’éditeur souhaite déplacer le projet vers une fondation open source. Alors que Cassandra est hébergée par la fondation Apache, K8ssandra sera plus probablement donné à la Cloud Native Computing Foundation (CNCF), la succursale de la fondation Linux qui accueille Kubernetes.
L’orientation future de K8ssandra impliquera vraisemblablement une plus grande interaction avec d’autres projets CNCF consacrés à la prise en charge d’applications multicluster sur Kubernetes.
« Nous allons faire beaucoup plus d’intégration avec l’écosystème Kubernetes à l’avenir », renseigne le responsable des relations avec les développeurs.