Pourquoi MongoDB est `` fondamentalement meilleur '' pour les développeurs

Il faut une certaine quantité de chutzpah - OK, des montagnes - pour inventer un nouveau type de base de données et supposer qu'elle va conquérir le monde. Ou peut-être ne pas supposer, exactement, mais, comme le co-fondateur de MongoDB Eliot Horowitz l'a dit dans une interview, «Si quelqu'un voulait le faire, nous avions à peu près les meilleures chances de quiconque.»

Pas Oracle, avec ses décennies de domination dans les bases de données relationnelles (SGBDR). Pas IBM, avec une activité de base de données en déclin, mais des hordes d'ingénieurs talentueux. Pas Microsoft, qui avait insufflé une nouvelle vie dans le monde du SGBDR avec SQL Server. Même l'open source ne permet pas de relancer MySQL et le PostgreSQL de plus en plus populaire.

Non, c'était Horowitz et Dwight Merriman, deux New-Yorkais qui voulaient donner une nouvelle tournure à la plate-forme en tant que service (PaaS), mais qui ont plutôt construit une base de données. «Le monde des bases de données a changé à jamais à cause de ce que nous avons fait», a déclaré Horowitz, ce qui peut sembler arrogant, à l'exception du fait que c'est vrai. Pourquoi c'est vrai, cependant, vaut la peine de plonger profondément pour comprendre.

Horowitz a récemment pris sa retraite de MongoDB après 13 ans au sein de la société et du produit, ce qui lui a permis d'évaluer le travail qu'il a effectué.

'Nous avons poussé l'industrie'

Mais revenons en arrière un instant. Il est facile de regarder des choses comme le classement de popularité de la base de données DB-Engines et d'arriver à la mauvaise conclusion. "MongoDB est la cinquième base de données la plus populaire, et toujours un tiers aussi largement utilisée qu'Oracle et MySQL!" Compte tenu de la réticence des entreprises à abandonner des bases de données éprouvées, même ce niveau d'adoption est impressionnant. Les bases de données sont le produit le plus «collant» au sein d'une organisation, le moins susceptible de changer. Donc pour MongoDB pour déplacer des bases de données qui avaient été largement adoptées (DB2, Ingres, etc.) pendant des décennies, et pour continuer à gagner en popularité par rapport aux piliers du SGBDR comme Oracle…? C'est un gros problème.

Cependant, un indicateur encore plus puissant de l'influence de MongoDB est à quel point ces titulaires ont singé le parvenu.

«Tous les autres produits traditionnels, Postgres, MySQL, même Oracle et SQL Server, ont repris une grande partie des idées de MongoDB et essaient de les bâtarder à leur manière», a déclaré Horowitz. «Même les développeurs qui disent: 'Je n'utiliserais jamais MongoDB! Je vais simplement utiliser Postgres parce qu'il a JSONB et toutes ces autres choses. »» Comme Horowitz l'a souligné, des choses telles que JSONB existent précisément parce que MongoDB a poussé l'industrie à les adopter. Pour ceux qui «détestent MongoDB mais qui parlent de JSONB» Horowitz dit simplement: «De rien».

Mais, encore une fois, l'hubris. Ou chutzpah. Ou quoi que ce soit qui a poussé Horowitz et Merriman à avancer malgré tout -  tout  - dans l'industrie mise en place pour assurer leur échec. D'où vient cela?

`` Les bases de données étaient nulles et quelqu'un devait y remédier ''

Horowitz et Merriman avaient travaillé ensemble dans quelques entreprises, DoubleClick et Shopwiki inclus, et, comme Horowitz l'a expliqué, la base de données ne cessait de gêner. Ou, pour être plus franc, «Utiliser des bases de données était nul, et quelqu'un devait le réparer et si personne d'autre n'allait le faire, cela pourrait aussi bien être moi et Dwight. Nous savions que nous avions un bon tir. C'était loin d'être un slam dunk, mais ... si quelqu'un voulait le faire, nous avions à peu près les meilleures chances de quiconque.

La chose évidente à faire à ce stade serait de créer un meilleur SGBDR; pour combler les lacunes laissées par MySQL et Postgres, qui avaient tous deux gagné en popularité. Mais c'est ce que Horowitz n'a pas envie de faire. Il voulait construire une approche complètement différente des données, une approche qui correspondait à la façon dont les développeurs programmaient, et non au besoin de certains systèmes ERP de lignes et de colonnes ordonnées et ordonnées.

L'approche des lignes et colonnes des schémas de données ne ressemble tout simplement pas aux données telles qu'elles sont représentées dans le code d'application, comme l'a expliqué Horowitz. Dans les langages de programmation modernes, la chose que vous souhaitez stocker dans la base de données (par exemple, une commande, un client, etc.) est représentée comme un objet complet, avec tous les attributs associés contenus dans une seule structure de données. Cette discordance entre les développeurs et les administrateurs de bases de données nécessite la traduction de cette riche structure d'application pour l'adapter aux règles rigides du SGBDR. De cette manière, même les applications les plus simples prennent les qualités de Frankenstein dans le SGBDR, nécessitant des dizaines (voire des milliers) de tables pour capturer la modélisation de données autrefois simple du développeur.

MongoDB, a déclaré Horowitz, a offert aux développeurs une bouée de sauvetage.

«Si vous prenez des personnes qui n'ont jamais utilisé de base de données auparavant et que vous leur apprenez MongoDB, puis que vous leur apprenez une base de données relationnelle, MongoDB leur est tellement plus simple et plus intuitive.» Oui, si vous travaillez avec un système de comptabilité ou de grand livre, le SGBDR a été conçu pour de telles applications, et elles fonctionnent bien. «Mais pour tout le reste, le modèle relationnel ne fonctionne pas», a déclaré Horowitz.

Si vous utilisez un langage de programmation et une base de données, ce qui est étrange, c'est qu'avec MongoDB, à certains égards, l'API [MongoDB] ressemble beaucoup plus à votre langage de programmation qu'à la base de données. Par conséquent, c'est assez simple à ramasser. Pour de nombreux concepts de base tels que l'indexation et les requêtes, oui, c'est un langage de requête différent et l'indexation est légèrement différente mais, fondamentalement, l'indexation est un peu la même. Les bases de MongoDB sont très faciles à comprendre.

Au cours des 13 dernières années, une grande partie de ce que son entreprise a dû faire, a déclaré Horowitz, est de rééduquer ceux qui ont grandi sur le SGBDR et ont besoin d'apprendre une nouvelle façon. Mais pour ceux qui découvrent les bases de données, «MongoDB est tellement plus intuitif que les autres bases de données. Cela correspond tellement mieux à la façon dont les gens pensent. » En tant que tel, Horowitz a poursuivi: "Si vous partez de zéro, vous devriez presque toujours utiliser MongoDB, à mon avis biaisé."

`` Le cloud a toujours été la vision ''

Lorsqu'on lui a demandé s'il pouvait déterminer à quel moment il savait que le pari MongoDB porterait ses fruits, Horowitz y a réfléchi un instant, puis a répondu: «Avril 2010.» C'est alors que MongoDB a organisé un événement à San Francisco qui s'est vendu en moins de 48 heures. «Les gens ont adoré les concepts de base et tout est devenu beaucoup plus facile.» Jusque-là, Horowitz a précisé qu'il y avait des moments où il s'inquiétait: «Est-ce que ce truc va jamais marcher?» Mais en avril 2010, il savait que la réponse était un «oui» retentissant.

Ce qui ne veut pas dire qu'il a appuyé sur le régulateur de vitesse. «Même dans ce cas, nous savions qu'il faudrait 10 ans pour ajouter les fonctionnalités que nous voulions et dont les entreprises auraient besoin.»

L'une de ces fonctionnalités était le cloud.

Étant donné le début de MongoDB en tant que futur PaaS, il n'est peut-être pas surprenant que Horowitz suggère que le cloud soit sur la feuille de route depuis le premier jour. «Peu de temps après avoir commencé à créer MongoDB, nous avons également commencé à créer le service de surveillance MongoDB, qui a fourni les bases d'Atlas», la base de données en tant que service de MongoDB qui représente désormais 42 pour cent des revenus de l'entreprise. «Notre objectif a toujours été d'avoir un service de base de données complet.»

Une grande partie de cela est liée à la vision de l'entreprise de faciliter la vie des développeurs. «En tant que développeurs, nous savions que personne ne voudrait gérer la base de données lui-même s'il pouvait demander à quelqu'un de le faire à sa place, tout aussi sûr et fiable. La pleine réalisation de cette vision devrait cependant attendre, car même une startup bien financée comme MongoDB ne pouvait pas tout faire en même temps. «Nous avons dû investir tout notre temps et toute notre énergie pour obtenir la bonne base de données, sinon cela n'arriverait pas. C'est pourquoi nous avons commencé à jouer avec la surveillance en tant que service, juste pour nous assurer que nous comprenions comment exécuter un service cloud à grande échelle. » En outre, la société a bricolé sur les bords avec des choses comme la gestion des cartes de crédit et les systèmes de support pour «s'entraîner à les faire afin que lorsque nous étions prêts à lancer Atlas pour de vrai, ce n'était pas de zéro.

En fin de compte, Horowitz estime que «le pourcentage de personnes exécutant MongoDB à l'aide d'Atlas sera de près de 100%», même s'il est peu probable qu'il atteigne jamais 100%. Avec la «grande majorité» des applications migrant vers le cloud, «il n'y a aucune raison de ne pas utiliser Atlas», affirme Horowitz. 

`` Vous ne pouvez pas dire que nous n'avons pas réussi ''

Interrogé sur l'origine du prochain MongoDB, Horowitz n'a pas identifié un concurrent comme un principe directeur, le même qui l'a poussé, lui et Merriman, à construire MongoDB: «Vous devez faire quelque chose de fondamentalement mieux qu'autre chose. Si vous proposiez quelque chose qui faisait tout ce que MongoDB ou Postgres ont fait, mais qui était 10 fois moins cher ou 10 fois plus rapide, ce serait plutôt convaincant. » Cela dit, il a ajouté: «Je n'imagine pas comment vous pouvez battre MongoDB dans le modèle de données pour le moment.»

Mais ce qui pourrait être intéressant, a déclaré Horowitz, ce serait des architectures de base de données fondamentalement différentes qui peuvent tirer parti de l'infrastructure de cloud public pour rendre les choses beaucoup moins chères. «Beaucoup de gens y travaillent, mais personne ne l'a vraiment fait. Il n'y a rien là-bas qui soit conçu fondamentalement différemment.

Ce qui nous ramène là où nous avons commencé. «Si vous pensez à ce que nous avons décidé de faire, à savoir rendre les bases de données fondamentalement plus faciles et fondamentalement meilleures pour les développeurs, il n'y a aucun moyen que vous puissiez prétendre que nous n'avons pas réussi», a déclaré Horowitz. «MongoDB est largement supérieur à tout ce qui existait lorsque nous avons commencé.» Certains pourraient ne pas être d'accord, mais peu seraient en désaccord avec sa prochaine déclaration: «Le monde des bases de données est changé à jamais à cause de ce que nous avons fait. C'est vraiment génial. »