Translate

miércoles, 15 de febrero de 2012

Actualizando Alfresco

Muchas instalaciones de Alfresco de las que he visto son bastante estáticas, y quizás uno de los motivos principales es que si las cosas funcionan no se tocan. Otro de los motivos suele ser que hay desarrollos involucrados en la instalación que se deberian validar contra la nueva versión (aunque la experiencia me demuestra que desarrollos hechos para 2.0c han seguido funcionando en versiones 3.4d no está de más asegurarse).

Antes de nada nos deberemos plantear nuestros motivos para hacer actualizar Alfresco. ¿ Hay bugs en nuestra versión que queremos resolver ? (changelog de versiones 3.4.3 en adelante)  ¿ Queremos alguna funcionalidad nueva ? (release notes para community)

Una vez decidida la actualización es la hora de ver sobre que versiones deberemos pasar para llegar a la que queremos. Alfresco suele diferenciar entre versiones menores y mayores y siempre es recomendable pasar a la última versión menor antes de hacer un salto a una mayor aunque el diagrama para la versión 4.0 muestra actualizaciones directas desde 3.1 en adelante:
Una vez tenemos claro nuestro escenario conviene hacerse varias preguntas:
  • ¿ Mis logs estan libres de errores "desconocidos" ? Deberiamos ver que la instalación en funcionamiento no esta dando errores de forma continuada ya que la actualización puede agravar el problema si no lo tenemos controlado.
  • ¿ Tengo algún tipo de personalización que deberia probar? se incluyen modificaciones en apariencia, modelo de datos, desarrollos, ficheros AMP.
  • ¿ Deberia actualizar algún componente ? JDK, Servidor de aplicaciones, conector de base de datos... Intentaremos ir conforme el stack oficial para enterprise ya que son versiones testeadas. Tener muy en cuenta que desde las versiones Community 3.2 se dejó de soportar oficialmente Oracle y SQL Server aunque existen proyectos de la comunidad para darles el soporte.
  • ¿ Voy a disponer de una copia de mi instancia de Alfresco para realizar las copias ? El disponer de una copia con datos, aunque no estén actualizados nos puede ahorrar muchos dolores de cabeza y vueltas atrás en producción.
  • ¿ Mi usuario de base de datos tiene permisos para borrar y crear tablas ?
  • ¿ He tocado algo dentro del directorio de deploy ? Deberia mover toda mi configuración al directorio extension
  • ¿ Estoy en una versión 3.1 o anterior ? Deberé unificar toda mi configuración del fichero custom-repository.properties en el fichero alfresco-global.properties

Alfresco provee de un mecanismo sencillo de actualización que basicamente se centra un leer el nuevo war y parchear la base de datos a la nueva versión. Por este mismo mecanismo no se debe tocar nunca el contenido desplegado de Alfresco y se debe usar el directorio de extension que nos ayuda a tener toda la configuración centralizada en un directorio.

Lo ideal si tenemos tiempo y espacio sería tener una copia con datos y trabajar primero sobre esa ya que será el entorno más parecido al escenario final. Manos a la obra:

  1. Pararemos Alfresco y realizaremos una copia en frio (ver la entrada de Backup)
  2. Instalaremos la nueva versión de Alfresco en una nueva ubicación, con una base de datos límpia y con un nuevo repositorio (directorio alf_data). Yo suelo nombrar a las instalaciones segun la versión, por ejemplo teniendo la versión 3.3g en /opt/alfresco33g y la 4.0 en /opt/alfresco40, lo mismo aplica para las bases de datos
  3. Verificaremos que la instalación limpia funciona correctamente y la pararemos
  4. Revisaremos los ficheros de configuración anteriores y llevaremos la configuración a los de la nueva versión. No se deben reutilizar los ficheros porque pueden aparecer nuevos parámetros que quedarán sin configurar. Además también deberemos incluir en este punto todos los desarrollos y personalizaciones. Esta tarea se puede hacer de manera previa al proceso de actualización y así minizaremos el downtime. Si configuramos en este punto la base de datos db.url  y hibernate.default_schema (Oracle) y el repositorio de la versión anterior dir.root en el próximo reinicio se ejecutará la actualización. Si queremos hacer alguna prueba más dejar estos dos puntos para el final.
  5. Reiniciar alfresco y monitorizar el fichero log
Empezaremos a ver como Alfresco detecta la nueva versión y empieza a aplicar parches. Este proceso es bastante rápido, en mi portátil ha tardado menos de 3 minutos en arrancar (no he reindexado contenido). Tras la actualización el log muestra el siguiente mensaje indicando la versión original y la nueva.

2012-02-15 13:07:45,445 INFO [service.descriptor.DescriptorService] [main] Alfresco started (Community). Current version: 4.0.0 (4003) schema 5.025. Originally installed version: 3.3.0 (g 2860) schema 4.100.

Durante este proceso de actualización puede ser recomendable hacer una reindexación del repositorio estableciendo en alfresco-global.properties el parámetro

index.recovery.mode=FULL

NOTA: en este proceso se ha mantenido la indexación con lucene. Si queremos empezar a usar SOLR primero deberemos actualizar con lucene para que se ejecuten algunos scripts y una vez se haya actualizado se puede migrar a SOLR.

Información obtenida de:
http://wiki.alfresco.com/wiki/General_Upgrade_Process
http://docs.alfresco.com/4.0/index.jsp

viernes, 3 de febrero de 2012

Alfresco 4 ya está aquí

Aunque  la versión  Community 4.0c ya lleva un tiempo entre nosotros ayer se liberaron las versiones 4.0 EE y 4.0d.

Aunque podeis información en la página oficial de Alfresco y la comunidad de blogs sobre las nuevas funcionalidades de Alfresco me ha alegrado encontrar en un PDF referencias a como se compara con la versión 3.4 y que puede ser determinante para los usuarios de Alfresco que lo están usando ya que según Alfresco, en sus tests, gracias sobre todo al sistema de indexado con SOLR que permite separar el contenido de los indices han comprobado:

• 10x consultas más rapidas al  Dashboard  de Alfresco Share
• 3x más rapido en la subida de documentos (hasta 4x más rapido en cargas masivas)
• 25% más rapido cargando la Document Library
• 50% mas rápido cargando los detalles de un Documento
• Búsquedas e indexados significativamente mejorados.

Información obtenida de
http://alfresco.com/products/editions/enterprise/4-0/