Object Storage Connectors for Alfresco

We are proud to officially open source ours Object Storage Connectors for Alfresco.

First public release is available on Github

Related Docker images are built automatically by travis-ci :

We offers annually contracted Level 3 support :

  • Diagnose and correcting bugs

  • Port / adapt code to any Alfresco version (Community or Enterprise)

  • Port / adapt code to any SDS version

Contact us at info@jeci.fr for more information.


Connecteur Swift pour Alfresco

Après les connecteurs pour OpenIO et Ceph, nous avons réalisé un connecteur Swift pour Alfresco. Swift est le SDS du projet OpenStack, c’est également une API compatible avec Red Hat Ceph Storage (via la rados gateway et OpenIO (via une gateway également).

Swift a l’avantage d’être une API standard, comme Amazon S3, mais nécessite de passer par un proxy (ou gateway).

Ce connecteur se présente sous forme de module alfresco AMP, ne nécessitant pas de dépendances externes. Toute la configuration s’effectue via le fichier alfresco-global.properties.

N’hésitez pas à nous contacter à info@jeci.fr pour solliciter une démo ou une expertise.


Do I need Object Storage with Alfresco?

An often overlooked topic about Alfresco installations is the storage of files. Alfresco saves files directly to the hard disk: the ContentStore. Usually a NAS is connected on the Alfresco server using NFS.

As volumetry increases, problems become numerous. To work around these problems the best solution is Software-defined storage such as Red Hat Ceph Storage.

This type of solution has the following advantages:

  • Flexible: Easily expand storage to several Petabytes (PB) of data, simply by adding additional servers in the pool and without interruption of service.

  • Economical: Storage costs lower by avoiding proprietary storage appliances and by building a storage cluster using everyday servers and disks.

  • Backup: We don’t need to perform cold backup of Alfresco ContentStore, since Ceph automatically makes files replication (3 copies by default) over several servers and can easily take snapshots of entire pool. You can of course store your database backups on Ceph.

  • Reliability: Benefit from a peer-to-peer architecture that seamlessly handles failures and ensures data distribution throughout the cluster.

  • Multi-Servers: The files are accessible from several servers (Clusterring, Alfresco Indexing Server) without special configuration on the Alfresco OS. (No NFS needed)

We are selling an Alfresco connector for Red Hat Ceph Storage, using native RADOS object access to achieve optimal performance.

Contact us at info@jeci.fr for more information.


Alfresco et Object Storage : pourquoi ?

Un point critique souvent négligé sur les installations Alfresco est le stockage des fichiers. Alfresco enregistre les fichiers directement sur le disque dur : le ContentStore. Généralement on branche un NAS avec un montage NFS sur le serveur Alfresco.

Dès que la volumétrie augmente, les problèmes deviennent nombreux. Pour contourner ces problèmes la meilleure solution est le stockage logiciel (appelé aussi Software Defined Storage SDS) comme Red Hat Ceph Storage.

Certifié et supporté par Red Hat, Red Hat Ceph Storage peut être installé chez vous sur tout type serveurs x86 certifié sur Red Hat Enterprise Linux mais aussi chez un Service Provider partenaire de Red Hat, et avoir ainsi un large choix d’architecture et un accès illimité au support Red Hat sur celle de votre choix.

Ce type de solution présente les avantages suivants :

  • Flexible : Agrandissement facile du stockage jusqu’à plusieurs Petaoctets (Po) de données, simplement en ajoutant des serveurs supplémentaires dans le pool et sans interruption de service.

  • Économique : Coût du stockage inférieur au stockage classique, car cette technologie utilise des serveurs et des disques courants.

  • Sauvegarde : Plus besoin de faire une sauvegarde du ContentStore Alfresco, Ceph effectue automatiquement une copie des fichiers (3 copies par défaut) sur plusieurs serveurs et permet la réalisation de snapshots de l’ensemble des données. Vous pouvez bien sur stocker vos backups de base de données sur Ceph.

  • Fiabilité: Ceph bénéfici d’une architecture p2p, qui gère sans problème les échecs et assure la distribution des données dans tout le cluster.

  • Multi-Serveurs: Les fichiers sont accessibles depuis plusieurs serveurs (Clusterring Alfresco, Serveur d’indexation) sans configuration particulière sur l’OS d’Alfresco. (Pas de montage NFS)

Nous proposons un connecteur Alfresco pour Red Hat Ceph Storage, utilisant l’accès objet natif RADOS.

Contactez-nous à info@jeci.fr pour plus d’information.


Connecteur Alfresco Ceph

Logo Ceph

Après le connecteur Alfresco OpenIO annoncé au début du mois, nous vous proposons aujourd’hui - toujours en partenariat avec Beezim - un connecteur Alfresco pour Red Hat Ceph Storage. Ceph est une plateforme libre de Software Defined Storage (SDS) mis en avant par Red Hat.

Cette implémentation utilise librados, qui permet un accès direct à RADOS (et aux OSD) sans passer par les gateway S3 ou Swift. Ceci complexifie un peu la configuration du serveur Alfresco mais améliore notablement les perfomances.

Architecture Ceph

Le connecteur est disponible en Beta sous forme de module AMP. N’hésitez pas à nous contacter pour solliciter une démo ou une expertise. Comme pour le connecteur OpenIO une image Docker nous permet de monter très rapidement une maquette en ligne.


Test du connecteur Alfresco OpenIO avec Docker

Pour tester notre connecteur Alfresco-OpenIO j’utilise la magie de Docker. OpenIO fournit une image Docker près à l’emploie. Pour Alfresco on trouve plusieurs images basées sur l’installateur automatique d’Alfresco, ce qui ne me convient pas. J’ai donc créé mes propres images.

Au lieu d’une image contenant Alfresco+Share+Solr+Postgresql, j’ai mis en place 4 images distinctes. C’est ainsi plus simple de remplacer un composant (par exemple Postgresql par MySQL), on peut également redémarrer ou reconstuire uniquement un service ce qui est beaucoup plus rapide.

Les images Alfresco, Share et Solr sont simplement basés sur l’image tomcat officiel “tomcat:7.0.70-jre7” sur lesquelles j’injecte les war officiels d’Alfresco et la configuration spécifique au montage Docker.

Bien sur j’injecte alfresco-mmt.jar pour facilement installer des modules Alfresco AMP sur des images filles. C’est ainsi que je créé une image Alfresco contenant le module Alfresco-OpenIO.

Ensuite il suffit de créer un fichier docker-compose.yml pour configurer les services ensembles. Par exemple :

version: '2'

networks:
  alf-openio:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.168.0/24
          gateway: 192.168.168.1

services:
  alfresco:
    image: jeci/alfresco-openio
    environment:
      CATALINA_OPTS: "-Xms512m -Xmx4G -XX:MaxPermSize=256m -XX:-DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Djava.security.egd=file:/dev/./urandom "
    depends_on:
      - postgresql
      - openio
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    links:
      - openio
    networks:
      - alf-openio

  share:
    image: jeci/share-dc
    environment:
      CATALINA_OPTS: "-Xms1G -Xmx4G -XX:MaxPermSize=256m -XX:-DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Djava.security.egd=file:/dev/./urandom "
    depends_on:
    - alfresco
    ports:
    - "80:8080"
    networks:
      - alf-openio
    cap_drop:
     - NET_BIND_SERVICE

  solr:
    image: jeci/solr-dc
    environment:
      CATALINA_OPTS: "-Xms512m -Xmx2G -XX:MaxPermSize=512m -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:G1HeapRegionSize=8m -XX:MaxGCPauseMillis=200  -Djava.security.egd=file:/dev/./urandom "
    depends_on:
    - alfresco
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    networks:
      - alf-openio

  postgresql:
    image: postgres:9.4
    environment:
      POSTGRES_DB: alfresco
      POSTGRES_PASSWORD: alfresco
      POSTGRES_USER: alfresco
    networks:
      - alf-openio

  openio:
    image: openio/sds
    container_name: openio-service
    environment:
      OIO_NS: OPENIO
      OIO_ACCOUNT: alfresco
      OPENIO_IPADDR: 192.168.168.10
    networks:
     alf-openio:
        ipv4_address: 192.168.168.10
    expose:
     - "6006"
    stdin_open: true
    tty: true

Démarrer l’image OpenIO avec docker-compose n’est pas facile car OpenIO nécessite d’avoir une adresse ip fixe. Mais une fois correctement en place il suffit de faire :

docker-compose up -d


Connecteur Alfresco OpenIO

OpenIO

En partenariat avec Beezim, qui a développé un connecteur OpenIO pour Zimbra, nous venons de mettre au point un connecteur Alfresco pour OpenIO.

Une installation standard d’Alfresco nécessite quatre composants clés : l’application Alfresco+Share sur Tomcat, une base de données, des indexes Solr et un espace de stockage pour les fichiers (ContentStore). La mise en cluster de tous ces composants est maitrisée aujourd’hui, sauf pour le stockage des fichiers qui repose généralement sur un montage NFS.

En utilisant du stockage objet comme OpenIO, le ContentStore devient automatiquement répliqué trois fois, tolérant aux pannes, extensible à l’infini mais cela ne change rien pour les utilisateurs ni pour les développements spécifiques.

Le stockage objet facilite l’administration d’Alfresco pour des petites ou très grosses instances, les avantages sont :

  • Centralisation du stockage : vous pouvez configurer plusieurs Alfresco sur la même installation OpenIO
  • Backup automatique par l’utilisation de la duplication côté stockage
  • Gestion de volumes de données importants pour petits et gros fichiers
  • Facilité d’augmentation de la volumétrie

Le connecteur est disponible en Beta pour l’instant, sous forme de module AMP. N’hésitez pas à nous contacter pour solliciter une démo ou une expertise. Notre partenaire Beezim maitrise la mise en oeuvre d’OpenIO chez vous ou hébergée.



Older posts are available in the archive.

Tags

Alfresco Object Storage Maven Humeur SDS Ceph Ant CMIS Virtualisation Linux Docker OpenIO Swift Puppet Markdown

Archive

Dernière Articles

Do I need Object Storage with Alfresco?

20 January 2017 - Object Storage , Ceph , Alfresco , SDS

What interest to set up "Storage Object" on Alfresco?

(Lire la suite)


Alfresco et Object Storage : pourquoi ?

20 January 2017 - Object Storage , Ceph , Alfresco , SDS

Quel intéret de mettre en place de l'Object Storage sur Alfresco ?

(Lire la suite)


Connecteur Alfresco Ceph

21 September 2016 - Object Storage , Ceph , Alfresco

Module Alfresco pour se connecter à un store Ceph

(Lire la suite)


Test du connecteur Alfresco OpenIO avec Docker

18 September 2016 - Object Storage , OpenIO , Alfresco , Docker

Pour tester le module Alfresco-OpenIO, nous utilisons Docker-Compose.

(Lire la suite)


Connecteur Alfresco OpenIO

07 September 2016 - Object Storage , OpenIO , Alfresco

Module Alfresco pour se connecter à un store OpenIO

(Lire la suite)


Nouveau site !

29 August 2016 - Humeur

C'est la rentrée, et l'occasion de mettre en ligne le nouveau site de Jeci.

(Lire la suite)


Configuration du Workbench CMIS

17 June 2015 - Alfresco , CMIS

Le projet Apache Chemistry fournit une application java servant de démo à l'utilisation de CMIS. Cette application n'est pas facilement utilisable mais elle rend beaucoup de services pour tester des requêtes CMIS...

(Lire la suite)


Section archive.