Multitenancy en Alfresco

multitenant_small2Desde hace unas cuantas versiones, Alfresco incorpora la característica “Multi-Tenant”, podemos traducirlo como “Multi-Inquilino”, ¿y que significa eso? Alfresco permite que varios inquilinos independientes (Alfrescos independientes) puedan ser alojados en una única instancia, es decir, tenemos un Alfresco con un repositorio y que lo va a usar una organización, pues si activamos el MT, tendremos un Alfresco, que se “virtualiza” a si mismo y dispone de repositorios físicos independientes con un mismo punto de entrada y a través del nombre de usuario, el sistema sabrá de que Tenant se trata.

Vamos a ver esto en el mundo real, así saldremos de dudas. Antes de seguir, recuerda que está todo documentado en la Wiki de Alfresco, en la sección MultiTenant. En este caso veremos como trabajar con MT en Alfresco Enterprise 3.2 pero aplicable a otras versiones.

Primero vamos a ver como se activa MT:

Vamos al directorio mt dentro de <extension>:

# cd $INSTALACION_DEL_TOMCAT/shared/classes/alfresco/extension/mt

Renombramos los tres archivos .sample que encontramos (son 3), no hay que modificar nada dentro de ellos, por defecto funciona correctamente, los podemos renombrar de uno en uno o todos a la vez con este comando:

# for i in *.sample; do mv "$i" "`basename $i .sample`"; done

Hecho esto, reiniciamos Alfresco y en los logs deberemos ver algo nuevo relacionado con el cambio que hemos hecho:

18:21:42,680 User:System INFO  [repo.tenant.MultiTAdminServiceImpl] Alfresco Multi-Tenant startup 
- 0 enabled tenants, 0 disabled tenants
18:21:58,027  INFO  [service.descriptor.DescriptorService] Alfresco started 
(Enterprise - Multi-Tenant): Current version 3.2.0 (304) schema 3400 - Originally installed 
version 3.2.0 (304) schema 3400

OK, ahora vamos a ver si es verdad. Lo primero que debemos hacer es autenticarnos en Alfresco Explorer como administrador, en http://localhost:8080/alfresco admin/admin y listo.

Ahora ponemos la siguiente URL para acceder a la consola de administración de MT:

http://localhost:8080/alfresco/faces/jsp/admin/tenantadmin-console.jsp

consola-mt

En esa misma web podemos ver toda la ayuda que nos brinda la consola para ver, crear, borrar, habilitar, deshabilitar, cambiar contraseña, exportar e importar Tenants.

Vamos a ver unos ejemplos de cómo crear un tenant y empezar a trabajar con él.

Escribimos en la linea de comandos:

create blyx.com password /opt/alfresco-enterprise-3.2.0/alf_data_blyx

Esto tardará unos segundos, en función de lo rápida que sea nuestra máquina. Cuando veamos el mensaje

created tenant: blyx.com” se habrá creado el nuevo tenant… explicación redundante 😉

¿Y realmente que hace ese comando que hemos lanzado? Crea un tenant vacío y activo. Tendrá como administrador del mismo (para crear usuarios, grupos, etc.) un usuario llamado admin@<tenantdomain> en mi caso, [email protected], con la contraseña “password”. Todos los usuarios que accedan a ese tenant lo deberán hacer usando “[email protected]“. El repositorio físico (contentstore) estará en el directorio indicado en el comando.

Ahora podemos acceder a nuestro Tenant como admin y ver que realmente tenemos un repositorio totalmente vacío y disponible. Accediendo a nuestro sistema http://localhost:8080/alfresco con las credenciales de administrador del tenant correspondiente.

acceso-al-tenant

¿Qué puede hacer el administrador del tenant?

  • Gestionar los usuarios del sistema  (incluyendo cuotas).
  • Gestionar grupos.
  • Gestionar categorías.
  • Importar.
  • Exportar (incluyendo el repositorio completo del tenant).
  • Acceso a la información del sistema (System Information en la consola de administración).
  • Acceso al Node Browser (consola de administración).
  • Alfresco Share también como tenant.
  • Acceso Webdav.
  • Acceso FTP.
  • WebScripts propios, para ello deben requerir autenticación para conocer de que tenant se trata.
  • Personalización de modelos, webclient, workflows y demás a través de los Modelos Dinámicos y de la consola de repositorio.
  • Acceso del usuario invitado (guest) en el contexto del tenant, es decir, como guest@dominio.
  • Soporta clustering de forma nativa.
  • Los módulos AMP instalados en el dominio por defecto estarán disponibles para los demás tenants.

¿Qué no podemos hacer aún con los tenants o qué no está soportado? Info extraida de la wiki y basado en la versión 3.2.

  • El soporte a CIFS no está soportado actualmente.
  • La autenticación sólo puede ser la nativa de Alfresco, por ahora no soporta autenticación externa (LDAP, NTLM, etc).
  • WCM / Web Studio no soportado.
  • Portlets.
  • Borrar un tenant.
  • Correo electrónico entrante.
  • Replicación del repositorio.
  • IMAP.
  • SPP / VTI (SharePoint Protocol).

Como veis, es una solución orientada a los servicios, a la nube. Espero que os sea de utilidad, por lo menos para saber de que va esto del Multitenant del que tanto se oye hablar.

10 thoughts to “Multitenancy en Alfresco”

  1. Buen review, Toni.

    Lo que no termino de entender de las capacidades multitenancy de Alfresco es que no soporten LDAP o NTML. Dices que esta orientada a la nube, pero hasta llegar a las limitaciones marcadas en la wiki diría que puede ser una solución de almacenes distribuidos (montados en red) en una organización multi-departamental, que por otro lado es una solución que no existe en Alfresco (creo). Sabes como se abordaría ese problema? Conoces CASTOR o alguna otra solución para esto?

    Por otro lado, hay un comentario curioso en la wiki porque mencionan que esas capacidades no están soportadas/testadas/implementadas y claro no es lo mismo uno que lo otro.

    Un saludo.

    –C.

  2. Si, yo tampoco lo entiendo 😉 supongo que no será fácil de implementar, de cualquier forma no tiene mucho sentido. Lo que está claro es que aunque aún está verde apunta maneras…

    En cuanto al repositorio distribuido como tal no existe en Alfresco y mira que hay gente que lo pide, está en el roadmap pero no sé cuando será una realidad.

    Desde mi punto de vista CASTOR está más orientado a hacer cluster geográficos del repositorio y también para el archiving del contenido en discos más baratos (algo así como el HSM de Zimbra).

    Gracias por los comentarios!

  3. Hola Toni.

    Muy interesante esta entrada y a pesar del tiempo que hace que la publiscastes, ¿siguen existiendo los mismos “problemas/inconvenientes/no soportado” en las versiones actuales (3.4.1 y 3.4.a)?.

    Un saludo.

  4. Parece ser que sí, que siguen existiendo las mismas funciones no soportadas, según la wiki.

    Not Implemented

    The following are not supported/implemented/tested in a multi-tenant enterprise environment.

    * CIFS
    * WCM
    * RM
    * Portlets
    * Delete Tenant (partial – pending ALF-4600)
    * LDAP, NTLM and authentication methods other than “alfresco”
    * Inbound Email
    * Content Replication
    * IMAP
    * SPP / VTI (SharePoint Protocol)
    * reloadable Share config (if using dynamic models)

    If you’re interested in any of these features, please let us know the details and comment/vote for the related JIRAs

  5. HOla Toni disculpa que reviva tema algo viejo pero si quiero eliminar el multi tenancy y volver a “single tenant” como dicen, que debo hacer ? es decir ya se como se migra un alfresco normal, pero si lo que quiero es migrar un tenant a un repositorio dedicado de Alfresco, es posible de la manera simple que se hacia antes ? o toca hacer el export del tenant o como seria en ese caso ?
    Es que el repositorio esta en produccion y tengo miedo a perder toda la informacion de nuestro cliente o dejarlos sin servicio por hacer este paso.

  6. Hola Francisco, al exportar un tenant lo que generas son varios ficheros ACP, supongo que podrás importarlos en Alfresco directamente (sin tenants), pero no lo he probado. Si es un sistema en producción y tiene muchos contenidos ten en cuenta que los ACP son ficheros ZIP por lo tanto tienen una limitación de 4GB por fichero. Puedes ver aquí lo que te comento:
    http://anythingalfresco.wordpress.com/2010/02/27/alfresco-multi-tenancy-exporting-and-importing-tenants/

    Al ser un sistema crítico igual lo mejor es usar otro sistema como puede ser CMIS o importar/exportar por partes, usar el import-export-tool, etc.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.