Warum ändert CockroachDB die Open Source-Lizenz?

Hinweis perev. : Die Flexibilität und Freiheiten, die Open Source-Lizenzen bieten, haben es modernen Anbietern großer SaaS-Lösungen ermöglicht, den Erfolg kleiner Unternehmen in Frage zu stellen, die hinter der Entwicklung beliebter Open Source-Projekte stehen. In diesem Artikel werden von den Autoren von CockroachDB - einem verteilten und fehlertoleranten RDBMS - die Essenz des Problems und die mögliche Art seiner Lösung vollständig offenbart.



CockroachDB wurde als Open Source Software konzipiert. In den Jahren seit dem Erscheinen des Projekts auf GitHub (der Code wurde erstmals im Februar 2014 veröffentlicht - ca. übersetzt ) folgten wir einem relativ typischen Entwicklungspfad, der zwischen der Philosophie von Open Source und der Schaffung eines tragfähigen Geschäfts balancierte. Der Hauptcode wurde unter der Apache License 2 (APL) lizenziert, ein verwalteter Dienst wurde gestartet und einige Add-Ons für Unternehmen wurden unter einer Unternehmenslizenz ausgestellt.

Unsere früheren Vorstellungen über das richtige Geschäftsmodell basierten jedoch auf der Schlüsselnorm der OSS-Welt: Sie können ein Geschäft um ein leistungsstarkes Open Source-Produkt herum aufbauen, ohne davon auszugehen, dass ein größeres Technologieunternehmen das gleiche Produkt als Service anbietet. Diese Norm ist nicht mehr gültig.

Grundsätzlich hat rechtlich nichts Wettbewerber jemals daran gehindert, ein von einem anderen Unternehmen entwickeltes OSS-Produkt als Service anzubieten. Und jetzt sehen wir, dass dies wirklich geschieht. Heute verzeichnen wir einen Anstieg der Anzahl hochintegrierter Anbieter, die ihre einzigartige Position nutzen und as-a-Service-Versionen von OSS-Produkten anbieten. Es ist klar, dass ihre hohe Integration die Benutzererfahrung erheblich verbessert. In jüngerer Zeit geschah dies mit der von Amazon „geliehenen“ Gabelung von ElasticSearch (Salil Deshpande beschrieb im TechCrunch-Artikel gekonnt, was als „eigennützig und rational“ geschah).

Als Reaktion auf diesen unlauteren Wettbewerb ändern wir die Bedingungen unserer Lizenz. Details finden Sie unten auf GitHub . Kurze Änderungen sind wie folgt:

Ab heute führen wir eine ausschließlich zulässige Version der Business Source License (BSL) ein. Benutzer von CockroachDB können unser DBMS auf eine beliebige Anzahl von Knoten skalieren. Es steht ihnen frei, CockroachDB zu verwenden und in ihre Anwendungen zu integrieren (unabhängig davon, ob sie sie an Verbraucher liefern oder als Service anbieten). Sie können CockroachDB auch als Service für die internen Ziele Ihres Unternehmens ausführen. Das einzige, was Sie nicht tun können, ist, die kommerzielle Version von CockroachDB als Service anzubieten, ohne die entsprechende Lizenz zu kaufen .

Um die weitere Entwicklung des Projekts sicherzustellen, ist unsere Einschränkung zeitlich begrenzt: Drei Jahre nach der Veröffentlichung wird die Lizenz zu einer Standardlizenz für Apache 2.0. Durch die Änderung der Lizenzbedingungen und die Einführung eines Zeitlimits haben wir zwei Ziele:

  • Erstellen Sie eine wettbewerbsfähige Datenbank als Service (DbaaS).
  • Stellen Sie dabei sicher, dass das Hauptprodukt vollständig geöffnet bleibt.

Vergleich verschiedener Open Source-Lizenzierungsansätze


Einige Unternehmen haben ihre Produkte bereits für einen ähnlichen doppelten Zweck lizenziert. Bei der Bewertung der vorhandenen Methoden stellten wir fest, dass alle zwei Hauptansätze verfolgen: Copyleft und ein Mehrebenenmodell. Leider entsprach keiner von ihnen dem, was wir durch eine Änderung der Lizenz erreichen möchten.

Copyleft-Modell


Der Begründer der Copyleft-Tradition ist die GNU GPL. Ziel ist es, das Auftreten von proprietären Gabeln zu verhindern, die in einigen Fällen die Freigabe des Quellcodes erfordern. Affero General Public License (AGPL) und Schwester Server-Side Public License (SSPL) fallen in dieses Lager. In SSPL wird dem Problem konkurrierender Dienste besondere Aufmerksamkeit gewidmet.

Wir glauben jedoch, dass alle diese Lizenzen sowohl redundant als auch unzureichend sind. Sie sind in dem Sinne redundant, dass die Details komplex sind und die Copyleft-Anforderungen nicht immer klar sind. Viele potenzielle Benutzer haben Angst vor möglicherweise zu weit gefassten Anforderungen an die Offenlegung von Code. Sie sind insofern unzureichend, als die Wettbewerber bereit sind und genug von ihrem Code preisgeben können, so dass sie keine Fragen haben und den Entwicklern der Kerntechnologie keinen Nutzen bringen. Amazon hat dies mit Open Distro for Elasticsearch getan, obwohl die Copyleft-Lizenz dies nicht erforderte.

Wir brauchten etwas Einfacheres und Starreres.

Schichtmodell


Wir haben auch die Möglichkeit in Betracht gezogen, ein dreistufiges Modell zu verwenden: den Open Source-Kernel, Unternehmenskomponenten und eine bestimmte mittlere Ebene mit Funktionen, deren Quellcode geschlossen ist, die jedoch völlig kostenlos verwendet werden können. Dieses Modell ist in der Software-Welt sehr beliebt. und mit einigen Variationen haben wir es bis heute benutzt.

Es generiert jedoch die falsche Nachricht für unser Unternehmen. Es stellt sich heraus, dass es für uns unrentabel ist, neue Funktionen in einem offenen Kern zu implementieren, und es ist sinnvoll, alle Anstrengungen auf geschlossene Komponenten zu konzentrieren. Tatsächlich sind wir versucht, das Vertrauen unserer Benutzer zu täuschen und die interessantesten Funktionen für eine Volumenlizenz zu verbergen. Auf lange Sicht ist dieser Ansatz kein gutes Zeichen für das Open Source-Ökosystem.

Lösung gefunden: BSL


Wir begannen, zeitlich begrenzte Lizenzen zu studieren und stellten fest, dass es nicht erforderlich war, eine neue Lizenz von Grund auf neu zu erstellen. Die Business Source License (BSL) Version 1.1 von MariaDB enthält alles, was Sie benötigen, und wurde bereits vom OSI-Gründer Bruce Perens genehmigt . BSL ist eine parametrisierte Lizenz, daher verwenden wir sie anders als MariaDB.

Der Hauptunterschied ist der Zuschuss für zusätzliche Nutzung. MariaDB ermöglicht beispielsweise die Verwendung von MaxScale auf bis zu drei Servern . Mit dem Zusatznutzungszuschuss bei CockroachDB können Sie unser Produkt auf einer beliebigen Anzahl von Knoten verwenden, sofern Sie es nicht als kommerzielles DbaaS anbieten. Unsere BSL-Version schützt drei Jahre lang vorhandenen CockroachDB-Code vor der Verwendung als DBaaS, ohne eine entsprechende Volumenlizenz zu erwerben. Nach 3 Jahren wird diese Einschränkung aufgehoben und der Code wird geöffnet (in dem Sinne, dass er in die Apache-Lizenz eingebettet ist) und kann für jeden Zweck frei verwendet werden.

Wir wenden diese Lizenz auf die Basisversion von CockroachDB an (dh auf den Code, der zuvor unter Apache 2.0 fiel). Dies bedeutet, dass der CockroachDB-Kern nicht mehr geöffnet ist (gemäß der Open Source-Definition von OSI), obwohl der vollständige Code noch verfügbar ist und jede kommerzielle Verwendung mit Ausnahme von DBaaS zulässig ist. Wir glauben, dass dies der beste Weg ist, um die Geschäftsanforderungen mit unserem Open Source-Engagement in Einklang zu bringen. Die neue Lizenz ermöglicht es der überwiegenden Mehrheit der Benutzer, den CockroachDB-Code frei zu verwenden, zu verteilen und zu ändern (und nach drei Jahren wird er bedingungslos geöffnet).

Was ist was? Wie funktioniert BSL?


Wir führen eine neue CockroachDB-Lizenz ab Version 19.2 ein. Jetzt kann der Code nicht mehr zum Organisieren einer kommerziellen Datenbank als Service (DBaaS) verwendet werden, ohne eine entsprechende Vereinbarung mit Cockroach Labs zu schließen. Für jede Veröffentlichung gilt eine Frist von drei Jahren.

CockroachDB Corporate Add-ons werden weiterhin unter der Cockroach Community License (CCL) veröffentlicht. Die Zusammenarbeit mit ihnen erfordert eine entsprechende Lizenzvereinbarung mit Cockroach Labs. Diese Lizenz wird nach drei Jahren nicht mehr in Open Source konvertiert.

Lassen Sie uns anhand eines konkreten Beispiels erklären. CockroachDB 19.2 (geplant für Oktober 2019) ist die erste Version, die das neue Lizenzierungsschema einhält. Es wird Code sowohl unter BSL als auch unter CCL enthalten. Im Oktober 2022 (drei Jahre nach der Veröffentlichung) wird der Teil von CockroachDB 19.2, der unter die BSL fällt, in APL konvertiert. Patches ändern das Konvertierungsdatum nicht: Alle 19.2.x-Versionen werden im Oktober 2022 konvertiert, obwohl zu diesem Zeitpunkt nur die drei Jahre alte Basisversion 19.2.0 drei Jahre lang ausgeführt wird. CockroachDB 20.1 (geplant für April 2020) wird im April 2023 eröffnet und so weiter.



Die alten Versionen sind davon nicht betroffen: CockroachDB 19.1 funktioniert weiterhin unter der Apache-Lizenz, und alle zukünftigen Patches 19.1.x werden auch unter der APL veröffentlicht.

Wir bekennen uns zu den Idealen von Open Source und bemühen uns, ein leistungsstarkes Open Source-Produkt zu entwickeln. Obwohl BSL formal keine Open Source-Lizenz ist, kommt dieser Kompromiss dem Geist von Open Source am nächsten, schützt aber gleichzeitig unser Geschäft. Darüber hinaus wird unser Engagement für die Open-Source-Software-Philosophie drei Jahre nach der Veröffentlichung automatisch bekräftigt. Wir glauben, dass der gewählte Weg es uns ermöglichen wird, das Unternehmen zu unterstützen und gleichzeitig das reiche Erbe von Open Source in dieser neuen Realität zu bewahren.

PS vom Übersetzer


Lesen Sie auch in unserem Blog:

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


All Articles