Un cliente de Incentro con Alfresco en Google Cloud que maneja más de 50 millones de documentos, necesitaba mejoras en la búsqueda y el modelo de datos debido al incremento de uso. Te contamos cómo lo solucionamos.
En el mundo empresarial, la gestión eficiente de la documentación es crucial para el éxito. Un cliente de Incentro, con una instalación de Alfresco en Google Cloud, maneja actualmente más de 50 millones de documentos con un modelo de datos complejo. Con el incremento en el uso de Alfresco, surgieron nuevos requerimientos que demandaban mejoras en la funcionalidad de búsqueda y cambios en el modelo de datos.
En este artículo explico cómo abordamos estos desafíos mediante la implementación de sharding, logrando una reindexación eficiente y cumpliendo con las expectativas del cliente.
Contexto: Incremento en los requerimientos
El cliente necesitaba implementar varias funcionalidades críticas:
Búsqueda desde distintos idiomas
Indexación del contenido de los documentos
Activación de sugerencias de búsqueda
Rediseño del modelo de datos
Desafío de la reindexación
Para implementar estas funcionalidades y cambios en el modelo de datos, era necesario realizar una reindexación completa (full reindex), lo cual implicaba que, durante el proceso, las búsquedas arrojarían resultados inconsistentes.
Se llevaron a cabo pruebas en distintos entornos para estimar el tiempo necesario para un full reindex. Con la arquitectura implementada en ese momento, los resultados arrojaron tiempos inaceptables, que afectarían gravemente el funcionamiento del cliente, ya que el acceso a la documentación es un punto clave del negocio. Por lo que era obligatorio encontrar una solución más eficiente.
Investigación
Después de investigar varias arquitecturas, se optó por la implementación del sharding, dado que los resultados obtenidos en las pruebas fueron prometedores. El sharding implica dividir los índices en partes más pequeñas y manejables (shards), distribuyendo la carga de trabajo entre múltiples servidores o nodos. Esta arquitectura distribuida permite mejorar significativamente los tiempos de reindexación y la capacidad de manejo de grandes volúmenes de datos.
Fase de análisis
Como la ventana de mantenimiento era muy ajustada, debíamos asegurarnos de que la solución propuesta iba a ser capaz de realizar la reindexación dentro del tiempo que disponíamos. Para ello se configuró la arquitectura del sharding en distintos entornos de pruebas. Monitorizamos meticulosamente los tiempos del proceso de indexación con el sharding y, una vez que afinamos las configuraciones, estábamos listos para dar el salto a Producción.
Resultados y beneficios
La implementación del sharding fue un éxito, porque permitió reducir el tiempo de reindexación a más de un tercio del tiempo proyectado con la arquitectura anterior, lo que nos permitió cumplir con los KPI establecidos.
Esta arquitectura permite escalar más fácilmente para manejar futuros incrementos en el volumen de documentos y aporta mayor robustez y eficiencia a largo plazo. Dado que la mayor parte de clientes efectúan cargas masivas recurrentes, conseguir estabilidad y fiabilidad de un servicio clave como Solr es un grán éxito.
Un viejo conocido
Mediante el sharding, se consiguió atajar uno de los grandes problemas que todo usuario de Alfresco se ha encontrado durante la operación del servicio, el Solr.
Alfresco está orientado a organizaciones con la necesidad de gestionar grandes volúmenes de datos, por lo que la indexación de contenido es uno de los grandes quebraderos de cabeza de toda instalación. Gracias a la implementación del sharding hemos dado un salto cualitativo en la operación del servicio, ya que observamos que el sistema retorna las búsquedas con mayor velocidad.
Conclusión
Este caso de éxito de Incentro con la implementación de sharding en Alfresco en Google Cloud hace destacar la importancia de la innovación y la adaptabilidad en la gestión de grandes volúmenes de documentación. Al enfrentar desafíos significativos de reindexación, fuimos capaces de diseñar e implementar una solución eficiente que mejoró drásticamente los tiempos de procesamiento y la funcionalidad del sistema.
Este enfoque no solo cumplió con los requisitos del cliente, sino que también mejoró la estabilidad y escalabilidad del sistema, asegurando que Alfresco pueda manejar de manera eficiente las necesidades del cliente en el futuro.