Blog Zenika

#CodeTheWorld

ÉvénementsBigData & NoSQL

Couchbase Live Paris 2015

Ce mardi 29 septembre se tenait la conférence « Couchbase Live France 2015 », sur le campus de Microsoft France. L’occasion pour l’éditeur de la solution NoSql de revenir sur les points forts de l’outil, les nouveautés de la version 4 et partager avec nous l’expérience de certains de leurs clients comme Amadeus, Criteo, Ryanair ou Sky Germany.

Tout au long de cette journée, les différents intervenants sont revenus sur les différents points qui constituent l’ADN de Couchbase. A savoir :

  • Son utilisation polyvalente : Cache, stockage de type clé/valeur ou document, l’utilisation en mode local/mobile
  • Sa performance et sa scalabilité : Faible latence, architecture centrée sur les accès en mémoire
  • Sa disponibilité : Réplication entre les nœuds, clusters et data center
  • Une administration simplifiée : Console d’administration, ajout de nœuds aisé, etc.

« So simple to scale, my mother can do it. » (T. Dhariwall)

cache_little_2
Terry Dhariwall (Couchbase) est notamment revenu sur les fonctions de cache de l’outil. Notamment sur ses origines, basées sur une solution que vous connaissez sûrement : Memcached.
Memcached permettait de stocker en mémoire et de récupérer des données sous la forme clé/valeur de manière très rapide. Le problème était que cette solution était non persistante et non distribuable.
Memcached a évolué en Membase qui rajouté ces fonctions de persistance, de haute disponibilité distribuée. Et enfin, ultime évolution, intégration à Couchbase avec le support de JSON et de la réplication entre data centers.
Différentes stratégies de cache sont possible :

  • Le « Lazy caching » avec un Time To Live à définir : on met la donnée en cache lorsqu’on la lit une première fois et que le cache ne la possède pas
  • Le « Real time push caching »: on met à jour le cache lors des mutations de la données
  • Le « Full or delta batch update » on met à jour tout ou partie des données du cache (delta) à des fréquences pré-établies.

Les cas d’utilisation du cache sont multiples. Si vous avez travaillé en banque ou assurance, avec des Mainframe, vous avez tous connu cet administrateur système qui faisait la chasse au MIPS. La société Experian en utilisant le cache de Couchbase permet par exemple de décharger un mainframe de près de 99 % pour l’accès aux données statiques, ainsi que près de 60 % pour l’accès aux données dynamiques.
Plus généralement on peut retrouver Couchbase comme solution de remplacement d’outils comme Coherence, pour stocker des informations fonctionnelles (Pricing, information d’expédition pour Walmart) ou techniques (Sessions d’utilisateurs comme le pratique Sky)

BigData et lambda architecture

lambda_little
Simon Leigh (Couchbase) est quant à lui revenu sur la place de Couchbase dans l’univers du BigData, où la solution se positionne plutôt dans l’opérationnel (millions de clients, des dizaines de TeraBytes de données stockées, temps de réponse de l’ordre de la ms.), en complément des solutions Hadoop et Spark par exemple qui sont elles dans l’analytique (centaines d’utilisateurs de type ‘analyste’, PetaBytes de données, temps de réponse de l’ordre de la seconde voire la minute).
Pour les initiés aux architectures autour de Hadoop, Simon a également montré la manière avec laquelle on pouvait intégrer Couchbase dans une lambda architecture, à savoir dans les couches « Serving Layer » et « Speed Layer ». L’outil possède des connecteurs avec les broker de messages les plus en vue du moment comme Kafka, mais aussi avec des outils comme ElasticSearch.
 

Use cases mobile

Une des grandes forces de Couchbase est évidemment sa dualité utilisation serveur et mobile, comme nous en a fait la démonstration James Nocentini (Couchbase). Une application mobile pourra utiliser Couchbase Lite pour lire et écrire les données de façon locale et donc possiblement hors-connexion. Puis la synchronisation des données sera rendu possible en utilisant une « Sync Gateway » qui utilise le protocole DCP pour échanger les données avec le cluster Couchbase. Cette « Sync gateway » prévenant l’utilisateur des éventuels conflits. James a également démontré que l’on pouvait utiliser Couchbase Lite en mode p2p en échangeant les données directement avec d’autres terminaux.
On imagine très bien le cas fonctionnel d’un représentant, qui avant d’effectuer sa tournée des clients et prospects, télécharge les données relatives à sa journée sur son mobile ou sa tablette. De cette manière, il pourra travailler sans subir les aléas des connexions réseau lors de ses déplacements. Et à la fin de la journée il pourra synchroniser les données récoltées avec Couchbase server.

Couchbase dans le cloud

Il est évidemment possible de déployer un cluster couchbase dans le cloud. La démonstration nous en a été faite sur le cloud de Microsoft : Azure. Quelques bons conseils et bonnes pratiques à retenir : utilisation d’un VPN pour le dialogue cross-datacenter, adressage par IP privée, etc.
Si vous souhaitez vous lancer dans le déploiement de Couchbase dans Azure, les configurations recommandées par les orateurs sont D2, D11, A3, A5 (ou plus) pour un serveur Couchbase de développement. D3, D12, A6 (ou plus) pour un serveur Couchbase de production.

Les nouveautés de la version 4

multi-dim_little
Laurent Doguin (Couchbase) nous a présenté les nouveautés de la version 4 de couchbase. Actuellement en bêta, elle sortira officiellement dans quelques jours à l’occasion de la conférence Couchbase New-York.
Parmi les nouveautés, on pourra citer la possibilité de requêter les données dans un langage inspiré du SQL : N1QL (prononcer Nickel). Ce langage permet de récupérer dans une syntaxe que tout le monde connaît (ou presque) des données stockées au format semi-structuré JSON. N1QL vient compléter les Views, qui existent bien évidemment toujours. On utilisera N1QL pour les requêtes Ad-hoc, pour manipuler des documents JSON avec imbriquation. Les Views seront toujours utilisées pour les requêtes un peu plus prédictibles. Le cas classique est par exemple d’extraire des nombres : comptes, moyennes, etc.
 
N1QL s’appuie sur les nouvelles capacités de multi-dimensional scaling de Couchase. En plus du data service (service de stockage de la donnée, qui est le coeur de Couchbase), deux nouveaux services apparaissent :
L’index service : permet de définir un nœud dont le rôle est de maintenir les index.
Le query service : permet de définir des nœuds dédiés à la planification et l’exécution des requêtes
Pouvoir spécifier le type de service que l’on met sur tel ou tel nœud permet de construire ainsi différentes topologies en fonction des besoins.
A l’heure actuelle, l’index service n’est pas répliqué. Il faut donc effectuer cette action manuellement. S’il est tombé, le query service renverra un erreur. On voit alors l’intérêt de librairies comme RxJava qui permettrait de gérer ce genre de cas avec élégance. Il n’est pas exclu que dans une prochaine version de Couchbase, la réplication automatique de ces Index Services soit implémentée.
N1QL nécessite la création d’index primaires et s’appuie sur GSI (Global Secondary Indexes) pour améliorer les performances des requêtes. Chaque mutation est transmise à 1 ou n index services de façon asynchrone. Ce comportement est paramétrable si l’on souhaite une consistance plus élevée. Dans le futur proche nous pourrons effectuer des joins sur ces index secondaires.
Parmi les autre nouveautés on pourra citer ForestDB, qui permet de stocker des couples clé/valeur en se basant sur l’algorithme HB+ Trie, conçu lors d’un hackaton. L’intégration LDAP (External Identity Management a également été intégrée dans cette nouvelle version.

Les retours clients

Différents retours clients ont jalonné cette journée. Ceux-ci ont exposé quelques use-cases d’intégration de Couchbase dans leur Système d’information, bien souvent associés à des chiffres sur la volumétrie des données ou les performances atteintes.
Par exemple Amadeus (qui gère notamment 95% des réservations de billets d’avion à travers le monde, plus de 525 millions de réservations pour 695 millions de passagers en 2014) utilise Couchbase notamment pour implémenter leur moteur de disponibilité, disponibilité calculée en prenant en compte le nombre de places disponibles pour chaque vol pour chaque classe, cabine et pour chaque itinéraire proposé lorsque vous souhaitez rejoindre une destination donnée. Pour cette fonctionnalité, les bénéfices induits par l’utilisation de Couchbase sont des requêtes issues du cache en moins de 0.5 ms et une capacité forte à retailler à tout moment la taille du cluster Couchbase sans impacter les requêtes.
Chez Criteo, Couchbase est utilisé en tant que datastore clé/valeur, cela sur 700 serveurs répartis dans plus de 40 clusters, fournissant une RAM distribuée de 150 TiB. Tout ce petit monde permet de répondre à près de 11 millions de requête en lecture par seconde et 1.6 million en écriture dans le même temps.
Chez Sky Germany, Couchbase est utilisé pour stocker les sessions utilisateurs en absorbant notamment les pics de charge lors de la diffusion de match de la première division allemande que Sky diffuse. L’intervenant de Sky a d’ailleurs bien illustré le changement de mindset qu’il est parfois nécessaire d’adopter lors du design de ces solutions. En adoptant un style d’architecture CQRS et en ayant un discours adapté envers les architectes de données qui sont parfois très attachés au modèle relationnel. Cette dernière remarque étant accompagnée d’un petit guide de survie qui pourrait se révéler salutaire:
survie_little

NightClazz Couchbase chez Zenika Nord

La conférence a su trouver le bon équilibre entre présentations techniques, retours clients et temps de pause pour bien échanger entre nous. Vous pourrez venir rencontrer Laurent Doguin lors d’une Night Clazz organisée dans nos locaux lillois, pour une session autour de la modélisation des données avec Couchbase. Stay tuned!

Auteur/Autrice

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.