Si estás trabajando con elasticsearch muy posiblemente te hayas dado cuenta de que Elastic publica versiones nuevas con bastante frecuencia. Para tener un poco más de contexto, veamos lo que han hecho otros sistemas de bases de datos en el último año, fijándonos en sus versiones más recientes:
MES | Cassandra | Elastic | Oracle | MySQL | MSSQL | PostgreSQL |
2019-Nov | 7.5.0 | 2019 RTM | 12.1 | |||
2019-Dic | 7.5.1 | 8.0.19 | ||||
2020-Ene | 7.5.2 | 19.6.0.0 | 2019 CU1 | |||
2020-Feb | 3.11.6 | 7.6.0, 7.6.1 | 2019 CU2 | 12.2 | ||
2020-Mar | 7.6.2 | 8.0.20 | 2019 CU3 | |||
2020-Abr | 19.7.0.0 | 2019 CU4 | ||||
2020-May | 7.7.0, 7.7.1 | 12.3 | ||||
2020-Jun | 7.8.0 | 8.0.21 | 2019 CU5 | |||
2020-Jul | 3.11.7 | 7.8.1 | 19.8.0.0 | |||
2020-Ago | 3.11.8 | 7.9.0 | 2019 CU6 | 12.4 | ||
2020-Sep | 7.9.1, 7.9.2 | 8.0.22 | 2019 CU7 | 12.5, 13.0 | ||
2020-Oct | 7.9.3 | 2019 CU8 | ||||
2020-Nov | 3.11.9 | 7.10.0 | 19.9.0.0 | 13.1 | ||
TOTAL | 4 | 15 | 4 | 4 | 9 | 7 |
Elasticsearch destaca con 15 publicaciones, más de una al mes! SQL Server y PostgreSQL le siguen con 9 y 7 publicaciones respectivamente. El resto de bases de datos tienen una media de una por trimestre.
Versiones en Elasticsearch
Veamos con un ejemplo cómo se definen cada una de las partes de una versión en Elasticsearch:

Quizás hayas podido comprobar que a veces una actualización, dentro de la misma major version por ejemplo dentro de 6.X, ha podido traer problemas de incompatibilidad. Estos problemas pueden ocurrir entre los mismos componentes de la familia de productos elastic, ELK stack, o simplemente con la aplicación que usa elasticsearch. Algo que funcionaba antes, ha dejado de funcionar después de aplicar una actualización menor. El motivo más que probable, pudo haber sido un cambio de compatibilidad, un breaking change.
En general, en otras bases de datos, estas rupturas de compatibilidad suelen ocurrir con cambios mayores de versión. Es decir, en cierta manera podríamos considerar un minor upgrade de elasticsearch equiparable a una actualización mayor de otra base de datos.
Elastic compensa este posible efecto de los minor upgrades con su política de mantenimiento (que veremos un poco más adelante) y con una buena cantidad de documentación para ayudarnos en el proceso de actualización.
Los pasos generales que debes seguir cuando vayas a hacer una actualización en elastic:
Preparación
En general se deben seguir estos pasos como parte de la preparación de una migración de Elastic:
- Comprobar el registro de deprecación, deprecation log. Esto lo puede proveer un DBA.
- Revisar los cambios de compatibilidad, breaking changes, de cada una de las versiones desde la versión actual hasta la versión objetivo. Documentado en la página oficial de cada versión. Ej: 7.10.
- Buscar el código afectado en función de los dos puntos anteriores, y adaptarlo.
En ciertos casos puedes tener que hacer reindexado de indices creados en una versión anterior. Elastic acepta indices de la major version anterior, pero no dos versiones anteriores. Por ejemplo:
- Los indices de la versión 6.X son compatibles en 7.X, pero los de la versión 5.X no son.
- Los índices creados en la versión 7.X serán compatibles en la versión 8.X, pero los de la versión 6.X no lo serán.
Actualización
- Probar la actualización en un entorno local o de desarrollo.
- Hacer una copia de seguridad de los datos.
- Parar jobs de Machine Learning.
- Actualizar los componentes del ELK stack en este orden:
- Elasticsearch Hadoop
- Elasticsearch
- Kibana
- Logstash
- Beats
- APM Server
- Actualices los drivers de cada aplicación que se conecten a elastic (o sus componentes).
Política de mantenimiento
Recordemos los dos factores principales que hemos visto hasta ahora:
- Frecuencia de publicaciones de versiones menores en el último año: 15, siendo 6 de ellas minor upgrades.
- Cada minor upgrade tiene normalmente varios breaking changes, cambios de ruptura de compatibilidad.
Elastic reconoce en su Política de Mantenimiento que no todos los usuarios pueden mantener su ritmo de minor upgrades. Es por esto que Elastic también mantiene actualizada la rama de la minor version de su versión mayor anterior. Esto es con el ejemplo actual:
- Versión actual: 7.X (7.10.0 publicada el 5-Nov-2020)
- Versión anterior: 6.8.X (6.8.13 publicada el 15-Oct-2020)
Resumen
Con lo explicado hasta aquí, ya podrás sacar tus propias conclusiones y tener criterio a la hora de decidir en lo referente a actualizaciones de elastcisearch. Sin duda, para muchos usuarios, el momento de actualizar a 7.X llegará cuando se publique la versión 8.0.0. Si estáis en ese grupo…¡Avisados quedáis!
Espero que el artículo te haya servido de ayuda ¡Hasta la próxima!
Enlaces relacionados
- Elastic product end of life dates
- Support Matrix
- Upgrading the Elastic Stack
- Tabla elaborada en base a algunas de las bases de datos del Top-10 por popularidad. Fuente: db-engines.com