Brève présentation du paysage des bases de données

Professionnels au bureau

Zoom sur le paysage des bases de données à travers les licences et la modélisation des données.

Si vous commencez tout juste à explorer le monde des bases de données, vous savez probablement déjà deux choses : l’utilisation efficace des données est lucrative, et le choix d’une base de données pour gérer ces données peut s’avérer compliqué. 

Il est vrai que la capacité des données à améliorer le chiffre d’affaires ne cesse de croître. Elles en effet permettent d’optimiser l’expérience utilisateur et d’alimenter le machine learning. Cependant, cela signifie également que des centaines de fournisseurs se disputent le marché du stockage et de l’analyse des données. Alors, comment faire votre choix ? Comme pour la plupart des choses dans la vie, il est important de bien se renseigner.

Voici donc un tour d’horizon du paysage des bases de données, et plus particulièrement de la manière dont elles s’intègrent dans un contexte professionnel. Nous commencerons par examiner en détail les licences et la modélisation des données.

 

Le spectre des licences logicielles démystifié

Les licences logicielles sont, pour le moins, complexes. Il y a non seulement la question des droits de propriété intellectuelle (à ce sujet, je vous recommande de consulter « An Introduction to the Law and Economics of Intellectual Property » de Besen & Raskind et « Open Source Licensing: Software Freedom and Intellectual Property Law » de Rosen), mais aussi, plus précisément, les raisons pour lesquelles vous devriez vous intéresser aux licences ainsi qu’aux tendances du paysage des bases de données open source qui ont des implications pour votre entreprise.

Vous êtes prêt ?

Tout d’abord, parlons des licences

Toutes les licences logicielles comportent des règles et des réglementations que vous devez respecter concernant l’utilisation de la technologie. Cela signifie que les licences des logiciels que vous adoptez peuvent avoir des répercussions tangibles sur la manière dont vous menez vos activités. Ignorer ou enfreindre ces règles peut vous exposer à des risques juridiques, à des pertes financières et, bien entendu, nuire à la réputation de votre entreprise. Que vous achetiez un logiciel ou adoptiez des technologies open source, la licence limitera en fin de compte l’utilisation du code d’une manière ou d’une autre. En résumé, vous devez prendre conscience de ces contraintes lorsque vous développez votre produit afin d’atténuer les risques juridiques à long terme.

Ensuite, il est important de garder à l’esprit que les licences ne sont pas immuables. En effet, à l’heure actuelle, de nombreuses entreprises qui soutiennent des projets de bases de données open source sont en train de modifier leurs licences afin de les rendre plus restrictives. Selon le cas, cela peut signifier que vous pourriez désormais faire l’objet de poursuites judiciaires si vous utilisiez une base de données gratuitement. Loin de nous l’intention de vous effrayer, nous souhaitons simplement vous inciter à faire preuve de vigilance. Face à ces changements, il est important de bien réagir. Dans certains cas, un changement de licence peut nécessiter de repenser l’architecture d’un service, d’adopter une autre base de données ou de conclure un accord commercial avec le fournisseur.

Allons un peu plus loin

Les lecteurs assidus de Hacker News ou TechCrunch connaissent bien les débats autour des logiciels de bases de données open source et commerciaux. Voici en gros de quoi il s’agit : au cours des trois dernières années, un débat a éclaté en raison de la convergence de plusieurs facteurs, tels que la croissance des principaux fournisseurs de cloud public et le succès commercial, ou l’absence de succès, des fournisseurs de bases de données open source.

Cela dit, la relation entre les logiciels libres et les logiciels propriétaires n’est pas binaire, mais relève plutôt d’un spectre :

Remarque : la distance illustrée n’est pas scientifique, la relativité est plus importante.

Si l’on observe le spectre ci-dessus, à l’extrême gauche, on trouve les licences de logiciels de bases de données commerciales ou propriétaires, telles qu’Oracle, IBM Db2 et Microsoft SQL Server. Il s’agit de technologies puissantes et riches en fonctionnalités qui alimentent les workloads dans tous les secteurs verticaux. Lorsque vous achetez ce type de logiciel auprès d’un fournisseur ou sous forme de service cloud, vous payez un supplément pour avoir accès aux éléments suivants :

  • Support au niveau du code

  • Écosystème d’outils robuste

  • Services professionnels et consultants

  • Visibilité et influence sur la feuille de route de cette base de données

À droite, on trouve les logiciels du domaine public. Ceux-ci ne sont soumis à aucun droit d’auteur, ce qui signifie qu’ils peuvent être modifiés, distribués ou vendus sans restriction. Les projets situés à l’extrémité droite du spectre sont souvent régis par les normes d’un tiers impartial et objectif, tel que l’Apache Software Foundation ou la Linux Foundation.

L’Open Source Initiative (OSI) tient à jour une liste généralement acceptée de ce qui constitue ou non une licence open source. En général, la particularité des logiciels open source réside dans la possibilité de dupliquer le code pour ses propres besoins (« fork »). Cela signifie que si l’orientation du projet (logiciel) ne correspond pas à vos besoins ou à vos attentes, vous êtes libre de modifier ou d’éditer le code comme bon vous semble.

L’utilisation d’une technologie open source est particulièrement intéressante en raison de l’absence de frais de licence, d’une plus grande transparence en matière de développement et de l’innovation qui découle de la diversité des parties prenantes, des responsables de la maintenance et des problématiques. Par rapport aux logiciels commerciaux, cela signifie que vous renoncez à votre influence sur la feuille de route, aux garanties concernant les corrections de bugs ou les correctifs de sécurité, ainsi qu’aux contrats, mais vous bénéficiez en contrepartie d’une absence totale de dépendance vis-à-vis des fournisseurs et d’une plus grande flexibilité dans votre activité. Il s’agit là d’un compromis que vous et votre équipe devez examiner attentivement.

En suivant le parcours indiqué dans le tableau ci-dessus, de gauche à droite, on observe différents niveaux de permissivité des licences, comme Apache 2.0, MPL et GPL 3.0.

Exemples de bases de données associées à des licences

Un peu d’histoire pour replacer le contexte

À la fin des années 2000, la plupart des nouveaux fournisseurs de bases de données se sont lancés sur le marché en mode « open source » afin de faciliter leur adoption et de gagner la confiance des développeurs. Vous connaissez peut-être des entreprises de ce type, comme Mongo Inc., Redis Labs et Elastic. Elles ont développé des projets communautaires tels que MongoDB, Redis et Elasticsearch, mais ont cherché à monétiser cet investissement avec des versions sous licence pour les entreprises, des implémentations cloud gérées ou des services professionnels.

Cependant, le changement de paradigme du cloud computing a rendu ce modèle économique précaire, car les principaux fournisseurs peuvent facilement fournir ces technologies sous forme de services gérés natifs de premier ordre. Ces offres sont fournies avec des intégrations convaincantes en matière de sécurité, de conformité, de surveillance et de journalisation sur leurs clouds respectifs, sans contrepartie financière garantie aux créateurs des logiciels.

Ces dernières années, les entreprises ont réévalué leur stratégie de commercialisation. Aujourd’hui, nous les voyons adopter des modèles de licence qui protègent leurs investissements en matière de développement. Par exemple, MongoDB, Redis Labs et Confluent, avec des degrés de sévérité variables, ont tous modifié les licences de certaines parties du code afin d’empêcher d’autres entreprises de les exploiter en tant que service sans recevoir de contrepartie financière.

Mais alors, que conseiller ? Excellente question.

Il existe de bonnes raisons d’utiliser à la fois des bases de données commerciales et/ou open source. L’important est de bien comprendre les implications pour vous et votre entreprise. Avant de développer une application, examinez la licence pour vous assurer que votre projet est conforme. Si vous recherchez au contraire une licence pour un projet open source, consultez la page Web de Github « Choisir une licence » (en anglais).
Les licences sont donc un élément important à prendre en compte, car personne ne souhaite être poursuivi en justice. Les familles de modèles de données constituent un autre élément important, mais pour une raison différente. Lorsque vous développez une application, il est utile de connaître les différents types de modèles de données afin de choisir l’outil le mieux adapté à votre projet.

Les 5 grandes familles de modèles de données

Maintenant que vous en savez plus sur les licences, abordons un autre élément essentiel à prendre en compte lors du choix de votre base de données : les modèles de données.

Lorsque j’ai commencé à travailler chez IBM, j’avais besoin de me mettre rapidement à niveau, je me suis donc tourné vers l’ouvrage NoSQL Distilled de Martin Fowler.

Dans ses écrits, et dans le secteur en général, les bases de données sont généralement classées en cinq familles de « modèles de données » : orientés documents, clé-valeur, orientés graphes, relationnels et orientés colonnes. Voici un bref aperçu de chacune d’entre elles, avec des cas d’utilisation et des exemples propres à chaque base de données. Cela vous aidera à déterminer, en fonction de vos jeux de données et de vos besoins, la base de données qui vous convient.

1. Modèles orientés documents

Dans ce cas, les données sont modélisées dans des documents de type JSON, plutôt que dans des lignes et des colonnes. Ces bases de données privilégient naturellement la disponibilité plutôt que la cohérence transactionnelle. Elles se prêtent à la simplicité et à l’évolutivité, ainsi qu’à une itération rapide en développement.

Cas d’utilisation métier :

  • Applications mobiles nécessitant des itérations rapides

  • Journalisation d’événements, achats en ligne, gestion de contenu et traitement analytique approfondi

  • Catalogues de vente au détail avec attributs de produits

Exemples :

2. Modèles clé-valeur

Ce type de modèles constitue le type le plus élémentaire de base de données non relationnelle, dans lequel chaque élément est stocké sous la forme d’un nom d’attribut (appelé clé) associé à sa valeur correspondante.

Cas d’utilisation métier :

  • Stockage des préférences et des profils des utilisateurs

  • Recommandations de produits basées sur les données de navigation

  • Paniers d’achat

Exemples :

  • DynamoDB

  • Redis

  • etcd

3. Modèles orientés graphes

Les données sont ici modélisées sous forme de sommets et d’arêtes (valeurs et connexions). À l’instar de la manière dont les humains pensent et traitent les informations, les bases de données orientées graphes rappellent les relations entre des unités de données distinctes. Elles rendent la persistance, l’exploration et la visualisation des données et des relations plus intuitives.

Cas d’utilisation métier :

  • Détection des fraudes

  • Moteurs de recommandation en temps réel

  • Master Data Management

  • Réseaux et opérations informatiques

  • Gestion des identités et des accès

Exemples :

4. Modèles relationnels

Le modèle relationnel, introduit par R. F. Codd alors qu’il travaillait chez IBM, est la référence dans le secteur. Les données sont stockées dans des tables sous forme de lignes et de colonnes et disposent souvent de moteurs de requête sophistiqués pour l’analyse et l’exploration. Les bases de données relationnelles prennent en charge les garanties transactionnelles et la conformité ACID (atomicité, cohérence, isolation et durabilité), tandis que la cohérence de la plupart des bases de données des quatre autres familles est acquise à terme.

Cas d’utilisation métier :

  • E-commerce

  • Enterprise Resource Planning

  • Gestion de la relation client

Exemples :

5. Modèles orientés colonnes

Ces bases de données permettent un accès très rapide aux données à l’aide d’une clé de ligne, d’un nom de colonne et d’un horodatage de cellule. Leur schéma flexible signifie que les colonnes n’ont pas besoin d’être cohérentes d’un enregistrement à l’autre, et que vous pouvez ajouter une colonne à des lignes spécifiques sans avoir à l’ajouter à chaque enregistrement. Les bases de données orientées colonnes sont dérivées du document BigTable de Google. Elles ne doivent pas être confondues avec les modèles de stockage orientés colonnes, qui sont plus adaptés aux technologies d’entrepôt de données et aux schémas d’accès analytiques en raison d’une meilleure compression des données sur disque et d’une utilisation plus efficace du processeur.

Cas d’utilisation métier :

  • Sécurité et analyse boursière

  • Analyse des parcours de navigation

  • IdO et télémétrie

Exemples :

  • Apache Cassandra

  • DataStax Enterprise

  • Google Cloud BigTable

En résumé, chaque modèle de données primaire présente des avantages et des inconvénients (et nous n’avons fait qu’effleurer le sujet ici). Toutefois, en cas de doute, optez pour une solution éprouvée et bien répandue telle que PostgreSQL. Pour en savoir plus sur l’archétype des familles de modèles de données, consultez l’ouvrage de Martin Fowler intitulé « NoSQL Distilled », en particulier les chapitres 8 à 11.

Vous souhaitez en savoir plus sur les bases de données ?

J’ai abordé plusieurs points ici, mais si vous souhaitez approfondir vos connaissances, voici quelques suggestions selon le temps dont vous disposez :

Vous souhaitez vous lancer ? IBM Cloud propose une large gamme de services de bases de données gérées pour aider votre équipe à démarrer rapidement.

Auteur

Josh Mintz

Program Director