Nota perev. : La flexibilidad y las libertades que ofrecen las licencias de código abierto han permitido a los proveedores modernos de grandes soluciones SaaS cuestionar el éxito de las pequeñas empresas que están detrás del desarrollo de proyectos populares de código abierto. En este artículo, de los autores de CockroachDB, un RDBMS distribuido y tolerante a fallas, se revela completamente la esencia del problema y la posible forma de resolverlo.
CockroachDB fue concebido como software de código abierto. En los años transcurridos desde que apareció el proyecto en GitHub
(el código se publicó por primera vez en febrero de 2014 - aprox. Transl. ) , Seguimos un camino de desarrollo relativamente típico, equilibrando la filosofía del código abierto y creando un negocio viable. El código principal fue licenciado bajo la Licencia Apache 2 (APL), se lanzó un servicio administrado y algunos complementos para empresas se emitieron bajo una licencia empresarial.
Pero nuestras ideas pasadas sobre el
modelo de negocio correcto se basaron en la norma clave del mundo de OSS: puede construir un negocio alrededor de un poderoso producto de Código Abierto sin suponer que una compañía de tecnología más grande vendrá ofreciendo el mismo producto como servicio. Esta norma ya no es válida.
En principio, legalmente, nada ha impedido a los competidores ofrecer un producto OSS como servicio creado por otra compañía. Y ahora vemos que esto realmente está sucediendo. Hoy estamos presenciando un aumento en el número de proveedores altamente integrados que aprovechan su posición única y ofrecen versiones como servicio de productos OSS. Está claro que su alta integración mejora en gran medida la experiencia del usuario. Más recientemente, esto sucedió con el tenedor de ElasticSearch, "prestado" por Amazon (Salil Deshpande en el
artículo de TechCrunch describió hábilmente lo que sucedió como "egoísta y racional").
En respuesta a tal competencia desleal, cambiamos los términos de nuestra licencia. Los detalles se proporcionan a continuación en
GitHub . Los cambios breves son los siguientes:
A partir de hoy, presentaremos una versión exclusivamente permisiva de la licencia de fuente comercial (BSL). Los usuarios de CockroachDB pueden escalar nuestro DBMS a cualquier número de nodos. Son libres de usar CockroachDB e integrarlo en sus aplicaciones (independientemente de si los entregan a los consumidores o los ofrecen como servicio). También puede ejecutar CockroachDB como un servicio para los objetivos internos de su empresa. Lo único que no puede hacer es ofrecer la versión comercial de CockroachDB como servicio sin comprar la licencia correspondiente .
Para garantizar un mayor desarrollo del proyecto, nuestra restricción tiene un límite de tiempo variable: tres años después del lanzamiento, la licencia se convierte en una licencia Apache 2.0 estándar. Al cambiar las condiciones de la licencia e introducir un límite de tiempo, tenemos dos objetivos:
- Crear una base de datos competitiva como servicio (DbaaS)
- En el camino, asegúrese de que el producto principal permanezca completamente abierto.
Comparación de diferentes enfoques de licencias de código abierto
Algunas compañías ya han licenciado sus productos para un doble propósito similar. Al evaluar los métodos existentes, descubrimos que todos tienden a dos enfoques principales: copyleft y un modelo multinivel. Desafortunadamente, ninguno de ellos correspondió a lo que nos gustaría lograr al cambiar la licencia.
Modelo Copyleft
El fundador de la tradición copyleft es la GNU GPL. Su propósito es evitar la aparición de bifurcaciones patentadas, que en algunos casos requieren la liberación del código fuente. La Licencia pública general Affero (AGPL) y la Licencia pública hermana del lado del servidor (SSPL) entran en este campo. Es en SSPL donde se presta especial atención al problema de los servicios competidores.
Sin embargo, creemos que todas estas licencias son redundantes e insuficientes. Son redundantes en el sentido de que los detalles son complejos y los requisitos de copyleft no siempre son claros. Muchos usuarios potenciales se asustan por los requisitos de divulgación de código que son potencialmente demasiado amplios. Son insuficientes en el sentido de que los competidores están listos y pueden revelar suficiente código para que no tengan ninguna pregunta, sin aportar ningún beneficio a los desarrolladores de la tecnología central. Amazon hizo esto con
Open Distro para Elasticsearch , aunque la licencia copyleft no lo requería.
Necesitábamos algo más simple y más rígido.
Modelo en capas
También consideramos la posibilidad de utilizar un modelo de tres niveles: el núcleo de código abierto, los componentes empresariales y un cierto nivel medio con funciones cuyo código fuente está cerrado, pero se pueden usar de forma totalmente gratuita. Este modelo es bastante popular en el mundo del software; y con algunas variaciones lo hemos usado hasta hoy.
Sin embargo, genera un mensaje incorrecto para nuestra empresa. Resulta que no es rentable para nosotros implementar nuevas funciones en un núcleo abierto y tiene sentido concentrar todos los esfuerzos en componentes cerrados. De hecho, estamos tentados a engañar la confianza de nuestros usuarios y ocultar las características más interesantes para una licencia por volumen. A la larga, este enfoque no es un buen augurio para el ecosistema de código abierto.
Solución encontrada: BSL
Comenzamos a estudiar licencias por tiempo limitado y descubrimos que no era necesario crear una nueva licencia desde cero. La versión 1.1 de la licencia de fuente comercial (BSL) de MariaDB contiene todo lo que necesita y ya ha
sido aprobada por el fundador de OSI, Bruce Perens. BSL es una licencia
parametrizada , por lo que la usamos de manera diferente a MariaDB.
La diferencia clave es la concesión de uso adicional; por ejemplo, MariaDB permite el uso de MaxScale
en hasta tres servidores .
Uso adicional Grant en CockroachDB le permite usar nuestro producto en cualquier número de nodos, siempre que no lo ofrezca como DbaaS comercial. Durante tres años, nuestra versión BSL protege el código CockroachDB existente para que no se use como DBaaS sin adquirir una licencia por volumen adecuada. Después de 3 años, esta restricción se elimina y el código se abre (en el sentido que está incrustado en la licencia de Apache) y se puede usar libremente para cualquier propósito.
Aplicamos esta licencia a la versión base de CockroachDB (es decir, al código que anteriormente pertenecía a Apache 2.0). Esto significa que el núcleo de CockroachDB ya no está abierto (según la
definición de código abierto de OSI), aunque el código completo aún está disponible y se permite cualquier uso comercial, excepto DBaaS. Creemos que esta es la mejor manera de equilibrar las necesidades comerciales con nuestro compromiso de código abierto. La nueva licencia permite a la gran mayoría de los usuarios usar, distribuir y modificar libremente el código CockroachDB (y después de tres años se abre de manera incondicional).
Qué es qué: cómo funciona BSL
Estamos presentando una nueva licencia de CockroachDB a partir de la versión 19.2. Ahora el código no se puede usar para organizar una base de datos comercial como servicio (DBaaS) sin celebrar un acuerdo apropiado con Cockroach Labs. Se aplica un límite de tres años a cada versión.
Los complementos corporativos de CockroachDB continuarán siendo lanzados bajo la licencia de la comunidad de Cockroach (CCL). Trabajar con ellos requiere un acuerdo de licencia apropiado con Cockroach Labs; Esta licencia no se convertirá a código abierto después de tres años.
Vamos a explicar con un ejemplo específico. CockroachDB 19.2 (programado para octubre de 2019) será el primer lanzamiento en adherirse al nuevo esquema de licencias. Incluirá código bajo BSL y CCL. En octubre de 2022 (tres años después del lanzamiento), la parte de CockroachDB 19.2, que se incluye en BSL, se convertirá en APL. Los parches no cambian la fecha de conversión: todas las versiones 19.2.x se convertirán en octubre de 2022, aunque en ese momento solo la versión base 19.2.0 de tres años se ejecutará durante tres años. CockroachDB 20.1 (programado para abril de 2020) se abrirá en abril de 2023, y así sucesivamente.

Las versiones anteriores no se verán afectadas: CockroachDB 19.1 continuará funcionando bajo la licencia de Apache, y todos los parches futuros 19.1.x también se lanzarán bajo la APL.
Estamos comprometidos con los ideales del Código Abierto y nos esforzamos por crear un producto poderoso de código abierto. Aunque formalmente BSL no es una licencia de código abierto, este compromiso es el más cercano al espíritu del código abierto, pero al mismo tiempo protege nuestro negocio. Además, tres años después del lanzamiento, nuestro compromiso con la filosofía del software de código abierto se reafirma automáticamente. Creemos que el camino elegido nos permitirá apoyar a la empresa, al tiempo que salvaguardamos el rico patrimonio de Open Source en esta nueva realidad.
PD del traductor
Lea también en nuestro blog: