SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
¿Se puede vivir del
Open Source?
Javier Ramírez
@supercoco9
@j@chaos.social
Database Advocate
2
https://xkcd.com/2347/
3
https://blog.opencollective.com/frontend-masters/
Marc Grabanski,
desarrollador de JQuery UI date
picker.
4
https://twitter.com/phaidinyak/status/1754851060831633555
5
https://twitter.com/fxn/status/1540565108920827904
6
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4693148
Las empresas tendrían que
gastar 3.5 veces más de lo que
gastan en software si no hubiese
OSS.
Por un valor de $8.8 trillones
Algunas cosas
de las que quiero hablar
● Si el open source es gratis, ¿Es sólo un
hobby o se puede vivir de ello?
● Montas un proyecto open source, lo das
gratis, y luego viene una empresa
gigante y hace negocio vendiéndolo.
¿Cómo te quedas?
● ¿Qué hay detrás de los cambios de
licencia en proyectos como MongoDB,
Redis, Terraform, o Elastic?
● Posibles modelos de negocio si quieres
monetizar tu proyecto
¿Quién soy yo para hablar de esto?
● Usuario de open source, profesionalmente, desde ~1999 👴
● Co-organizador de grupos locales y eventos sobre el lenguaje Ruby 2006-2012 💎
● Speaker frecuente sobre proyectos open source, sobre todo en lo relacionado a datos, desde 2006 🗣
● El momento más tenso cuando entrevisté para AWS fue al preguntar sobre Open Source 🙊 (spoiler:
pasé la entrevista)
● En dos de mis empresas hemos hecho fork de otros proyectos por conflictos de intereses 👀
● Asistente habitual de FOSDEM, he sido speaker (x3) y organizador de una sala sobre datos rápidos🔥
● En 2023 OpenUK me metió en la lista “UK Top 100 influencers in Open Source”, pero me sacaron cuando
les dije que llevaba 4 años sin vivir en UK 💔
● Desde 2022 trabajo para QuestDB, una base de datos con licencia Apache 2.0 💰
● Mi usuario de github es ´javier´ 😂
9
¿Qué es eso de QuestDB?
Si sólo puedes usar una base
de datos para todo, elige
PostgreSQL*
* O cualquier otra base de datos relacional que te mole y esté bien soportada
Hay cosas para las que las RDBMS no están diseñadas
● Escribir más rápido de lo que lees (varios millones de inserciones al día, o más)
● Agregados con respecto a diferentes unidades de tiempo (por año/minuto/microsegundo)
● Identificar huecos o datos que faltan en un intervalo determinado
● Unir tablas por timestamp aproximado
● Tablas “sparse” (con cientos o miles de columnas)
● Agregados sobre billones de registros
● Servir como backend de dashboards en tiempo real
¿Qué es open source?. Lo que diga la
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author’s Source Code
5. No Discrimination Against Persons or Groups
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software
10. License Must Be Technology-Neutral
¿Y la ?
1. Use: Freedom to run the program as you wish, for any purpose
2. Study: Freedom to study how the program works, and change it as you wish
3. Share: Freedom to redistribute copies, so you can help others
4. Improve: Freedom to distribute copies of your modified version to others
We prefer the term “free software” because it refers to freedom—something that the
term “open source“ does not do.
OSS ~ FOSS ~ FLOSS
Categorías de software según la FSF
https://www.gnu.org/philosophy/categories.html.en
Por haber usado este gráfico, ahora
tengo que poner mi presentación
bajo la licencia Creative Commons
Attribution-ShareAlike 4.0
International
Eligiendo tu licencia
● Permisiva: Unlicense, MIT, BSD, Apache
● Copyleft: GPL, AGPL, LGPL, GPL with Classpath Exception, EPL, MPL
Si eliges una licencia copyleft, no puedes evitar que otras organizaciones
utilicen tu software o lo vendan, pero les obligas a que su software sea también
open source.
Posibilidad de licencia dual
● Una licencia copyleft (GPL, AGPL normalmente)
● Una licencia comercial
En este caso, solo el propietario del copyright puede ofrecer la licencia, lo que
implica que si aceptas contribuciones externas no podrás incorporarlas en la
licencia comercial, que es el motivo por el que muchos proyectos te piden
firmar un Contributor License Agreement.
20
Los CLAs pueden ser una
fuente de fricción
importante. Puedes
perder contribuciones
https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/
Modelos de monetización
● No monetizar (o no directamente)
● Mecenas/Patrocinadores
● Anuncios
● Donaciones/merchandising
● Cobrar por soporte, formación, certificación y servicios profesionales
● Licencia dual para enterprise
● Open Core/Commercial Open Source
● Software As A Service/managed cloud
● Cobrar por el empaquetado y los binarios
● Trademark y licenciar a partners
22
Algunos puntos de fricción
● Si tu proyecto se puede usar gratis, es difícil convencer para que te paguen
● Si hay varios contribuidores, ¿Quién cobra?
● Aunque quieras pagar a los voluntarios del proyecto, si ya tienen trabajos y hacen esto en su tiempo libre,
puede ser difícil convencerles para que cobren dinero. Puede que su contrato lo impida.
● Hay mecenas que querrán pagarte por desarrollar funcionalidades específicas, pero seguramente no para
mantenimiento o bugs generales
● Las donaciones suelen ser de desarrolladores individuales. Las empresas prefieren pagar contra factura. Es
difícil escalar con donaciones
● Si no estás establecido como empresa, puede ser complicado recibir dinero.
● Si te estableces como empresa, es posible que necesites mucho dinero para empezar, sobre todo si quieres
tener un equipo core.
● Si tienes un modelo Open Core y alguien de tu comunidad quiere contribuir al proyecto abierto una
funcionalidad que tú ofreces como propietaria, ¿Qué haces?
24
https://github.com/hoppscotch/hoppscotch/pull/3266
Por definición, cualquiera puede monetizar tu
software si tiene una licencia Open Source*
* Y es muy posible que ellos sí tengan dinero para contratar
equipo de desarrollo, marketing y ventas
26
El fundador de MariaDB y
MySQL anuncia la licencia
BSL, que para la mayoría
de gente se comporta
como OSS, pero introduce
restricciones para
algunos usuarios.
Las funcionalidades
cerradas acaban siendo
open source pasados
unos años.
https://timreview.ca/article/691
27
El core sigue siendo
Apache 2.0. Los plugins
pasan a ser “Source
Available”, pero no Open
Source
https://www.elastic.co/blog/doubling-down-on-open
28
Redis hace algo parecido,
con los plugins bajo la
Commons Clause
https://web.archive.org/web/20180821212957/https://redislabs.com/community/commons-clause/
29
Mientras tanto,
MongoDB anuncia su
licencia SSPL
https://www.mongodb.com/company/newsroom/press-releases/mongodb-issues-new-server-side-public-lice
nse-for-mongodb-community-server
30
Neo4j también se va a un
modelo Open Core,
comentando que los
proveedores de nube son
una amenaza
https://neo4j.com/open-core-and-neo4j/
31
Y lo mismo con Confluent y
parte de los componentes
alrededor de Kafka, aunque el
core de Kafka sigue teniendo
licencia Apache
https://www.confluent.io/blog/license-changes-confluent-platform/
32
A Elastic se les complica la
vida, porque una empresa de
la comunidad desarrolla
funcionalidades muy
parecidas y, según elastic,
inspiradas en el código
disponible, visible, pero no
abierto.
https://www.elastic.co/blog/dear-search-guard-users
33
Redis ve cómo la
comunidad le da la
espalda y amenazan con
un fork.
Nuevo cambio de licencia
y se van a la SSPL
https://redis.com/blog/redis-license-bsd-will-remain-bsd/
34
CockroachDB se pasa de
Apache 2.0 al modelo BSL,
en el que no se puede
competir vendiendo su DB
como servicio.
Pasados tres años el
código pasa a ser open
source bajo Apache 2.0.
Parece open source, pero
no lo es.
https://www.cockroachlabs.com/blog/oss-relicensing-cockroachdb/
35
No solo en
proyectos de
datos.
Software de
observabilidad
como Sentry
también cambió
de licencia en 2019
y 2023.
https://blog.sentry.io/introducing-the-functional-source-license-freedom-without-free-riding/
36
Y Elastic acaba
adaptando la SSPL
también
https://www.elastic.co/blog/licensing-change
37
Y AWS aprovechó para
sacar Open Search, un
fork de Elastic
https://aws.amazon.com/es/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/
38
A HashiCorp con
terraform ya le han salido
forks, semanas tras su
anuncio.
https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license
¿Cómo lo hacemos en
QuestDB?
Un poco de historia
● El proyecto empieza en 2014, con un solo desarrollador
● Conforme el desarrollador iba cambiando de empresa, se iba usando en
más sitios
● En 2020 se junta con otro co-founder y deciden que para que funcione hace
falta un equipo core de ingeniería, y para eso se necesita dinero.
Consiguieron entrar en YC y luego levantar una ronda de $12MM, con la que
contratar al equipo (yo entre ellos)
● Al principio solo teníamos ingresos por soporte ad-hoc, pero eso no escalaba
QuestDB OSS
Open Source. Apache 2.0. Self-managed.
Suitable for production workloads.
https://github.com/questdb/questdb
QuestDB Enterprise
Licensed. Self-managed. Enterprise features like
RBAC, compression, replication, TLS on all
protocols, cold storage, K8s operator…
https://questdb.io/enterprise/
QuestDB Cloud
Fully managed, pay per usage environment,
with enterprise-grade features.
https://questdb.io/cloud/
Cómo planeamos la sostenibilidad del proyecto
● Aunque el dinero nos llega de licencias enterprise y pago por uso en nube,
nuestra base de usuarios más grande es la de Open Source, que no pagan
pero son los que más contribuyen en código y conversaciones
● Es muy difícil convertir usuarios de OSS en usuarios de pago
● En principio no nos planteamos cambiar a licencias no OSI
● Notamos cierta tensión en qué funcionalidades son OSS y cuáles hacemos
propietarias. Intentamos hacerlo con cierto sentido común
● A día de hoy, somos ~20 personas en el core y no somos rentables
Cerrando
Que esta gente querrá irse a casa
● Se puede vivir del open source,
pero no es algo inmediato.
También se puede decidir
hacerlo de manera altruista.
● La licencia que elijas es crítica.
● Planea bien, y comunica, a tu
comunidad cuál es el modelo.
● Si no eres purista, hay formatos
muy parecidos al open source
que te dan un poco más de
protección con respecto a la
competencia, pero lo mismo te
permiten crecer menos de forma
orgánica
44
Q&A
● github.com/questdb/questdb
● https://questdb.io
● https://demo.questdb.io
● https://github.com/questdb/time-series-streaming-
analytics-template
● https://slack.questdb.io/
Javier Ramirez
@supercoco9
We 💕 contributions
and GitHub ⭐ stars

Más contenido relacionado

Similar a ¿Se puede vivir del open source? T3chfest

Introduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostIntroduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostKeopx
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Software libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasSoftware libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasIván Campaña Naranjo
 
Génesis mishell torres ordóñez
Génesis mishell torres ordóñezGénesis mishell torres ordóñez
Génesis mishell torres ordóñezMishell Torres
 
computacion
computacioncomputacion
computaciongiancals
 
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Rolando Carrasco
 
Diapositivas de tecnologia
Diapositivas de tecnologiaDiapositivas de tecnologia
Diapositivas de tecnologiaGonzalo Valdés
 
Diapositivas de tecnologia
Diapositivas de tecnologiaDiapositivas de tecnologia
Diapositivas de tecnologiaGonzalo Valdés
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y PythonCarlos Toxtli
 
Plataformas del comercio electronico
Plataformas del comercio electronicoPlataformas del comercio electronico
Plataformas del comercio electronicovickisitha
 
Desarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas LibresDesarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas LibresDiego Fernando Marin
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...campus party
 
05 plataformas cms e commerce
05 plataformas cms e commerce05 plataformas cms e commerce
05 plataformas cms e commerceEdwin Amigo
 

Similar a ¿Se puede vivir del open source? T3chfest (20)

Introduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostIntroduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghost
 
Introducción al software libre
Introducción al software libreIntroducción al software libre
Introducción al software libre
 
FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Software libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasSoftware libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresas
 
Génesis mishell torres ordóñez
Génesis mishell torres ordóñezGénesis mishell torres ordóñez
Génesis mishell torres ordóñez
 
computacion
computacioncomputacion
computacion
 
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
 
Red hat
Red hat Red hat
Red hat
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
OpenShift y PostgreSQL
OpenShift y PostgreSQLOpenShift y PostgreSQL
OpenShift y PostgreSQL
 
Bootcamp Javascript Online
Bootcamp Javascript OnlineBootcamp Javascript Online
Bootcamp Javascript Online
 
Diapositivas de tecnologia
Diapositivas de tecnologiaDiapositivas de tecnologia
Diapositivas de tecnologia
 
Diapositivas de tecnologia
Diapositivas de tecnologiaDiapositivas de tecnologia
Diapositivas de tecnologia
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Plataformas del comercio electronico
Plataformas del comercio electronicoPlataformas del comercio electronico
Plataformas del comercio electronico
 
Desarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas LibresDesarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas Libres
 
Oportunidades con FLOSS
Oportunidades con FLOSSOportunidades con FLOSS
Oportunidades con FLOSS
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
 
05 plataformas cms e commerce
05 plataformas cms e commerce05 plataformas cms e commerce
05 plataformas cms e commerce
 

Más de javier ramirez

QuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databaseQuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databasejavier ramirez
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...javier ramirez
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...javier ramirez
 
Deduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBDeduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBjavier ramirez
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)javier ramirez
 
Your Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic DatabaseYour Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic Databasejavier ramirez
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...javier ramirez
 
QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728javier ramirez
 
Processing and analysing streaming data with Python. Pycon Italy 2022
Processing and analysing streaming  data with Python. Pycon Italy 2022Processing and analysing streaming  data with Python. Pycon Italy 2022
Processing and analysing streaming data with Python. Pycon Italy 2022javier ramirez
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...javier ramirez
 
Servicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en AragónServicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en Aragónjavier ramirez
 
Primeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessPrimeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessjavier ramirez
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloudjavier ramirez
 
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMAnalitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMjavier ramirez
 
Getting started with streaming analytics
Getting started with streaming analyticsGetting started with streaming analytics
Getting started with streaming analyticsjavier ramirez
 
Getting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelineGetting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelinejavier ramirez
 
Getting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep DiveGetting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep Divejavier ramirez
 
Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)javier ramirez
 
Monitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSMonitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSjavier ramirez
 
Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...
Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...
Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...javier ramirez
 

Más de javier ramirez (20)

QuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databaseQuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series database
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
 
Deduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBDeduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDB
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)
 
Your Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic DatabaseYour Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic Database
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728
 
Processing and analysing streaming data with Python. Pycon Italy 2022
Processing and analysing streaming  data with Python. Pycon Italy 2022Processing and analysing streaming  data with Python. Pycon Italy 2022
Processing and analysing streaming data with Python. Pycon Italy 2022
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...
 
Servicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en AragónServicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en Aragón
 
Primeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessPrimeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverless
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloud
 
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMAnalitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
 
Getting started with streaming analytics
Getting started with streaming analyticsGetting started with streaming analytics
Getting started with streaming analytics
 
Getting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelineGetting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipeline
 
Getting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep DiveGetting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep Dive
 
Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)
 
Monitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSMonitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWS
 
Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...
Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...
Consulta cualquier fuente de datos usando SQL con Amazon Athena y sus consult...
 

¿Se puede vivir del open source? T3chfest

  • 1. ¿Se puede vivir del Open Source? Javier Ramírez @supercoco9 @j@chaos.social Database Advocate
  • 6. 6 https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4693148 Las empresas tendrían que gastar 3.5 veces más de lo que gastan en software si no hubiese OSS. Por un valor de $8.8 trillones
  • 7. Algunas cosas de las que quiero hablar ● Si el open source es gratis, ¿Es sólo un hobby o se puede vivir de ello? ● Montas un proyecto open source, lo das gratis, y luego viene una empresa gigante y hace negocio vendiéndolo. ¿Cómo te quedas? ● ¿Qué hay detrás de los cambios de licencia en proyectos como MongoDB, Redis, Terraform, o Elastic? ● Posibles modelos de negocio si quieres monetizar tu proyecto
  • 8. ¿Quién soy yo para hablar de esto? ● Usuario de open source, profesionalmente, desde ~1999 👴 ● Co-organizador de grupos locales y eventos sobre el lenguaje Ruby 2006-2012 💎 ● Speaker frecuente sobre proyectos open source, sobre todo en lo relacionado a datos, desde 2006 🗣 ● El momento más tenso cuando entrevisté para AWS fue al preguntar sobre Open Source 🙊 (spoiler: pasé la entrevista) ● En dos de mis empresas hemos hecho fork de otros proyectos por conflictos de intereses 👀 ● Asistente habitual de FOSDEM, he sido speaker (x3) y organizador de una sala sobre datos rápidos🔥 ● En 2023 OpenUK me metió en la lista “UK Top 100 influencers in Open Source”, pero me sacaron cuando les dije que llevaba 4 años sin vivir en UK 💔 ● Desde 2022 trabajo para QuestDB, una base de datos con licencia Apache 2.0 💰 ● Mi usuario de github es ´javier´ 😂
  • 9. 9
  • 10. ¿Qué es eso de QuestDB?
  • 11.
  • 12. Si sólo puedes usar una base de datos para todo, elige PostgreSQL* * O cualquier otra base de datos relacional que te mole y esté bien soportada
  • 13.
  • 14. Hay cosas para las que las RDBMS no están diseñadas ● Escribir más rápido de lo que lees (varios millones de inserciones al día, o más) ● Agregados con respecto a diferentes unidades de tiempo (por año/minuto/microsegundo) ● Identificar huecos o datos que faltan en un intervalo determinado ● Unir tablas por timestamp aproximado ● Tablas “sparse” (con cientos o miles de columnas) ● Agregados sobre billones de registros ● Servir como backend de dashboards en tiempo real
  • 15. ¿Qué es open source?. Lo que diga la 1. Free Redistribution 2. Source Code 3. Derived Works 4. Integrity of The Author’s Source Code 5. No Discrimination Against Persons or Groups 6. No Discrimination Against Fields of Endeavor 7. Distribution of License 8. License Must Not Be Specific to a Product 9. License Must Not Restrict Other Software 10. License Must Be Technology-Neutral
  • 16. ¿Y la ? 1. Use: Freedom to run the program as you wish, for any purpose 2. Study: Freedom to study how the program works, and change it as you wish 3. Share: Freedom to redistribute copies, so you can help others 4. Improve: Freedom to distribute copies of your modified version to others We prefer the term “free software” because it refers to freedom—something that the term “open source“ does not do. OSS ~ FOSS ~ FLOSS
  • 17. Categorías de software según la FSF https://www.gnu.org/philosophy/categories.html.en Por haber usado este gráfico, ahora tengo que poner mi presentación bajo la licencia Creative Commons Attribution-ShareAlike 4.0 International
  • 18. Eligiendo tu licencia ● Permisiva: Unlicense, MIT, BSD, Apache ● Copyleft: GPL, AGPL, LGPL, GPL with Classpath Exception, EPL, MPL Si eliges una licencia copyleft, no puedes evitar que otras organizaciones utilicen tu software o lo vendan, pero les obligas a que su software sea también open source.
  • 19. Posibilidad de licencia dual ● Una licencia copyleft (GPL, AGPL normalmente) ● Una licencia comercial En este caso, solo el propietario del copyright puede ofrecer la licencia, lo que implica que si aceptas contribuciones externas no podrás incorporarlas en la licencia comercial, que es el motivo por el que muchos proyectos te piden firmar un Contributor License Agreement.
  • 20. 20 Los CLAs pueden ser una fuente de fricción importante. Puedes perder contribuciones https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/
  • 21. Modelos de monetización ● No monetizar (o no directamente) ● Mecenas/Patrocinadores ● Anuncios ● Donaciones/merchandising ● Cobrar por soporte, formación, certificación y servicios profesionales ● Licencia dual para enterprise ● Open Core/Commercial Open Source ● Software As A Service/managed cloud ● Cobrar por el empaquetado y los binarios ● Trademark y licenciar a partners
  • 22. 22
  • 23. Algunos puntos de fricción ● Si tu proyecto se puede usar gratis, es difícil convencer para que te paguen ● Si hay varios contribuidores, ¿Quién cobra? ● Aunque quieras pagar a los voluntarios del proyecto, si ya tienen trabajos y hacen esto en su tiempo libre, puede ser difícil convencerles para que cobren dinero. Puede que su contrato lo impida. ● Hay mecenas que querrán pagarte por desarrollar funcionalidades específicas, pero seguramente no para mantenimiento o bugs generales ● Las donaciones suelen ser de desarrolladores individuales. Las empresas prefieren pagar contra factura. Es difícil escalar con donaciones ● Si no estás establecido como empresa, puede ser complicado recibir dinero. ● Si te estableces como empresa, es posible que necesites mucho dinero para empezar, sobre todo si quieres tener un equipo core. ● Si tienes un modelo Open Core y alguien de tu comunidad quiere contribuir al proyecto abierto una funcionalidad que tú ofreces como propietaria, ¿Qué haces?
  • 25. Por definición, cualquiera puede monetizar tu software si tiene una licencia Open Source* * Y es muy posible que ellos sí tengan dinero para contratar equipo de desarrollo, marketing y ventas
  • 26. 26 El fundador de MariaDB y MySQL anuncia la licencia BSL, que para la mayoría de gente se comporta como OSS, pero introduce restricciones para algunos usuarios. Las funcionalidades cerradas acaban siendo open source pasados unos años. https://timreview.ca/article/691
  • 27. 27 El core sigue siendo Apache 2.0. Los plugins pasan a ser “Source Available”, pero no Open Source https://www.elastic.co/blog/doubling-down-on-open
  • 28. 28 Redis hace algo parecido, con los plugins bajo la Commons Clause https://web.archive.org/web/20180821212957/https://redislabs.com/community/commons-clause/
  • 29. 29 Mientras tanto, MongoDB anuncia su licencia SSPL https://www.mongodb.com/company/newsroom/press-releases/mongodb-issues-new-server-side-public-lice nse-for-mongodb-community-server
  • 30. 30 Neo4j también se va a un modelo Open Core, comentando que los proveedores de nube son una amenaza https://neo4j.com/open-core-and-neo4j/
  • 31. 31 Y lo mismo con Confluent y parte de los componentes alrededor de Kafka, aunque el core de Kafka sigue teniendo licencia Apache https://www.confluent.io/blog/license-changes-confluent-platform/
  • 32. 32 A Elastic se les complica la vida, porque una empresa de la comunidad desarrolla funcionalidades muy parecidas y, según elastic, inspiradas en el código disponible, visible, pero no abierto. https://www.elastic.co/blog/dear-search-guard-users
  • 33. 33 Redis ve cómo la comunidad le da la espalda y amenazan con un fork. Nuevo cambio de licencia y se van a la SSPL https://redis.com/blog/redis-license-bsd-will-remain-bsd/
  • 34. 34 CockroachDB se pasa de Apache 2.0 al modelo BSL, en el que no se puede competir vendiendo su DB como servicio. Pasados tres años el código pasa a ser open source bajo Apache 2.0. Parece open source, pero no lo es. https://www.cockroachlabs.com/blog/oss-relicensing-cockroachdb/
  • 35. 35 No solo en proyectos de datos. Software de observabilidad como Sentry también cambió de licencia en 2019 y 2023. https://blog.sentry.io/introducing-the-functional-source-license-freedom-without-free-riding/
  • 36. 36 Y Elastic acaba adaptando la SSPL también https://www.elastic.co/blog/licensing-change
  • 37. 37 Y AWS aprovechó para sacar Open Search, un fork de Elastic https://aws.amazon.com/es/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/
  • 38. 38 A HashiCorp con terraform ya le han salido forks, semanas tras su anuncio. https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license
  • 39. ¿Cómo lo hacemos en QuestDB?
  • 40. Un poco de historia ● El proyecto empieza en 2014, con un solo desarrollador ● Conforme el desarrollador iba cambiando de empresa, se iba usando en más sitios ● En 2020 se junta con otro co-founder y deciden que para que funcione hace falta un equipo core de ingeniería, y para eso se necesita dinero. Consiguieron entrar en YC y luego levantar una ronda de $12MM, con la que contratar al equipo (yo entre ellos) ● Al principio solo teníamos ingresos por soporte ad-hoc, pero eso no escalaba
  • 41. QuestDB OSS Open Source. Apache 2.0. Self-managed. Suitable for production workloads. https://github.com/questdb/questdb QuestDB Enterprise Licensed. Self-managed. Enterprise features like RBAC, compression, replication, TLS on all protocols, cold storage, K8s operator… https://questdb.io/enterprise/ QuestDB Cloud Fully managed, pay per usage environment, with enterprise-grade features. https://questdb.io/cloud/
  • 42. Cómo planeamos la sostenibilidad del proyecto ● Aunque el dinero nos llega de licencias enterprise y pago por uso en nube, nuestra base de usuarios más grande es la de Open Source, que no pagan pero son los que más contribuyen en código y conversaciones ● Es muy difícil convertir usuarios de OSS en usuarios de pago ● En principio no nos planteamos cambiar a licencias no OSI ● Notamos cierta tensión en qué funcionalidades son OSS y cuáles hacemos propietarias. Intentamos hacerlo con cierto sentido común ● A día de hoy, somos ~20 personas en el core y no somos rentables
  • 43. Cerrando Que esta gente querrá irse a casa ● Se puede vivir del open source, pero no es algo inmediato. También se puede decidir hacerlo de manera altruista. ● La licencia que elijas es crítica. ● Planea bien, y comunica, a tu comunidad cuál es el modelo. ● Si no eres purista, hay formatos muy parecidos al open source que te dan un poco más de protección con respecto a la competencia, pero lo mismo te permiten crecer menos de forma orgánica
  • 44. 44 Q&A ● github.com/questdb/questdb ● https://questdb.io ● https://demo.questdb.io ● https://github.com/questdb/time-series-streaming- analytics-template ● https://slack.questdb.io/ Javier Ramirez @supercoco9 We 💕 contributions and GitHub ⭐ stars