Os dejo aquí algunos consejos a la hora de implantar Alfresco antes
de cogerme unos días de vacaciones.
- Utiliza siempre un
Stack certificado de Alfresco Enterprise (o
la plataforma soportada más cercana). Si puedes o tienes que
elegirlo, a pesar de la multitud de opciones que tienes en una
arquitectura java, elige aquel que está más probado y testado por la
comunidad (en el caso de Alfresco Community) o el más utilizado en
proyectos y entornos productivos (en el caso de Alfresco Enterprise
consulta con tu partner). Personalmente prefiero trabajar en
Alfresco con Tomcat que con Jboss, con la JVM de Sun antes que con
la de IBM, o con Mysql o Oracle, en vez de DB2 o SQL Server. En la
elección del stack intervienen muchos factores como el coste de
licencias, infraestructura existente o el equipo de soporte. Existen
entornos gubernamentales y de empresa en que el stack completo debe
estar licenciado, en alta disponibilidad de cada una de sus partes y
con soporte de la matriz. En otros la premisa será ajustar al máximo
el presupuesto o ajustarse a lo que ya tienen en la casa.
- Formate en los cursos oficiales de Alfresco, sácate
una certificación como la ACA o consúltanos
para ofrecerte un curso adhoc sobre Alfresco. Lee la documentación de Alfresco, la wiki, y blogs
como este.
No olvides la guía
de configuración del dia zero. No se trata simplemente de
instalar una aplicación java. Las decisiones incorrectas en la
arquitectura en el inicio de un proyecto de gestión documental
suelen implicar muchas desviaciones en costes y en tiempos de los
proyectos sucesivos. Por eso es importante, que el personal que
diseñe la arquitectura y la implemente tengan experiencia en
implantaciones y proyectos de gestión documental (y estén
involucrados durante la vida del mismo).
- Revisa tu implantación con un test
de validación EVT para obtener información de la instalación,
recursos de hardware, sistema operativo, JVM, base de datos,
software de terceros. Este test te dará unas pautas básicas sobre la
instancia. En este artículo de Toni te cuenta algo más.
- Plantea una solución de disco escalable y adecuada para tu entorno
de Alfresco. En primera aproximación plantea soluciones de disco
basadas en SAN, descartando soluciones NAS, y con un acceso rápido
de lectura/escritura en disco a través de protocolos como CIFS o
NFS. En ciertos entornos de alta disponibilidad, puedes necesitar
además de un cluster de filesystem OCFS, GFS o incluso GlusterFS.
- En la implantación de una infraestructura de cluster, ten en
cuenta que una cosa es un cluster del repositorio de Alfresco, y
otra cosa muy distinta un cluster de Alfresco Share.
- Define claramente los casos de uso de tu repositorio, por ejemplo,
Alfresco como intranet colaborativa, sistemas de unidad compartida,
repositorio
de documentos para aplicaciones, repositorio de imágenes y
vídeos. No habilites todas las capacidades, canales de entrada y
servicios de Alfresco en el minuto uno si no los vas a utilizar, por
ejemplo el auditado o los sistema de cuota de usuario. Esto hará que
tu sistema tenga un mejor rendimiento y mejor parametrización con
respecto al servicio que tiene que dar.
- Centraliza la configuración de Alfresco en el directorio de
extensiones de manera que en ningún caso se hagan modificaciones por
debajo de WEB-INF. Intenta centralizar la configuración en el
alfresco-global.properties y utiliza
la consola JMX para reiniciar los subsistemas de Alfresco, o
para lanzar ciertas tareas programadas o trabajos típicos del
administrador de Alfresco. Edita los valores de las propiedades de
Alfresco via JMX sólo cuando sea estrictamente necesario. Para saber
qué es parametrizable y configurable en Alfresco out of the box,
bucea por los archivos de properties por debajo de WEB-INF o bien a
partir de un dump JMX.
- Configura un frontal que haga de proxy java y balanceo a las
peticiones de Alfresco. Cuando puedas separa las instancias de Share
y del repositorio, tanto en desarrollo como en producción. Separarás
las capas (aplicación y repositorio) y mejorarás seguramente el
rendimiento sobre todo si los recursos del repositorio son escasos.
Lo mismo con respecto a SOLR (aunque esto pueda tener costes de licencia).
- A la hora de programar utiliza las APIs, estrategias y
arquitecturas más alineadas con el producto, como CMIS o REST / Webscripts.
- Utiliza un sistema de control de versiones como subversion, para
guardar el código de tus desarrollos y la configuración de tus
instancias, y un gestor de despliegues como Jenkins para desplegar
componentes de Alfresco en múltiples entornos de manera sistemática.
Si vas a utilizar módulos de
Alfresco, utiliza los más testados y conocidos posibles.
- Parametriza y dimensiona bien los recursos
JVM que le das a tus instancias.
Ha quedado un poco ladrillo pero espero que os sirva un poco en
vuestras nuevos proyectos con Alfresco.
–C.