El Stack Elastic / Stack ELK presenta en cada versión de todos sus productos (Elasticsearch, Kibana, Beats y Logstash), ya sea minor o major, nuevas y potentes funcionalidades. La actualización del Stack Elastic a la última versión te permite aprovechar estas mejoras y nuevas funciones. Sin embargo, las actualizaciones de software pueden ser una tarea desalentadora, especialmente cuando el software en cuestión da servicio a aplicaciones críticas. Pero, no tiene porque serlo. Únete a nuestro webinar para aprender cómo hacer que la actualización sin complicaciones, adoptando unos simples consejos.
3. Agenda
• Visión general del Stack Elastic
• Opciones para la actualización
• Cambios incompatibles
• Consideraciones de Infraestructura
◦ Salud del Cluster
◦ Ingesta
◦ Recuperación ante desastres (DR)
◦ Validaciones de arranque
• Optimizaciones
◦ Tamaño de los índices
◦ Modelado de los datos
5. Stack Elastic
Almacenamiento,
Búsqueda y Análisis
Elasticsearch
Visualización y gestión
Kibana
Ingesta
Beats Logstash
Metrics
Logging
APM
Site
Search
Application
Search
Business
Analytics
Enterprise
Search
Security
Analytics
Future Soluciones
6. Stack Elastic
Almacenamiento,
Búsqueda y Análisis
Elasticsearch
Visualización y gestión
Kibana
Ingesta
Beats Logstash
Metrics
Logging
APM
Site
Search
Application
Search
Business
Analytics
Enterprise
Search
Security
Analytics
Future Soluciones
SaaS
Elastic Cloud
Autogestionado
Elastic Cloud
Enterprise
Standalone
Despliegue
7. SaaS Autogestionado
Elastic Cloud Elastic Cloud
Enterprise
Standalone
Elastic
Site Search
Service
Elastic
App Search
Service
Elasticsearch
Service
8. Estrategia de Actualización
(x.y.z)
● In situ
○ Reinicio completo del cluster
○ Actualización gradual / rolling
● Paralelo
○ Snapshot y restauración
○ Reindexación remota
9. Actualización in situ
Reinicio completo del cluster
● Tiempo de inactividad / downtime
● Actualizacioón a versiones major
● Version anteriores a 5.x
● Reindexar si versión major creación de índice != version major cluster
elasticsearch a actualizar
10. ● Sin pérdida de servicio
● Actualización entre versiones minor
○ x.y → x.z
● Major version upgrades > 5.0
○ 5.6 → 6.x
○ Reindexar si versión major creación de índice != version major
cluster elasticsearch a actualizar
Actualización in situ
Actualización en rolling
11. ● Pérdida de servicio durante indexación
● Snapshots incrementales
● Reindexar si versión major creación de índice != version major cluster
elasticsearch a actualizar
Actualización en paralelo
Snapshot/Restauración
12. ● Método más seguro
● Sin pérdida de servicio
● Permite actualizar cualquier versión
● Se adapta muy bien a actualizaciones entre versiones major
● Necesaria estrategia para sincronizar las diferencias
● Simplifica marcha atrás
Actualización en paralelo
Reidexación remota
13. Cambios incompatibles
● Tipo único en los mapeos
● Cambios en los mapeos
○ _all deshabilitado por defecto
○ include_in_all deshabilitado
● Cliente Java High Level REST
● Ruta para el Heap Dump de la JVM
● Cambios en queries y scoring
● Soporte a scripting
○ Groovy, Javascript, Python eliminados → painless
○ Scripts en ficheros no soportados
● Requerimientos TLS
● Upgrade assistant >= v 6.6
14. Consideraciones de infraestructura
Salud del Cluster
● Alta carga de CPU?
● Uso de heap?
● Compatibilidad JVM?
● Espacio en disco?
● Queries lentas?
● Ingesta insuficiente?
● Problemas de
configuración?
Ingesta
● Múltiples fuentes de
ingesta?
● Puntos únicos de fallo?
● Balanceado?
● Mejores prácticas de
arquitectura?
15. Recuperación ante desastres
● Snapshot/Recuperación
○ Configurar repositorio
○ Plugins de repositorios
○ Probar recuperación
● Backup de los ficheros de
configuración
Validaciones de arranque
● Configuraciones de sistema
● Permisos de ficheros
● Configuración de red
● Gestión de la configuración
Consideraciones de infraestructura
16. Optimizaciones
Index Sizing
● Cuántos datos?
● Cuántos shards?
○ Tamaño óptimo
○ Réplicas?
● Curator / ILM?
Data Modeling
● Ingestar documentos de test
● Revisar mapeos de los campos
● Ajustar tipos?
● Añadir analizadores a medida?