Les retours d’Infotel sur le Couchbase Live France 2015

Infotel continue d’approfondir son expertise Big Data en permettant à des collaborateurs de participer à des TechDays comme le Couchbase Live France 2015.


Couchbase Live France 2015


Quelques retours enrichissants …



Couchbase 4, les nouveautés


Lors du Couchbase Live France 2015, a été présentée la nouvelle version Couchbase server 4.0. Voici ses principales nouveautés :


N1ql
Couchbase frappe fort en créant une variante du SQL. Couchbase met en avant les forces qui ont fait le langage SQL, à savoir un langage qui permet de « décrire les données » que l’on veut sans avoir à définir le « comment récupérer ses données ». Dans la même optique, Cassandra a déjà sorti sa version de SQL, le CQL. Couchbase va plus loin, n1ql pour Non-first Normal Form Query Language (prononcé « nickel ») permet de « faire du SQL sur du JSON ». C’est à dire, faire du SQL sur des données dont le format n’a pas été prédéfini. Le N1ql permet de faire des projections (récupérer une partie du document) ainsi que des jointures (lier les documents). Couchbase a ainsi profité de ce nouveau langage pour sortir des drivers JDBC et ODBC. On peut ainsi brancher les outils de BI classiques comme Tableau directement sur Couchbase. A noter qu’il est possible de mettre à plat le JSON (UNNEST) de façon similaire à l’UNWIND de MongoDB. Il est ainsi possible de générer un result-set flatté.

Pour en savoir plus :

Global Secondary Indexing(GSI)
Couchbase inclut un nouveau service d’indexation permettant des recherches efficaces sur les champs secondaires (autre que la key). Ce service est délocalisé des données de façon à éviter les scatter/gather des views. Il ne remplace pas les views qui sont toujours présentes. A noter que les indexes GSI sont mis à jour en asynchrone pour ne pas perturber la stabilité des performances du service key/value. On note ici que Couchbase ajoute des fonctionnalités en veillant bien à ne pas perdre en performance.


ForestDB
Le WiredTiger de Couchbase ? Ce nouveau moteur a été implémenté par Couchbase et a été intégré dans le GSI. Il ne remplace pas le moteur de stockage principale key/value de Couchbase. On peut espérer de bonne performance pour ce moteur pour l’instant dédié aux index.


Multi dimension scaling
Derrière cette expression, Couchbase veut montrer que sa base est un modèle en termes de scalabilité. Avoir une scalabilité horizontale pour le moteur key/value est incontestée, cependant elle l’est moins concernant la recherche sur index. Couchbase reconnaît la faiblesse des views : il faut à chaque fois faire un scatter/gather qui implique tous les nœuds du cluster. Couchbase 4.0 permet d’activer un ou plusieurs des services data/index/query sur chacun des nœuds. On peut donc désormais s’offrir un énorme serveur pour l’indexation afin d’accélérer grandement les requêtes sans faire de compromis sur le service key/value.


Couchbase 4 VS MongoDB : Faut-il choisir entre les performances et les fonctionnalités ?


Les nouveautés proposées dans Couchbase Server 4.0 nous ont fortement incités à faire la comparaison avec MongoDB.
MongoDB a connu un franc succès grâce à sa facilité d’utilisation et sa richesse de fonctionnalités au sein de l’univers NoSQL. De son coté, en plus des performances et de la facilité d’administration, Couchbase peut désormais afficher des fonctionnalités plus étendues.


Performance : MongoDB a misé sur WiredTiger
MongoDB , en intégrant le moteur WiredTiger, essai de faire oublier les critiques de son moteur MMAP v1.
MongoDB 3.2 établi WiredTiger comme stockage par défaut, soit seulement 1 version après son intégration.

Couchbase, de son côté, a mis un point d’honneur à ne pas proposer une fonction recherche qui aurait pu mettre en péril les performances du moteur key/value. Couchbase livre donc le N1ql avec le multi dimension scaling.


Fonctionnalités : Couchbase Server 4.0 est une petite révolution
Force est de reconnaitre que MongoDB avait jusqu’alors une certaine avance en terme de fonctionnalités/agilité.
Avoir le maximum d’agilité sur une base NoSQL a depuis longtemps été la force de MongoDB :
Ce schéma qui met en évidence le rapport performance/Fonctionnalités nous a grandement rappelé celui présenté par MongoDB depuis plusieurs années:

A travers ce schéma, il faut comprendre que MongoDB souhaite avoir le maximum de fonctionnalités sans sacrifier la scalabilité.

Ravi Mayuram(SVP Products & Engineering) lors du Couchbase Live France 2015 dit :
« Couchbase 3 avait la scalability, couchbase 4 ajoute la flexibilité »


MongoDB ne semble pas souhaiter se faire dépasser sur ce terrain et dans la version 3.2, il ajoute la possibilité de faire des left outer join via le Framework d’agrégation.

Avec cette avancée significative, Couchbase a proposé le 18 novembre un Webinar sur la migration MongoDB vers Couchbase.http://www.couchbase.com/nosql-resources/webinar


De plus, Couchbase propose désormais des formations en ligne (dont certaines gratuites) afin de rendre sa base encore plus accessible à tous. http://training.couchbase.com/online


Faire un choix aujourd’hui
La concurrence est désormais clairement établie et nous autres utilisateurs ne pouvons que nous en réjouir.
Chacune de ses bases de données fait des efforts considérables pour combler ses faiblesses, mais nous conseillons encore de choisir :

  1. MongoDB lorsque l’agilité est un critère déterminant,
  2. Couchbase lorsque les performances key/value sont déterminantes.


Caching use cases


Au fil des présentations de la journée, l’un des points qui ressort est l’intérêt du « Managed cache » intégré à Couchbase Server. La présence d’un cache entre la couche applicative et la base de données permet de meilleures performances car la donnée est disponible en RAM et n’a pas besoin d’être lue depuis le disque. Il en va de même en écriture, la mise à jour dans la base pouvant se faire de manière asynchrone à partir du cache.

Une solution pour cela, notamment avec des bases de données SQL, est d’utiliser un cache distribué indépendant de la base, comme Memcached. Cette solution présente cependant plusieurs inconvénients :

  1. L’infrastructure est plus complexe,
  2. La gestion du cache et des transferts de données entre la base et le cache nécessite un effort supplémentaire,
  3. L’extension des capacités est plus délicate.


Le cache intégré à Couchbase Server est au cœur du système de gestion de base de données depuis sa création. Il permet de ne pas avoir de composant supplémentaire dans l’architecture de l’accès aux données. Il est géré en monitorant la lecture et l’écriture des documents par les clients. Les données les plus utilisés sont conservés en mémoire, les moins utilisés en sont éjectés pour laisser la place à d’autres. La persistance sur disque et la réplication sont effectuées de manière asynchrone, via des queues.

Couchbase nous a présenté au cours de cette journée plusieurs cas de migration d’une telle architecture vers un cluster Couchbase. Ont notamment été cités : PayPal, Tesco, Walmart, Experian et Sky. Le cas d’Amadeus, présenté comme le plus gros remplacement de Memcached à l’échelle mondiale, a été plus détaillé lors d’une présentation par Ludovic DUFRENOY, Software Development Manager. Amadeus est passé de 27 nœuds MySQL et 24 nœuds Memcached à une trentaine de nœuds Couchbase, et ils sont visiblement très satisfaits des performances de leur nouvelle infrastructure, avec un temps de réponse du cache inférieur à 0.5ms.

On retiendra donc que les retours clients mettent l’accent d’une part sur les performances, conservées malgré l’ajout de fonctionnalités, et d’autre part sur la simplification de l’infrastructure, avec la simplification d’augmentation des capacités et la réduction des coûts qui en découlent.

Communiqué de presse d’Amadeus en Français (14/11/2013)
http://www.amadeus.com/web/amadeus/fr_FR-FR/Page-daccueil-Amadeus-Home/Actualit%C3%A9s-et-%C3%A9v%C3%A9nements/Communiqu%C3%A9s-de-presse/2013-11-14-Amadeus-et-couchbase/1259071475442-Page-AMAD_DetailPpal?assetid=1319575273950&assettype=PressRelease_C


Couchbase mobile use cases


Couchbase Mobile se compose de trois éléments :

  1. Sync Gateway
  2. Couchbase Lite
  3. Couchbase Server

« Sync Gateway » est un serveur de synchronisation qui permet d’activer Couchbase Server et de gérer en temps réel les flux de collaboration sur tous types de supports, via la messagerie instantanée, le cloud ou encore les réseaux sociaux. Il a pour but de copier les données internes au système entre les serveurs Couchbase et Couchbase Lite. Il gère aussi :

  1. l’authentification
  2. le contrôle des données
  3. la validation des mises à jour
  4. la duplication des données avec Couchbase Server

« Couchbase lite » est une base de donnée NOSQL très légère, intégrée directement dans le périphérique. Les informations sont directement écrites en local, ce qui permet d’avoir une latence très faible lors des écritures et lectures en base. Couchbase Lite représente les données dans le format JSON, ce qui permet une grande souplesse et ne nécessite plus de définir une structure de donnée précise. Couchbase Lite se synchronise avec Couchbase Server dès que c’est possible et s’occupe de la résolution des conflits potentiels.

Ryanair, qui a présenté ce use case, faisait face à plusieurs problèmes avec son application mobile de réservation de vol. Les plus importants étaient la lenteur de l’application et la nécessité d’avoir une bonne connexion internet pour pouvoir réserver un vol en un temps acceptable et de n’ importe où (aéroport, en vol, pays étranger).

Couchbase Mobile permet donc à Ryanair d’améliorer grandement la latence, pour réserver un vol il ne faut que 2 minutes contre 5 minutes auparavant et un accès hors-ligne aux données sur les vols. Les clients peuvent donc réserver un vol même sans avoir une connexion internet. Cela est très important pour eux car leurs voyageurs n’ont pas accès aux données mobiles en dehors de leur pays ou dans l’avion et la plus part du temps les connexions wifi gratuites sont très lentes.

La mise en place de Couchbase Lite et de Sync Gateway étant simple, ils ont pu mettre en place la nouvelle application en une semaine avec l’aide des techniciens de Couchbase et grâce à la communauté de développeurs très active.

Voir la présentation complète Ryanair Couchbase Live : http://docslide.us/travel/how-ryanair-reduced-booking-time-from-5-to-less-than-2-minutes-couchbase-connect-2015.html