// article co-rédigé par Laurent Meunier, Julien Berthoux, Nicolas Barithel, Bertrand Forest et Stéphane Prouvez

La Devcon 2018 s’est tenue à Lisbonne du 16 au 18 janvier dernier. Ce fut l’occasion pour 5 de nos experts Alfresco d’assister à plus d’une trentaine de conférences, très orientées technique, sur 2 jours. Un programme chargé mais très enrichissant.

Les points importants à retenir sont :

  • la montée en puissance du framework ADF
  • le redécoupage des services Alfresco
  • l’avenir de l’interface Share

Application Development Framework (ADF)

Le nouveau framework de développement (ADF) était bien présent à la Devcon avec 4 conférences dédiées uniquement à ce sujet. ADF nous a été présenté pour ce qu’il est : un framework de développement permettant de faciliter la création d’interfaces. Il n’a pas vocation à remplacer l’interface Share (nous y reviendrons).

Quelques jours après la Devcon, la version 2.1.0 d’ADF est sortie et apporte son lot d’améliorations.

Quelques informations sur ADF :

Si Angular n’est pas votre tasse de thé, il est toujours possible de passer par le projet « Alfresco JavaScript API ». Ce projet est une bibliothèque JavaScript indépendante de tout framework. Il est ainsi possible de l’utiliser avec Angular (ce que fait ADF), mais rien ne vous empêche de l’utiliser avec React, Vue, jQuery ou tout autre framework JavaScript.

Redécoupage des services Alfresco

L’architecture d’Alfresco est en pleine transition depuis une architecture monolithique, où toutes les fonctionnalités sont concentrées dans une seule application, vers une architecture redécoupée où les services fonctionnent indépendamment et communiquent entre eux. On parle souvent dans ce cas d’architecture “micro-services”, même si là, le choix est plutôt de rester sur une taille “macro-services”. L’intérêt de cette architecture est de permettre de rationaliser les fonctionnalités communes, de simplifier leur maintenance et leur évolution en leur allouant un périmètre dédié et surtout de pouvoir passer à l’échelle (scalabilité).

Cette transition a déjà commencé dans un premier temps avec la gestion des workflows qui a été développée à part entière dans Alfresco Process Services (APS), basée sur le moteur Activiti, et qui est en passe de remplacer le moteur de workflow embarqué dans l’entrepôt documentaire Alfresco Content Services (ACS).

Alfresco a présenté sa feuille de route “A partir de 2018” et le prochain service qui devrait arriver concerne la gestion des identités et des accès, brique IAM (Identity and Access Management) dénommée Alfresco Common Identity Service et devant standardiser la gestion des utilisateurs et de leur authentification pour les briques ACS et APS.

Le deuxième service qui devrait suivre ce mouvement concerne la brique de recherche et de statistiques, qui devrait être unifiée avec le moteur Apache Solr. Il est sobrement dénommé Alfresco Common Insight Service et devrait intégrer le moteur de recherche qui était déjà externalisé sous le nom d’Alfresco Search Services (dont l’acronyme a largement fait sourire les membres de la communauté) et le moteur de reporting et de statistiques, basé initialement sur Pentaho, qui était également externalisé sous le nom d’Alfresco Analytics. Au passage, Alfresco devrait proposer une application d’administration basée sur ADF.

En parallèle, et afin d’offrir une transition en douceur et orchestrer les interactions entre les différents service un point d’entrée unique devrait être mis en place sous la forme d’une “API  Gateway”.

De plus, afin de pouvoir finement interagir avec les évènement qui se produisent au sein de chacun des services traduisant l’activité des utilisateurs autour des documents et de leur process, Alfresco met en place un bus de données sous la forme d’une “Event Gateway” permettant de suivre certaines modifications qui sont poussés dans une file et de pouvoir déclencher des actions en conséquence.

L’idée sous-jacente est aussi de limiter les personnalisations au coeur des services Alfresco mais plutôt d’offrir ces capacités d’interaction via extension dans une application tierce connectée au travers de l’API et du bus d’évènement.

Cette nouvelle capacité ouvre la voie à de nouveaux types d’intégration et Alfresco n’est pas en reste en présentant également durant la conférence son framework dénommé Alfresco Integration Services (AIS) permettant un accès outillé au bus d’évènement (gestion de la synchronisation, des accès aux services tiers, file de traitement avec Apache ActiveMQ et persistance dans une base NoSQL avec Cassandra…)

Note : L’apparition d’ActiveMQ n’est pas une nouveauté puisque la dernière version du Desktop Sync inclut ce nouveau principe de file de traitement.

On serait tenté d’écrire “et pour finir”, mais Alfresco a déjà identifié davantage de services communs qui pourraient être extraits et factorisés. Ces services concernent la gestion de la transformation “Common Transform Service” (format de fichiers, miniatures… basé sur le modèle d’Acteur Akka), la gestion de formulaires “Common Form Service” (types de champ, mise en page, validation, que ce soit pour des métadonnées de document ou des tâches de workflow) et la gestion des opérations au sens large (actions qui peuvent être utilisées sur des évènement, soit sur l’entrepôt documentaire, soit aux différentes étapes d’un process).

Par conséquent, en suivant cette logique, Alfresco incite ainsi à l’utilisation de conteneurs Docker pour chacun de ces services en tirant parti du déploiement dans le Cloud.

Avenir de Share

Alfresco est actuellement fourni avec une interface web nommée Share. Le souhait d’Alfresco est d’abandonner progressivement Share. L’éditeur se veut rassurant en insistant sur le fait que Share ne sera pas retiré du jour au lendemain : Share sera toujours présent dans les prochaines versions (6.X, 7.X ?). Ce projet passera en mode maintenance avec l’ajout de correctifs, mais il ne faut plus s’attendre à des évolutions de l’interface.

Cette annonce a été assez mal prise par la communauté Alfresco.

Share étant fourni en standard avec Alfresco, son abandon (et surtout son non-remplacement) pourrait poser des problèmes aux personnes utilisant la version Community.

Autre preuve du détachement de l’éditeur par rapport à Share : le projet complet a été déposé sur GitHub (il s’était passé la même chose avec l’interface historique “Alfresco Explorer”). Il semblerait bien que le souhait d’Alfresco serait que la communauté reprenne le projet Share et continue à le faire vivre.

Cette annonce soulève plusieurs questions :

  • Du point de vue de l’utilisateur final, comment appréhender la GED s’il n’y a plus d’interface web ? Les utilisateurs ont besoin de se projeter visuellement dans leur future application.
  • Quel est le coût en développement d’une interface ADF spécifique à un besoin métier ? (l’application de démonstration ADF pourra peut-être être utilisée comme point de départ : https://github.com/Alfresco/adf-examples)
  • Est-ce que la communauté va reprendre la maintenance de Share ? Ou peut-être un remplacant à Share (développé en ADF ?) va émerger de la communauté ?

Dans tous les cas, même si Share sera toujours présent, il est important d’anticiper dès maintenant l’après-Share.

Autres sujets

D’autres sujets ont également retenu notre attention. Moins impactant sur l’avenir de la solution Alfresco, mais tout aussi intéressant techniquement.

Le futur du déploiement Alfresco : Docker + Kubernetes. Les principes exposés sont très intéressants et l’intérêt du couple Docker + Kubernetes n’est plus à démontrer. Bien que Docker ait déjà été mis en place dans notre usine logicielle interne (containerisation des builds Jenkins), nous n’avons pas encore eu l’occasion de l’utiliser avec Alfresco.

Cette Devcon a aussi mis en avant la plateforme de service Amazon Web Services (AWS) massivement utilisée en interne par Alfresco. La présentation “Alfresco on AWS Cloud” a permis de montrer les différents services proposés pour monter rapidement une instance Alfresco Cloud. Cette formation a contribué à renforcer l’idée d’Alfresco selon laquelle AWS et les services liés au cloud sont essentiels pour la nouvelle ère de l’ECM.

Présentation de certains services de reprise de données et migration de base, ont aussi été présentés :

Note : Apache ManifoldCF est un projet qui ne permet pas de faire de la migration / export de données d’Alfresco (comme présenté lors de la DevCon) mais il permet aussi plus largement de collecter des documents et des informations de diverses sources (Alfresco, Sharepoint, FileSystem, etc) pour les intégrer dans un seul est unique moteur de recherche (Solr, ElasticSearch, etc.) pour des recherches unifiées (développement en cours pour la partie utilisation des ACL).

De nombreuses évolutions/innovations sont annoncées en 2018 concernant l’intégration avec AWS (cf. Roadmap ci-dessous).

Le sujet des performances de la solution Alfresco a également occupé plusieurs conférences. Le sharding Solr permettant de répartir les index du moteur de recherche sur plusieurs serveurs a été mis en avant. Sans oublier les bonnes pratiques sur la maintenance d’une base de données utilisée avec Alfresco : beaucoup de bon sens, mais une piqure de rappel ne fait jamais de mal.

Roadmap

La Devcon a également été l’occasion pour Alfresco d’annoncer sa Roadmap pour 2018.

Le printemps prochain verra plusieurs sorties majeures : ACS 6.0, APS 2.0, AGS 3.0 et la première version de la suite Insights & Analytics. Puis à l’automne, de nouvelles versions majeures pour ACS et APS. ADF suit un rythme de release spécifique avec une nouvelle version stable tous les mois.

Nous sommes curieux de voir si Alfresco arrivera à suivre le rythme des sorties annoncées qui nous semble optimiste. Cela dit, la curiosité prenant le dessus, nous sommes pressés de mettre la main sur ces nouvelles versions et voir comment ADF va évoluer.

A noter qu’une intégration avec Office 365 n’est pas d’actualité pour le moment.

 

Vous pouvez retrouver l’ensemble des présentations de la Devcon à cette adresse : https://community.alfresco.com/docs/DOC-7294-devcon-2018-presentations

La majorité des sessions ont également été filmées, Alfresco a commencé à mettre en ligne certaines vidéos sur leur chaîne Youtube.