Amazon vs Elasticsearch y el fin del código abierto
Hace años que hablamos de los nuevos desafíos para el código abierto que plantea la nube, un término que para el usuario de a pie puede significar cosas diferentes, pero que para la empresa se resume en servicios. Y es que los beneficios económicos que genera el mero software de código abierto no son comparables a los que se obtienen cuando se ofrece ese mismo software a través de servicios, más allá -pero incluyendo- del soporte.
Este hecho diferencial lleva tiempo provocando fricciones entre desarrolladores y proveedores y hay quien adelanta incluso el fin del modelo de desarrollo del código abierto tal y como lo conocemos. ¿Quién tiene la razón? ¿Es para tanto la situación? Si has pulsado sobre el anterior enlace y has leído el artículo, ya atisbarás que el asunto es complejo, a pesar de que únicamente se recoge la voz de una parte: la de los desarrolladores.
En sus exposiciones, representantes de compañías y proyectos de código abierto muy populares en el ámbito empresarial, explican el supuesto perjuicio que les ocasiona el uso que los grandes proveedores de servicios en la nube hacen del software que ellos desarrollan, y cómo algunos han considerado y aplicado un enfoque más cerrado para sus productos con el fin de evitar lo que denominan como ‘expolio’. Hay declaraciones que merecer rescatar para dotar de contexto a la discusión:
«El papel que juega el código abierto en la creación de oportunidades comerciales ha cambiado. Lo diría de una manera muy contundente: durante muchos años fuimos unos tontos y les permitimos que tomaran lo que habíamos desarrollado y ganasen toneladas de dinero con ello«. Abby Kearns, directora ejecutiva de la Cloud Foundry Foundation.
«Amazon Web Services ha ganado cientos de millones de dólares ofreciendo Redis a sus clientes sin contribuir tanto a la comunidad de código abierto que construye y mantiene ese proyecto. Es imposible saber exactamente de cuánto dinero estamos hablando, pero es cierto que AWS y otros proveedores de la nube se benefician del trabajo de los desarrolladores de código abierto que no emplean«. Ofer Bengal, CEO de Redis Labs.
«Hay un mito ampliamente instalado en el mundo de código abierto que dice que los proyectos son impulsados por una comunidad de contribuyentes, pero en realidad, los desarrolladores pagados contribuyen con la mayor parte del código en la mayoría de los proyectos de código abierto modernos«. Luke Kanies, fundador de Puppet.
«El 99% por ciento de las contribuciones a Redis fueron hechas por nuestra empresa, Redis Labs«. Dev Ittycheria, CEO de MongoDB.
El código abierto y los servicios en la nube
En resumen, todas estas voces se quejan de dos cosas: los grandes beneficios que obtienen los proveedores de servicios en la nube con su software sin retribuirles en consecuencia, y la falta de colaboración manteniendo los productos con lo que se lucran. Sin embargo, no nos engañemos, el quid de la cuestión está principalmente en el dinero. La frase más lapidaria en este sentido fue la de Salil Deshpande, director gerente de Bain Capital Ventures e inversor de Redis Labs:
«Nuestra opinión es que el software de código abierto nunca fue pensado para que las empresas de servicios en la nube lo tomasen y lo vendieran«.
Todas estas declaraciones se remontan a 2018, aunque el trauma venía de antes. Pero fue entonces cuando varias de estas compañías se levantaron en pie de guerra, amenazando con cambios en sus licencias que pusiesen fin a la situación de abuso que denunciaban. La reflexión que hice en ese momento fue muy básica: «tengas la razón o no, que también está por ver, ¿cómo crees que reaccionará el gigante al que amenazas con cerrarle el grifo de un software de código abierto en el que basa su negocio?»
Por otro lado, «si es posible bifucar un proyecto libre que se cierra, ¿no hubiese sido mejor colaborar con él antes y haber evitado el cierre? Si no se invierte y se mantiene con salud aquello que da beneficios, puede terminar por desaparecer», concluía el artículo.
Ya en 2019, comenzaron a notarse los efectos de esta particular lucha y el mejor ejemplo para ilustrarlo es el de MongoDB, cuya nueva licencia fue rechazada de plano no solo por los principales proveedores de servicios en la nube: también por los grandes distribuidores de soluciones de software, léase Red Hat y otros. Por una sencilla razón: el código abierto tiene que cumplir ciertos requisitos para ser considerado como tal.
Ese mismo año, dos de los grandes proveedores tomaron posiciones: Google firmó un acuerdo de colaboración con siete compañías de código abierto entre las que se incluían Elastic, Redis Labs o MongoDB, con la intención de integrar su software en sus servicios, «derivando el soporte y repartiendo las ganancias, se entiende». Amazon, por su parte, se plantó ante lo que entendía como una suerte de chantaje, advirtiendo que «el código abierto debe permanecer abierto, porque de lo contrario pierde toda confianza».
No es la primera, ni seguramente sea la última vez, que el líder de los servicios de Internet reacciona así: lo hizo con Java un tiempo antes y tampoco está de más recordar el caso de Android, sistema que gobierna varios de sus dispositivos comerciales. Ateniéndose al código del Android Open Source Project y sin pasar por el aro de Google y los requisitos que impone a los fabricantes de dispositivos «certificados», Amazon ofrece «su propio» Android.
Amazon vs Elasticsearch no es David contra Goliat
Pero si hay una pugna reciente que sirve para dar algo de luz a este asunto, es la mantenida por Amazon y Elastic (Elasticsearch BV), desarrolladora del potente motor de búsqueda Elasticsearch, utilizado por multitud de grandes compañías como la misma Amazon. En colaboración con algunas de ellas, el gigante lanzó Open Distro for Elasticsearch, una bifurcación del original basada en el último código disponible con el compromiso de mantenerlo como proyecto abierto.
Las interpretaciones al respecto de esta iniciativa van de la medida disuasoria al seguro, en el supuesto de que Elastic materializase el cambio de licencia de Elasticsearch; pero ambas son complementarias, así que tanto monta. Todo se llevó adelante, además: Elasticsearch mudó de licencia y Amazon lo bifurcó definitivamente, dando lugar a una curiosa paradoja: a partir de ahora, Elasticsearch podrá nutrirse del código de la solución apadrinada por Amazon, pero no sucederá lo mismo al revés, ya que Elasticsearch ha dejado de ser de código abierto.
Visto así, podríamos cerrar el caso con un justicia divina: la «pequeña» desarrolladora de código abierto se ha quitado al vampiro de encima, podrá recuperar el esfuerzo dedicado del nuevo código que este genere y podrá también cobrar lo que estime oportuno a sus clientes, sean estos finales o intermediarios. Sin embargo, si advertía desde un principio que el asunto es más complejo de lo que parece, es porque es así.
Es así por varias razones: la primera y más obvia, es que Elastic se ha ‘salido con la suya’ a fuerza de abandonar el modelo de desarrollo que impulsó su negocio; la segunda, no tan obvia, es que si bien en comparación con Amazon Elastic es una compañía pequeña, conviene matizarlo: Elastic es una empresa que factura unos 500 millones de dólares anuales, pero cuyos ingresos no han dejado de aumentar en los últimos años y cuya valoración bursátil ronda los 10.000 millones de dólares.
Otro objeto de reflexión es la bifurcación de Elasticsearch dirigida por Amazon: ¿cómo es posible que una compañía que simplemente se aprovecha del trabajo ajeno haya podido montar una alternativa en tiempo récord, reforzado además con el compromiso de mantenerla abierta y en desarrollo activo? ¿Simplemente a base de soltar billetes y contratar desarrolladores? De ser así, ya podían haber invertido ese dinero en el proyecto original, por no mencionar que los desarrolladores con experiencia en Elasticsearch tampoco crecen en los árboles.
Lo cierto es que Amazon tiene un equipo de ingenieros con años de experiencia en Elasticsearch no solo afinando el producto para sus clientes, sino contribuyendo directamente con el desarrollo tanto de Elasticsearch como de Apache Lucene, el auténtico proyecto original del que deriva Elasticsearch…. y del que también podrá seguir nutriéndose, precisamente porque su licencia lo permite. Ergo, lo que prima en este conflicto es nada más y nada menos que el puro beneficio económico.
Vale la pena retomar ahora la frase esa de que «el software de código abierto nunca fue pensado para que las empresas de servicios en la nube lo tomasen y lo vendieran». ¿Para qué fue pensado el código abierto, entonces? No hay ninguna licencia de código abierto o software libre reconocida por la Free Software Foundation o la Open Source Initiative que prohíba hacer negocio con el software. Lo que prohíben es la discriminación en la capacidad y alcance de su uso en función de la parte, se trate de un individuo o de la mayor multinacional imaginable.
También cabría preguntase si habrían llegado a donde han llegado compañías y productos como Elastic y Elasticsearch, de haber elegido un modelo de desarrollo cerrado y no haber sido empleados de manera intrínseca en plataformas de servicios como AWS. O si lo habrían hecho de no existir previamente proyectos de código abierta como Apache Lucene y muchos otros en los que se apoyan y con los que no siempre contribuirán, porque no se puede contribuir con todo.
¿Cuál es la solución a un embrollo de tamaña envergadura? Lo único claro es que no es una cuestión de blancos y negros y las consideraciones son demasiadas como para seguir ahondando: empresas que cotizan en bolsa quieren más dinero de otras compañías -que también cotizan en bolsa y por mucho más-, que además del software ponen la infraestructura sobre la que distribuyen sus ofertas y que tienen la capacidad de clonar tu producto en un abrir y cerrar de ojos, no solo porque tienen el capital, sino porque tienen la experiencia necesaria tras contribuir técnica, pero también en muchos casos, económicamente, durante largo tiempo.
Pese a ello, esta situación está alterando el paradigma actual, en el que el modelo de desarrollo del código abierto se ha impuesto como impulsor de la innovación en el sector empresarial, y ya hay quien habla de que nos acercamos al fin, o al principio del fin de la Era del Open Source, cuya preponderancia estaría sentenciada por la revolución de la nube, a la postre el mayor estímulo que haya tenido el código abierto hasta la fecha.
El futuro, pues, pasaría por el Shared Source Software, bajo el cual diferentes compañías con intereses alineados colaborarían en el desarrollo de proyectos concretos, pero limitando su explotación comercial a sí mismas. Todavía no estamos ahí, no obstante, y no parece tampoco que el relevo se vaya a dar en breve. De suceder, será muy llamativo: la muerte del código abierto por un éxito mal entendido.