Materia KV : notre base de données clé-valeur serverless simple d’usage est accessible à tous

Materia KV : notre base de données clé-valeur serverless simple d’usage est accessible à tous
Clever Cloud est né de la volonté de faciliter la vie des développeurs, en leur fournissant des outils et des interfaces d’automatisation, afin qu’ils puissent se concentrer sur leurs applications et leurs sites.

Ils “poussent” leur code, nous le déployons, tout en assurant la mise à jour et la mise en sécurité de l’environnement dans lequel ils fonctionnent avec un objectif : le maintien en conditions opérationnelles. Quelle que soit la situation, leur service répond.

Penser des services simples, robustes et innovants

Nous le faisons en garantissant une empreinte minimale au sein de nos serveurs, en proposant une mise à l’échelle horizontale/verticale à la demande ou automatique. Nous pouvons ainsi multiplier les instances ou les faire grossir/réduire selon la charge de vos sites. Cette volonté de simplicité va au-delà des applications, puisque nous disposons également d’une large offre de base de données (BDD) “as-a-service” vous permettant de déployer en quelques secondes des environnements MongoDB, MySQL, PostgreSQL ou Redis, avec les mêmes outils et garanties.

Ces dernières années, nous faisions néanmoins face à des demandes récurrentes : outre la volonté de certains de nos clients d’avoir accès à d’autres solutions, ils nous demandaient régulièrement de disposer des avantages de notre infrastructure répartie sur trois datacenters afin d’obtenir des services à haute disponibilité. Mais dans le domaine des BDD, cela n’est pas toujours simple à mettre en place tout en assurant un bon niveau d’automatisation et la cohérence des données. Nous avons donc décidé de développer notre propre gamme de produits pour y parvenir.

Le projet “Materia” était né, reposant sur le moteur transactionnel open source FoundationDB, utilisé, par exemple, par Apple pour ses services iCloud ainsi que par Snowflake. Nous y contribuons et l’adaptons à nos besoins, tout en profitant de son aspect distribué et résilient, notamment du fait de son importante capacité de simulation. Il nous permet d’imaginer un univers entier de solutions serverless, très simples d’usage, facturées à l’usage, avec des couches de comptabilité que nous développons pour permettre à nos clients de lui “parler” en utilisant des protocoles existants  tels que DynamoDB, GraphQL ou PostgreSQL par exemple.

Materia KV accessible à tous

Nous avons commencé par le protocole Redis, afin de mettre en place Materia KV, actuellement en phase de test Alpha. Il s’agit d’une base de données clé-valeur répliquée de manière synchrone sur nos trois datacenters parisiens. Lorsque nos serveurs vous répondent, c’est que votre donnée à été écrite trois fois. Surtout, elle est très simple d’usage : rendez-vous dans notre Console, créez un add-on Materia KV, vous obtiendrez instantanément un jeton (token) utilisable avec n’importe quel client Redis ou même en envoyant des commandes à nos serveurs directement via le protocole TCP.

Ainsi, vous pouvez dès maintenant bénéficier d’une solution pour stocker vos données sous la forme de clé-valeur, en haute disponibilité, sans avoir la moindre instance à configurer, sans tarification minimale mensuelle : vous payerez simplement ce que vous consommez. Surtout, nous assurons ce service en compatibilité avec des protocoles existants. Aujourd’hui Redis, demain DynamoDB et GraphQL. La liste des commandes supportées est disponible ici.

Lancée à Devoxx France mi-avril, Materia KV a fait forte impression sur place et lors de nos démonstrations depuis. Nous avons donc décidé de la rendre accessible à tous afin de permettre à l’ensemble de nos clients et des curieux de nous faire part de leurs retours sur son fonctionnement et de leurs besoins. Si la facturation se fera à l’usage à partir de la phase de Beta, pour le moment, c’est gratuit ! N’hésitez pas à tester et à nous donner votre avis.

Déjà intégré à nos outils et interfaces

Materia KV est bien entendu accessible via un addon-provider au sein de notre API, Terraform (ou OpenTofu par exemple), mais aussi de notre CLI, les Clever Tools. Pour créer un jeton d’accès il suffit de lancer la commande suivante :

clever addon create kv NAME

Cet add-on pourra être lié directement à une application Clever Cloud où ses variables d’environnement seront injectées. Mais vous pouvez également l’utiliser depuis n’importe quel service tiers, un client en ligne de commande (CLI) ou avec interface graphique (GUI).

Alors que le développement de Materia KV et de ses différentes interfaces va se faire sur la durée, nous avons commencé à réfléchir à son intégration au sein des Clever Tools. Ainsi, une branche de test, disponible sous la forme de binaires et documentée, propose une commande clever kv.

Avec elle, vous pouvez directement envoyer des requêtes à Materia KV en ayant la variable d’environnement configurée localement, ou en indiquant un ID dans vos commandes :

# With Bash and Zsh
source <(clever addon env ADDON_ID --export)
# With Fish
clever addon env ADDON_ID --export | source

clever kv PING # PONG
clever kv set yourKey theValue
clever kv get yourKey

Comme cette version de démonstration ne gère pas l’ensemble des commandes gérées par Materia KV, vous pouvez lui envoyer une commande “brute”, elle vous renverra alors la réponse :

clever kv redis_raw 'hset key field1 value1 field2 value2' # 2
clever kv redis_raw 'hget key field2'                      # value2
clever kv redis_raw 'hgetall key'                          # the full hash

Pour démontrer les possibilités d’une telle intégration, vous avez également la possibilité de faire directement des requêtes sur un objet JSON stocké dans une clé :

clever kv set simpleJson '{"key": "value"}' # the set data
clever kv getJson simpleJson key            # value
clever kv set jsonKey '[{"key": "value"}, {"bigKey": {"subKey1": "subValue1","subKey2": "subValue2"}}]'
clever kv getjson jsonKey bigKey.subKey2    # subValue1
clever kv getjson jsonKey ''                # the full JSON

Pour montrer à quel point de telles intégrations sont simples, nous avons mis à votre disposition un client Materia KV écrit en Go en utilisant Go-Redis. Si vous souhaitez plutôt comprendre comment vous pouvez envoyer des commandes et recevoir des réponses de Materia KV directement en TCP, vous trouverez des exemples, en V ou en Ruby.

N’hésitez pas à proposer les vôtres et à nous le faire savoir 😉

Une démonstration sur Twitch de Materia KV, un espace communautaire

Une démonstration en direct sur Twitch aura lieu le mardi 18 juin 2024 à 13h15 avec nos hosts Horacio González (LostInBrittany) et Yannick Guern (Akanoa).

Envie d’en savoir plus ? Horacio González, notre DevRel en chef, fera une démonstration sur Twitch mardi 18 juin à 13h15. Pierre Zemb, créateur de Materia chez Clever Cloud, échangera également avec notre CTO Steven Le Roux dans une vidéo publiée fin juin sur la chaîne YouTube de Clever Cloud.

Et pour nous faire part de votre avis, de vos questions et de vos besoins, rendez-vous sur la section dédiée à Materia de notre espace communautaire GitHub.

Blog

À lire également

Clever Cloud et DataConnect Africa : première étape du cloud souverain et sécurisé pour l’Afrique

Dans le cadre de sa croissance à l'international, Clever Cloud signe son premier partenariat en Côte d'Ivoire, avec DataConnet Africa, afin de proposer le premier cloud Souverain et Sécurisé de la région.
Entreprise

Le clever cloud fest. arrive

Préparez-vous à un événement qui va marquer 2025 : clever cloud fest. débarque à Nantes…

Entreprise

Clever Cloud : Découvrez notre côté clever

Face à des environnements techniques de plus en plus exigeants, Clever Cloud s’est imposé comme un acteur clé dans l’accompagnement des équipes tech et des décideurs IT.
Entreprise