Pourquoi CockroachDB change de licence Open Source

Remarque perev. : La flexibilité et les libertés offertes par les licences Open Source ont permis aux fournisseurs modernes de grandes solutions SaaS de remettre en question le succès des petites entreprises qui sont à l'origine du développement de projets Open Source populaires. Dans cet article, des auteurs de CockroachDB - un SGBDR distribué et tolérant aux pannes - l'essence du problème et la manière possible de le résoudre sont entièrement décrites.



CockroachDB a été conçu comme un logiciel open source. Dans les années qui se sont écoulées depuis que le projet est apparu sur GitHub (le code a été publié pour la première fois en février 2014 - environ la traduction ) , nous avons suivi un chemin de développement relativement typique, équilibrant entre la philosophie de l'open source et la création d'une entreprise viable. Le code principal était sous licence Apache License 2 (APL), un service géré a été lancé et certains modules complémentaires pour les entreprises ont été émis sous une licence d'entreprise.

Mais nos idées passées sur le bon modèle d'entreprise étaient basées sur la norme clé du monde OSS: vous pouvez bâtir une entreprise autour d'un puissant produit Open Source sans supposer qu'une plus grande entreprise technologique viendra offrir le même produit qu'un service. Cette norme n'est plus valable.

En principe, rien n'empêche juridiquement les concurrents de proposer un produit OSS as-a-service créé par une autre entreprise. Et maintenant, nous voyons que cela se produit vraiment. Aujourd'hui, nous assistons à une augmentation du nombre de fournisseurs hautement intégrés qui profitent de leur position unique et proposent des versions en tant que service des produits OSS. Il est clair que leur haute intégration améliore considérablement l'expérience utilisateur. Plus récemment, cela s'est produit avec le fork d'ElasticSearch, «emprunté» par Amazon (Salil Deshpande dans l' article TechCrunch a habilement décrit ce qui s'est passé comme «égoïste et rationnel»).

En réponse à une telle concurrence déloyale, nous modifions les termes de notre licence. Les détails sont fournis ci-dessous sur GitHub . Les brèves modifications sont les suivantes:

À partir d'aujourd'hui, nous introduisons une version exclusivement permissive de la licence Business Source License (BSL). Les utilisateurs de CockroachDB peuvent adapter notre SGBD à n'importe quel nombre de nœuds. Ils sont libres d'utiliser CockroachDB et de l'intégrer dans leurs applications (qu'ils les livrent aux consommateurs ou les proposent en tant que service). Vous pouvez également exécuter CockroachDB en tant que service pour les objectifs internes de votre entreprise. La seule chose que vous ne pouvez pas faire est d’offrir la version commerciale de CockroachDB en tant que service sans acheter la licence appropriée .

Pour assurer la poursuite du développement du projet, notre restriction a une limite de temps mobile: trois ans après la sortie, la licence devient la licence Apache 2.0 standard. En modifiant les conditions de la licence et en introduisant un délai, nous avons deux objectifs:

  • Créer une base de données en tant que service compétitive (DbaaS)
  • en cours de route, assurez-vous que le produit principal reste complètement ouvert.

Comparaison de différentes approches de licence Open Source


Certaines entreprises ont déjà autorisé leurs produits dans un double objectif similaire. En évaluant les méthodes existantes, nous avons constaté qu'elles tendent toutes vers deux approches principales: le copyleft et un modèle à plusieurs niveaux. Malheureusement, aucun d'entre eux ne correspond à ce que nous souhaitons réaliser en modifiant la licence.

Modèle copyleft


Le fondateur de la tradition du copyleft est la GNU GPL. Son but est d'empêcher l'apparition de fourches propriétaires, nécessitant dans certains cas la libération du code source. Affero General Public License (AGPL) et sœur Server-Side Public License (SSPL) tombent dans ce camp. C'est dans la SSPL qu'une attention particulière est portée au problème des services concurrents.

Cependant, nous pensons que toutes ces licences sont à la fois redondantes et insuffisantes. Ils sont redondants dans le sens où les détails sont complexes et les exigences de copyleft ne sont pas toujours claires. De nombreux utilisateurs potentiels sont effrayés par les exigences de divulgation de code qui sont potentiellement trop larges. Ils sont insuffisants dans le sens où les concurrents sont prêts et peuvent révéler suffisamment de leur code pour qu'ils n'aient pas de questions, tout en n'apportant aucun avantage aux développeurs de la technologie de base. Amazon l'a fait avec Open Distro pour Elasticsearch , bien que la licence de copyleft ne l'exige pas.

Nous avions besoin de quelque chose de plus simple et de plus rigide.

Modèle en couches


Nous avons également envisagé la possibilité d'utiliser un modèle à trois niveaux: le noyau Open Source, les composants d'entreprise et un certain niveau intermédiaire avec des fonctions dont le code source est fermé, mais ils peuvent être utilisés complètement gratuitement. Ce modèle est assez populaire dans le monde du logiciel; et avec quelques variantes, nous l'avons utilisé à ce jour.

Cependant, cela génère un mauvais message pour notre entreprise. Il s'avère qu'il n'est pas rentable pour nous de mettre en œuvre de nouvelles fonctions dans un noyau ouvert et il est logique de concentrer tous les efforts sur des composants fermés. En fait, nous sommes tentés de tromper la confiance de nos utilisateurs et de cacher les fonctionnalités les plus intéressantes pour une licence en volume. À long terme, cette approche n'augure rien de bon pour l'écosystème Open Source.

Solution trouvée: BSL


Nous avons commencé à étudier les licences à durée limitée et avons constaté qu'il n'était pas nécessaire de créer une nouvelle licence à partir de zéro. La licence Business Source (BSL) de MariaDB version 1.1 contient tout ce dont vous avez besoin et a déjà été approuvée par le fondateur d'OSI, Bruce Perens. BSL est une licence paramétrée , nous l'utilisons donc différemment de MariaDB.

La principale différence est la subvention d'utilisation supplémentaire - par exemple, MariaDB permet l'utilisation de MaxScale sur jusqu'à trois serveurs . La subvention d'utilisation supplémentaire de CockroachDB vous permet d'utiliser notre produit sur un nombre quelconque de nœuds, à condition que vous ne l'offriez pas en tant que DbaaS commercial. Pendant trois ans, notre version BSL protège le code CockroachDB existant contre l'utilisation en tant que DBaaS sans avoir à acquérir une licence en volume appropriée. Après 3 ans, cette restriction est supprimée et le code devient ouvert (dans le sens qui est intégré dans la licence Apache) et peut être librement utilisé à n'importe quelle fin.

Nous appliquons cette licence à la version de base de CockroachDB (c'est-à-dire au code qui relevait auparavant d'Apache 2.0). Cela signifie que le noyau CockroachDB n'est plus ouvert (selon la définition Open Source d' OSI), bien que le code complet soit toujours disponible et que toute utilisation commerciale soit autorisée sauf DBaaS. Nous pensons que c'est la meilleure façon d'équilibrer les besoins de l'entreprise avec notre engagement Open Source. La nouvelle licence permet à la grande majorité des utilisateurs d'utiliser, de distribuer et de modifier librement le code CockroachDB (et après trois ans, il devient inconditionnel).

Quoi quoi: comment fonctionne BSL


Nous introduisons une nouvelle licence CockroachDB à partir de la version 19.2. Maintenant, le code ne peut pas être utilisé pour organiser une base de données commerciale en tant que service (DBaaS) sans conclure un accord approprié avec Cockroach Labs. Une limite de trois ans s'applique à chaque version.

Les compléments d'entreprise CockroachDB continueront d'être publiés sous la licence communautaire Cockroach (CCL). Travailler avec eux nécessite un accord de licence approprié avec Cockroach Labs; cette licence ne sera pas convertie en Open Source après trois ans.

Expliquons-nous avec un exemple précis. CockroachDB 19.2 (prévue pour octobre 2019) sera la première version à adhérer au nouveau système de licence. Il comprendra du code sous BSL et CCL. En octobre 2022 (trois ans après la sortie), la partie de CockroachDB 19.2, qui relève de la BSL, sera convertie en APL. Les correctifs ne changent pas la date de conversion: toutes les versions 19.2.x seront converties en octobre 2022, bien qu'à ce moment-là, seule la version de base 19.2.0 datant de trois ans sera exécutée pendant trois ans. CockroachDB 20.1 (prévu pour avril 2020) ouvrira ses portes en avril 2023, etc.



Les anciennes versions ne seront pas affectées: CockroachDB 19.1 continuera à fonctionner sous la licence Apache, et tous les futurs correctifs 19.1.x seront également publiés sous l'APL.

Nous sommes attachés aux idéaux de l'Open Source et nous nous efforçons de créer un produit open source puissant. Bien que formellement BSL ne soit pas une licence Open Source, ce compromis est le plus proche de l'esprit de l'Open Source, mais en même temps il protège notre entreprise. De plus, trois ans après la sortie, notre engagement envers la philosophie des logiciels open source est automatiquement réaffirmé. Nous pensons que la voie choisie nous permettra de soutenir l'entreprise, tout en préservant le riche patrimoine de l'Open Source dans cette nouvelle réalité.

PS du traducteur


Lisez aussi dans notre blog:

Source: https://habr.com/ru/post/fr456756/


All Articles