Copie partielle du référentiel documentaire Alfresco

Comment mettre en place un environnement de recette Alfresco sans recopier tout le référentiel documentaire ?

La problématique des grands clients Alfresco

Les clients Alfresco sont fréquemment confrontés à la problématique d’obtenir un environnement de pré-production ou de recette identique à la production en terme de données pour tester un nouveau développement ou une montée de version.

La mise en place d’un serveur de recette ou de pré-production Alfresco est simple si le volume de données n’est pas trop important : il suffit de dupliquer l’ensemble du référentiel à un instant T, en effectuant un export / import de la base de données Alfresco, suivi de la recopie des fichiers représentant les contenus.

Lorsque la volumétrie est importante, ce n’est plus aussi simple :

  • il faut tout d’abord disposer de l’espace disque suffisant
  • le temps de recopie des fichiers peut être long, car il faut la préparer par une première copie puis la rafraîchir
  • et idéalement l’opération complète (export base de données et recopie des fichiers) se fait avec le serveur de production arrêté, pour éviter toute incohérence entre les fichiers recopiés et les informations de la base de données.

Souvent le besoin peut être limité à une partie du référentiel Alfresco pour valider la montée de version d’une application Métier qui utilise Alfresco comme GED de stockage.

Limites du Bulk-import

Il existe bien une fonction d’export/import Alfresco (avec les modules bulk-export et bulk-import) mais ils sont fastidieux à utiliser, et peuvent impacter les performances du serveur de production pendant l’exécution de l’export.

Limites de la réplication Alfresco

Il existe également une fonction de réplication de parties du référentiel proposée dans les fonctions d’administration d’Alfresco, mais cette fonction a des limitations :

  • elle ne conserve pas les UUID (référence interne des contenus) entre la plate-forme source et la plate-forme cible. Toujours dans le cas de besoin d’une environnement de recette d’une application métier, il peut être nécessaire de conserver ces UUID pour que l’application « reconnaisse » les documents recopiés sur la plate-forme de recette
  • elle ne peut pas être limitée aux documents d’un certain type, elle porte sur tous les documents d’une arborescence
  • elle ne permet pas d’optimiser l’espace disque du serveur cible

La solution apportée par StarXpert

Pour ces raisons, StarXpert a développé un module permettant d’effectuer la recopie partielle ou complète du référentiel documentaire, avec :

  • optimisation des performances
  • optimisation de l’espace disque nécessaire
  • conservation des UUID

Le schéma de principe de la solution est le suivant :

La solution permet :

  • la recopie de tout ou partie du référentiel Alfresco de production vers une plate-forme initialement vierge
  • et elle assure la synchronisation des contenus ; la plate-forme cible est constamment à jour par rapport à la production

Les performances sont optimisées, le serveur Alfresco source est mis à contribution uniquement par des appels de Webservices permettant d’obtenir la liste des documents puis de les récupérer : l’intelligence du traitement est en effet déportée sur un autre serveur.

L’espace disque est également optimisé : la recopie peut consister à créer dans le serveur cible des fichiers « factices ». Les deux serveurs auront le même nombre de documents, avec la même arborescence et les mêmes métadonnées, mais les fichiers seront tous les mêmes (un ficher PDF factice, un fichier Word factice ..). En effet, pour les besoins de recette des applications, le contenu des fichiers importe peu, et cela permet un gain considérable au niveau de l’espace disque.

Le paramétrage se fait par simple fichier de configuration, qui permet de spécifier :

  • les serveurs sources et cibles
  • la portée de la recopie (tout le référentiel, une sous-arborescence, tous les documents d’un même type, …)
  • l’activation de l’utilisation de fichiers factices

Une fois le module installé, le client est donc parfaitement autonome pour mettre en place ses environnements de pré-production et de recette.

Pour en savoir plus