BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Les tendances actuelles du NoSQL - Rencontre avec Peter Bell

Les tendances actuelles du NoSQL - Rencontre avec Peter Bell

Peter Bell nous donne un aperçu des dernières tendances du NoSQL, un type de bases de données qui évolue rapidement et qui couvre un ensemble de solutions aussi nombreuses que variées. Peter est formateur chez Pragmatic Learning, une société qu'il a fondée, il est aussi membre de la training team de GitHub et fondateur de Speak Geek, une société qui coache les entrepreneurs afin de les aider à embaucher et à encadrer des développeurs. Il anime des formations et fait régulièrement des présentations sur un large éventail de bases de données NoSQL dont MongoDB, Neo4j et Redis. Il est par ailleurs expert MongoDB.

InfoQ : Ces dernières années ont vu les bases NoSQL passer du statut de solutions relativement marginales réservées aux personnes aimant être sur le fil du rasoir, à celui d'éléments standards dans de nombreux stacks technologiques. Quels sont les facteurs, selon vous, de cette adoption si rapide ?

Il y a trois principaux facteurs qui ont favorisé l'adoption rapide du NoSQL. Le premier est la demande. Compte-tenu de l'augmentation du trafic internet et mobile que nous avons pu observer ces dernières années, il y a de plus en plus de sociétés qui sont confrontées à des échelles qui n'étaient pas envisageables il y a quelques années.

Le second facteur est la disponibilité. Les logiciels Open Source ont vraiment mûri durant les dernières années et il existe à présent un nombre important de bases NoSQL open source matures qui permettent aux sociétés de choisir la base de données qui correspond le mieux à leur besoin.

Enfin, le NoSQL est à la mode ! Je pense qu'il existe un bon nombre d'applications développées à base de NoSQL pour lesquelles une base de données relationnelle serait plus appropriée. Néanmoins, les bases NoSQL passeront peu à peu du statut de nouveauté à la mode à celui de technologie commune et ennuyeuse. On peut alors penser que les technologues feront des choix plus appropriés en fonction de leurs besoins.

InfoQ : Récemment nous avons observé l'arrivée sur le marché d'une douzaine d'éditeurs relativement nouveaux qui font référence, pour certains, au NewSQL (bien que ce terme ne semble pas être répandu chez l'ensemble de ces éditeurs). Pouvez-vous nous expliquer ce qui se cache derrière le NewSQL ? Pensez-vous que ce concept améliorera l'acceptation des bases non relationelles dans les entreprises qui ont des besoins propres aux bases de données transactionnelles ?

Le NewSQL est utilisé pour désigner les bases de données modernes, telles que NuoDB, qui offrent à la fois une scalabilité horizontale simple et le support des requêtes SQL. Par exemple, si vous avez une telle charge qu'un seul serveur ne suffit pas mais que vous ne désirez pas former votre équipe sur des bases de données qui n'utilisent pas de SQL, les bases NewSQL pourraient être parfaites pour vous. Je pense que nous ne sommes qu'aux prémices de la révolution NewSQL. Il est clair que, bien qu'il existe des cas pour lesquels les bases NoSQL offrent une meilleure abstraction que l'algèbre relationnel, dans bien d'autres cas, une base de données scalable avec un modèle de programmation familier est un meilleur choix.

InfoQ : Les bases de données orientées graphe, telles que Neo4J, s'appuient sur la théorie des graphes pour modéliser les relations entre les noeuds. Ceci peut sembler compliqué mais pouvez-vous nous expliquer les avantages que cette modélisation nous offre ? Pensez-vous que ce type de bases peut être adopté par un large public ?

Le monde est un graphe. Que je sois en train d'essayer de gérer des permissions sur un fichier pour un utilisateur qui fait partie de plusieurs groupes avec des règles distinctes, de décider lequel de mes amis serait le plus à même de me recommander un restaurant à Dehli ou de calculer le meilleur chemin pour acheminer un colis de Shanghai à Londres, les graphes sont souvent une manière très naturelle de modéliser nos domaines. Du commerce électronique à la gestion de contenus et de la bio-informatique au conseil, les graphes nous permettent d'ajouter de la valeur à des données que nous possédons déjà. Imaginez que vous soyez en train d'essayer de calculer "les six degrés de Kevin Bacon" avec n'importe quel acteur à l'aide d'une requête SQL... En utilisant Cypher (un language SQL-like permettant d'écrire des requêtes sur les graphes fourni avec Neo4j), c'est trivial.

Facebook a lancé son graph search. Google utilise une base de connaissances orientée graphe pour améliorer les résultats de ses recherches. Je pense que les bases de données orientées graphe offiront des sources d'innovations parmi les plus importantes, autant pour les startups que pour les grandes entreprises, au cours des prochaines années. Lorsque j'ai commencé à travailler avec des bases de données orientées graphes, j'ai pensé qu'elles s'adressaient à des niches telles que les réseaux sociaux (Glassdoor utilise Neo4j) et pour trouver des chemins plus courts (ou moins chers) pour des personnes ou des colis. Plus je travaille avec Neo4j, plus je réalise qu'il n'existe que peu de domaines qui ne gagneraient pas à être modélisés à l'aide d'un graphe. Je ne pense pas du tout que les graphes deviendront le paradigme de modélisation prédominant pour les solutions de stockage, mais je pense qu'ils peuvent être utiles dans beaucoup de domaines.

InfoQ : Redis se décrit comme une base "orientée clé-valeur avancée", mais je vous ai entendu dire que c'était plus qu'une base orientée clé-valeur. Pouvez-vous nous expliquer ce que vous entendez par là ?

Bien que Redis soit effectivement une base orientée clé:valeur (par opposition aux bases orientées documents, graphes ou colonnes), il s'agit en fait de bien plus que de simples clés et valeurs. Redis propose des listes, des sets, des sets ordonnés et la fonctionnalité pub:sub permet de résoudre beaucoup de problèmes intéressants de manière très performante. Il s'agit en outre d'une solution totalement en mémoire (avec la performance qu'on peut en attendre) qui permet de prendre des snapshots et d'écrire des logs sur disques. Redis n'est pas une base de données qui remplit tous les types de besoins, mais si vous devez prendre des décisions sur des solutions de persistance, vous devriez peut être vous renseigner sur Redis, dans la mesure où cette base offre des performances impressionnantes.

InfoQ : Voyez-vous d'autres tendances à propos desquelles nos lecteurs devraient être informés ?

La prochaine grande tendance à surveiller en matière de NoSQL, dans les même délais que le NewSQL sont les bases de données immuables. Il y a eu beaucoup de discussions, ces dernières années, à propos des apports de la programmation fonctionnelle pour distribuer les traitements efficacement sur plusieurs serveurs. En minimisant les états mutables partagés, un modèle de programmation fonctionnelle évite les problèmes d'interblocage qui apparaissent avec les programmes OO qui sont distribués sur un grand nombre de machines.

Mais si nous sommes d'accord qu'un état mutable partagé pose des problèmes de scalabilité, pourquoi permettre à nos bases de données d'être mutables ? Si on y réfléchit, une base de données est simplement un grand ensemble de données, mutable et partagé (un peu comme une collection de variables globales qui serait partagée entre l'ensemble de vos serveurs). Bon nombre de sociétés (dont Twitter) s'intéressent aux avantages qu'offiraient des bases de données immuables - des bases qui peuvent accepter l'ajout de nouvelles données mais dans lesquelles les données existantes ne peuvent être généralement ni modifiées ni supprimées. Un bon point de départ pour s'intéresser à cette tendance est Datomic : la base de données conçue par Rich Hickey, l'auteur de Clojure.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT