Hablemos de REDIS

Chip, Hexa, Pro y Nexo recorren la historia de Redis desde que Salvatore Sanfilippo lo escribió en su baño hasta su uso en GitHub, Instagram y Twitter. En 2024, Redis cambió de licencia de código abierto a código disponible, lo que generó bifurcaciones como KeyDB y Dragonfly. El episodio examina la evolución comercial, los conflictos de marca y cómo elegir entre la versión comunitaria y las ofertas empresariales.
Chapters
¿Sabes cuál es uno de los principales problemas del software libre?
A ver, Chip, sorpréndeme.
Pues no pensar legalmente en la marca de producto que estás creando.
Salvatore Sanfilippo pensó principalmente en hacer algo útil y para la gente. Esto funcionó muy bien desde su lanzamiento en 2009.
¿Habláis del bueno de Antirez?
¿Quién?
Es el nombre de Salvatore en redes y sí, hoy vamos a hablar de Redis.
Redis. El Remote Dictionary Server, ese sistema hecho para ser veloz a niveles nunca vistos.
Un claro ejemplo de que utilizar los tipos de datos correctos con los algoritmos apropiados genera un óptimo resultado.
Pues no nos demoremos y comencemos por la historia de esta apasionante base de datos.
Tanto como base de datos yo no le pondría esa etiqueta.
Pero antes, un pequeño inciso.
¡Novedades!
Como todos sabéis, podéis haceros historiadores o cronistas del canal y disfrutar de contenido exclusivo, además de apoyarnos.
Totalmente, aunque eso no es ninguna novedad, pro.
La novedad es que a partir de ahora también tenemos Patreon.
Sí, eso sí que es una novedad. Aunque, ¿qué ventaja tendría ser historiador o cronista en Patreon?
Pues además de apoyarnos, el mismo contenido exclusivo se encuentra en Patreon sin publicidad.
Eso podemos decirlo aquí en YouTube.
Y no olvidéis que a través de la página web podéis seguir realizando vuestras votaciones de forma gratuita.
Y la forma óptima de darnos vuestro apoyo siempre es dar al like, suscribiros y compartir el vídeo con todos.
Sigamos con el vídeo. Los orígenes de Redis. Es curioso el origen de Redis. Tal y como Salvatore dice en su página web personal, principalmente fue escrito en el baño.
¿En el baño? ¿Os lleváis el portátil al baño para programar?
A veces—
creo que lo hace siempre—
hay que aprovechar el tiempo. No os quejéis, gracias a esos momentos Salvatore creó una de las piezas de código más usadas en muchas de las empresas actuales.
Es curioso que estas piezas tan valiosas de código siempre surgen como elementos sin importancia que hacen estos genios para facilitar un aspecto específico dentro de sus empresas y después resulta que se convierten en el producto principal. Al igual que pasó con Slack.
En verdad, ese es el problema que estaba señalando inicialmente. Salvatore no creó Redis como un producto en su startup. Lo creó para resolver un problema de escalabilidad y lo lanzó como software libre.
No es la mentalidad típica que uno espera encontrar en un empresario. Perdió una gran oportunidad de monetizar todo lo posible su trabajo. Pero en verdad, esa es la mentalidad de alguien que se crió en los 90 conectado a los nodos de noticias y foros compartiendo hallazgos, código e información.
Solo tenéis que echar un vistazo a sus creencias. Como dice al final de su página personal, es un humanista progresista con sensibilidad tecnológica y estética.
Pongamos un poco de contexto. A principios de este siglo, tras el desastre de las puntocom, Salvatore se vio sin trabajo a sus 23 años y con un hijo al que mantener.
Eso me suena al argumento de una película.
Este fue el inicio de verdad. Comenzó con PHP a hacer desarrollo para la Web 2.0 creando su empresa llamada Mercio.
¡Qué recuerdos de Valhalla!
¡Chicos! No hagáis tantas referencias y dejad que Pro termine de contar los orígenes.
Vale, pero es curioso que esta información no aparezca en Wikipedia.
Habría que actualizarla.
Continúo. El problema vino cuando consiguieron llamar la atención de Telecom Italia, un gran cliente, y esto permitió a su empresa crecer.
¡No me digas! ¿Uno de los problemas de Telecom Italia requería de algo de software fuera de lo común?
No, les pedían cosas típicas para desarrollo en PHP.
Entonces, ¿cuándo viene Redis?
Estaba con el preámbulo y contexto histórico. En este punto, con Mercia, Salvatore ya tenía una estabilidad, un trabajo tecnológico, y junto con su amigo y cofundador Fabio Pitriola decidieron centrarse en la analítica web para blogueros.
Información en tiempo real. Ahí huele que llegó Redis.
¡Loco! La herramienta de análisis se llamó así. Supongo que se pronuncia así. E intentaban hacerle la competencia a una aún temprana Google Analytics.
¡Ciertamente! Según Wikipedia, Google Analytics fue lanzada en 2005 y parece que esta herramienta fue lanzada tan solo 2 años después, en 2007.
De hecho, esta herramienta se lanzó con la capacidad de rastrear en tiempo real la actividad de los visitantes, característica que no se incluyó en Google Analytics hasta 2011.
Vale, entonces esta herramienta se lanzó usando Redis.
En principio intentaron utilizar MySQL, pero sobre todo en esas fechas MySQL era una base de datos más para lecturas que para escrituras. No funcionó bien.
El acceso a disco en los tiempos previos a la popularización del SSD no es algo óptimo que permita proporcionar una velocidad con un alto número de usuarios.
¡Exacto! Por ese motivo Salvatore pensó en la memoria. Quería un servidor pequeño con un uso exclusivo de memoria. Comandos básicos... El primer prototipo lo escribió usando el lenguaje TCL y no tuvo más de 300 líneas.
¡Totalmente! Eso es optimización.
Pero, ¿alguien programa en TCL?
Es un lenguaje muy popular en la administración de sistemas. Hay que tener presente que Salvatore tuvo sus primeros trabajos muy ligados a la seguridad informática y a la administración de sistemas, así que es normal pensar que TCL fuera su lengua madre en la programación.
Además, ha dicho prototipo. Sabemos que Redis está escrito actualmente en C.
Pero no nos adelantemos. El primer prototipo no se llamó Redis, sino LMDB, por Log Go Memory Database. Los comandos básicos permitían gestionar claves y había comandos también para listas.
Y no os perdáis esta curiosidad: el puerto en el que escucha Redis es 6379. Si miras un teléfono con letras en los números, verás que escribiendo MERD obtienes Inspirado en la vedette italiana Alessia Merz.
¿Eso quiere decir que Mercia también se inspira en esta vedette?
Probable. Bueno, una vez el prototipo demostró su valía y terminó llegando al límite de su capacidad, llegó el momento de reescribirlo a C. Redis.
Totalmente. Todo lo definitivo y óptimo se implementa siempre en C.
Al parecer, gran parte de su éxito se debe a la tracción obtenida en Hacker News por una publicación hecha por parte de David Welton.
Bueno, no hay que venirse muy arriba, la reacción de la gente se hizo esperar. Aparte de David, solo 4 personas más respondieron y 3 de ellos para decir que ya existían proyectos similares.
Me temo que eso no lo podemos considerar ni éxito ni tracción, En ese momento no, pero en ese mismo año y poco a poco los usuarios fueron llegando y Salvatore consideró el proyecto digno para dedicarle su tiempo, así que abandonó otros proyectos de software libre para centrarse en este.
¡Totalmente! En ese año llamó a su puerta Chris Wansrad, CEO de GitHub, que utilizaba Redis en sus desarrollos con Ruby on Rails en una cola de tareas llamada Resque, que más tarde en 2012 daría lugar a Sidekiq.
Ese gestor de tareas en cola sí que me suena. Seguramente fue una suerte que un gran actor en el desarrollo con Ruby on Rails se fijara en Redis. Los desarrolladores de Ruby on Rails suelen ser una piña. Si uno de los mayores usuarios decide usar algo, todos lo usan.
Exacto, ese fue el principio. En 2010 llegó otro gran actor muy conocido por todos: Instagram.
Y también ese mismo año llegó Twitter.
Terminamos antes diciendo que todos comenzaron a usarlo, ¿no?
VMware y Redis Labs. Tal fue así que en ese mismo año Salvatore recibió la llamada de VMware. La empresa enfocada en la virtualización de máquinas llamó a Salvatore y, como tenía una oficina en Italia, le ofrecieron un contrato.
Sí, el bueno de Salvatore no entendía qué iba a hacer él en VMware. Y cuando les preguntó, ellos respondieron: continúa con lo que estás haciendo y te pagamos.
Bueno, eso y mencionar en su página web que Redis estaba siendo patrocinado por VMware.
Totalmente. De hecho, estuvo muchos años con VMware hasta que Pivotal se separó de VMware. Y entonces Pivotal comenzó a patrocinar Redis.
Pero has mencionado en el título Redis Labs. ¿Esto es lo que comentaba antes? ¿La gente que llegó y se apropió de la marca Redis y montó una empresa de soporte y proporcionó Redis en la nube?
Hubo muchas empresas que ofrecían servicios para Redis, pero esta empresa de Tel Aviv que fue fundada como Garantía Data compró a otra empresa llamada MyRedis en 2013 y cambió su nombre por Redis Labs en 2014.
¡Mente de tiburón! Como Salvatore no registró la marca, podían hacer con ella lo que quisieran.
¡Pero hubo más! Un inversor de Pivotal y Redis Labs le dijo un día a Salvatore que qué hacía en Pivotal, que se fuese a Redis Labs que ahí estaba el centro de soporte de su producto.
Salvatore pasó a formar parte de Redis Labs en 2015, justo cuando lanzaron la versión Redis Enterprise, una versión mejorada con respecto a la versión de la comunidad.
Pero la versión de comunidad no se diferencia mucho de esta versión de empresa, ¿no? No Hexa? Hexa?
Me temo que Redis Labs hizo algunos movimientos algo feos. Es verdad que la versión de la comunidad es muy buena, pero para empresas grandes o grandes cargas de datos es una versión que queda pequeña muy rápido. La versión Enterprise tiene mejoras a nivel de concurrencia para soportar mucho más.
No solo eso. El último movimiento en 2021 de Redis Labs fue un cambio de nombre que hace aún más confuso diferenciar a la empresa del producto. Pasaron a ser simplemente Redis.
La época oscura.
No oscura oscura, a ver, espera que calcule. El 30 de junio de 2020 Salvatore publicó una entrada en su blog indicando que dejaba el desarrollo de Redis.
De hecho, quedó tan mal que el siguiente proyecto que hizo fue escribir un libro de ciencia ficción.
Hay casos peores, como quien se retira de la programación y se monta una granja.
¿Eso no era un mito?
El problema en 2024 fue un anuncio de Redis en el que cambió la licencia de uso de código abierto a un modelo de código disponible.
¡Duro golpe a los cimientos del proyecto! Cada vez que sucede en la industria del código libre este tipo de movimientos, surgen bifurcaciones del proyecto.
Totalmente. Los proyectos no se demoraron. Partiendo de la última versión del código abierto de Redis, la 7.2.4, surgió uno de los competidores más prometedores. Este se lanzó con el impulso de muchas empresas como Google, Alibaba, Amazon, Ericsson u Oracle, entre otros.
Aunque bifurcaciones de los proyectos de software libre siempre ha habido. De hecho, hubo en 2019 una versión de Redis llamada KeyDB que proporcionaba multi-hilo, algo que tan solo tiene la versión de empresa de Redis.
Totalmente. Esta es usada por Snapchat. Pero hay malas noticias porque su mantenedor principal, John Sully, ha dicho adiós.
Pero el proyecto sigue adelante.
El resto de Redis comerciales se pueden encontrar en servicios como ElastiCache de Amazon Web Services o Dragonfly, que es una reescritura de Redis en C++.
¡Oye! Esta, aunque no muy conocida, es usada por grandes como Spotify, Expedia o TikTok.
Pero tranquilos, después de la desbandada Redis decidió recular y utilizar a GPL versión 3.
Eso es salir de la sartén para caer en las brasas.
No lo creo, aunque la licencia 0 de GPL es muy temida por las empresas. Desde el punto de vista de software libre asegura que cualquier nueva bifurcación deberá ser software libre.
No termino de verlo, pero bueno. Conclusiones.
La conclusión es que Redis demostró ser un sistema de almacenamiento de datos en memoria muy eficiente y significó el cambio para una aplicación que hacía la competencia a un grande, ni más ni menos que Google Analytics.
Además, poco a poco y durante más de 10 años, Redis fue sumando cada vez más características. Hemos dicho que comenzó con claves y valores, siendo estos valores simples y listas, pero después fueron agregando a buen ritmo conjuntos, diccionarios hash, pilas, colas y todo sin olvidar siempre el uso de los mejores algoritmos medidos y controlados para ser optimizados.
Pero la gran pregunta que nos queda es: ¿debemos seguir usando Redis?
La versión de código abierto sigue siendo factible y ahora que es AGPL te garantiza la posibilidad de usarla sin límites.
Pero no es como la versión Enterprise. Si de repente montas un servicio que requiere de una gran cantidad de datos en escritura y lectura constante, vas a tener que pasar por caja o cambiar a alguna opción como Valkyrie.
Valkyrie es una gran opción y está creciendo a muy buen ritmo.
Vale, pues vamos sacando brillo a la caja de comentarios. ¿Conoces y usas Redis o ya cambiaste a algún competidor?
¿Contamos a Elasticache como Redis?
¡Déjanos tu comentario!
¿Qué tal fue la experiencia de hablar de Wolfenstein 3D y lo que supuso para id Software junto a Nexo y Chip?
Una experiencia curiosa, aunque me he quedado con ganas de hablar de los trucos usados en el código para que una aplicación que parece 3D se ejecutara en un 286 y un 386 sin siquiera coprocesador más.
Ya no digamos sin GPU. Quizás podamos tomar el código del repositorio y hacer algo. ¿Qué me dices?
Totalmente, totalmente. Continuará.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








