Aunque este blog lleva años sin actualizarse, Iedra ha seguido recibiendo pequeñas mejoras con los años: nuevos diccionarios como el de Manuel Seco, correcciones y ajustes varios. Pero la infraestructura técnica que lo sostenía lleva muchísimo tiempo peligrosamente anticuada, así que ha llegado el momento de hacer esa tarea ingrata pero inevitable: renovar los cimientos antes de que todo se derrumbe.
Con el trabajo de actualización ya hecho, me apetecía celebrarlo de alguna forma. Así se me ocurrió hacer este año un adviento de Iedra: durante diciembre iré presentando cada día alguna pequeña novedad.
1 de diciembre: nuevo stack técnico
La primera novedad es, paradójicamente, invisible para la mayoría de usuarios: la renovación de la infraestructura técnica.
Por qué esto importa
Iedra llevaba funcionando desde 2012 con un stack tecnológico que se había quedado muy atrás. El servidor corría sobre Ubuntu 12.04.5, una versión que dejó de recibir actualizaciones de seguridad hace años. Las librerías de Python y JavaScript que usaba estaban obsoletas, algunas sin mantenimiento activo, y con vulnerabilidades de seguridad conocidas.
Esta deuda técnica tenía consecuencias prácticas: era difícil añadir funcionalidades nuevas sin romper algo, y cada vez que me planteaba una mejora, el esfuerzo de mantener el sistema funcionando superaba al de implementar la mejora en sí.
Qué ha cambiado
He reconstruido Iedra desde los cimientos. Lo más visible:
- Adiós a jQuery: He eliminado jQuery y jQuery UI completamente. El JavaScript de Iedra ahora es vanilla JS, sin dependencias externas. Menos código que cargar, menos cosas que pueden fallar.
- Sistema operativo actualizado: De Ubuntu 12.04 (sin soporte desde 2017) a un sistema moderno con parches de seguridad al día.
Lo menos visible pero igual de importante:
- Motor de búsqueda: De Solr 4 + MongoDB a Elasticsearch 9.1. Búsquedas más rápidas y un sistema de indexación mucho más sencillo de mantener.
- Python y Flask: De Python 2.7 y Flask 1.0 a Python 3.14 y Flask 3.0. El salto de Python 2 a 3 era inevitable; el ecosistema de Python 2 está esencialmente muerto.
- Infraestructura como código: Docker y Docker Compose para despliegues reproducibles. Ya no hay que recordar qué comandos ejecutar en qué orden.
- Redis: Nueva capa de caché con Redis Stack para operaciones que requieren respuestas instantáneas.
El resultado es un sistema más fácil de mantener y, sobre todo, de extender. Las próximas novedades que vaya publicando durante este adviento serán posibles precisamente gracias a estos cimientos.
Si encuentras algún problema o algo que funcionaba antes y ahora no, escríbeme. Con una migración de esta envergadura siempre hay detalles que se escapan.
❦