Sommaire
Nouveautés architecture
Le Remplacement de Cyrus-IMAP
Jusqu’à sa version 4 incluse, BlueMind intégrait Cyrus-imap – une brique open source bien connue – comme serveur de stockage des mails.
BlueMind 5 a remplacé Cyrus Imap par un composant maison.
Il y a plusieurs raisons derrière ce choix :
- La première consistait à se libérer de la dépendance à un code non écrit par BlueMind qui apportait des limitations techniques de plus en plus contraignantes sans possibilité réelle d’évolution.
- La deuxième raison majeure concernait le stockage objet, un point faible de Cyrus qui ne correspondait plus aux besoins d’évolution de BlueMind.
Jusque-là, beaucoup d’éléments de BlueMind étaient construits de façon à s’adapter ou contourner les limitations de Cyrus-imap. Le choix a donc été fait de s’en affranchir.
Les limitations de Cyrus IMAP
Cyrus accuse son âge et engendre des limites de plus en plus fortes dans un contexte de messagerie moderne, en plus des contraintes inhérentes au protocole IMAP, loin d’être toujours efficient (performances & limites fonctionnelles). Les principaux inconvénients de Cyrus sont :
- Consommation de ressources élevée (RAM et CPU). Le modèle 1 connexion = 1 process a fait long feu.
- Pas adapté au stockage objet, car conçu pour stockage disque local (les mails et toutes les méta-données sont stockés directement sur le filesystem local, et les traitements sont adaptés à ceci).
- Les partages sont limités au périmètre d’un backend, donc à ce que peut supporter un seul serveur. Pas de partage global. Les mécanismes de contournement sont très archaïques, limités et peu fiables.
- Modèle de mail figé et limité, qui ne permet pas d’ajouter des informations (catégories enrichies, infos diverses de collaboration ou gérées par des plugins, etc.) ou de façon très limitée.
À noter : BlueMind 4 intègre de nombreux contournements ou palliatifs afin de dépasser ces limites.
La fin de la réplication
BlueMind propose le support natif d’Outlook, sans ajout d’extension ou modification d’Outlook (que ce soit au niveau des IHM, des fonctionnalités ou du comportement), car c’est ce que veulent les utilisateurs : Outlook (tel qu’il fonctionne aujourd’hui chez nous avec Exchange). Cela se traduit par le support des protocoles/formats natifs d’Exchange/Outlook, soit MAPI côté serveur.
Cependant, MAPI fonctionne comme une base de données, par synchronisation, et les requêtes qu’effectue Outlook ne sont absolument pas compatibles avec le fonctionnement/principes d’un serveur IMAP.
Pour supporter MAPI et répondre de façon correcte et rapidement à ses requêtes, qui nécessitent des lectures/écritures très rapides et très fréquentes, il était nécessaire de contourner le serveur IMAP Cyrus et donc de stocker les données des e-mails (plus exactement les méta-données et la structure des e-mails) dans une base de données. Le corps des e-mails étant gardé uniquement dans Cyrus.
C’est ce qui a été fait dans BlueMind 4, mais cela engendre une double gestion des données et donc la nécessité d’assurer la cohérence globale entre les deux stockages de données (Cyrus et la BD) avec la complexité inhérente à ce type de système.
Assurer cette cohérence était le rôle de la réplication de BlueMind 4 qui utilisait la réplication native Cyrus. Cette opération est coûteuse et nécessite d’attendre que Cyrus ait effectué ses opérations avant de les répliquer. Ce processus asynchrone passait par des workers de réplication qui devaient faire un retour après chaque opération afin de communiquer les modifications à Outlook (et aux mobiles). Il pouvait occasionner un délai entre les actions et donc générer une différence entre le client et le serveur. Une opération contradictoire pouvait casser la synchronisation avec Outlook.
Nous arrivions donc aux limites du système, contraignant les transitions vers une architecture cloud-ready, les grosses montées en charge, le support très avancé du client Outlook et les interfaces intelligentes vers les outils de Digital Workplace.
Les gains
Avec la version 5 de BlueMind, Cyrus a donc tiré sa révérence. Les fonctionnalités de stockage et gestion qui lui incombaient encore sont maintenant prises en charge directement par le cœur de BlueMind, de façon plus moderne et sans les limitations précitées.
En v5, quand un e-mail arrive, là où BlueMind stockait dans Cyrus puis attendait la notification de la réplication avant de stocker en base de données, BlueMind effectue simplement un insert en base de données, suivi d’une copie du mail dans le stockage sur le disque (ou objet), et a immédiatement tous les éléments nécessaires à la communication avec Outlook.
À noter : Au-delà d’Outlook, cette nouvelle infrastructure prend en compte et améliore la communication avec les clients IMAP, mobiles, Thunderbird et Apple Mail.
Des gains importants sont constatés au niveau de :
- La consommation de ressources, notamment la RAM.
- La fin de la limitation de partages au niveau d’un backend.
- Le format d’un e-mail, maintenant évolutif, qui permet le développement de fonctionnalités comme les catégories.
- L’implémentation possible et réalisée du stockage objet.
Le stockage objet
En version 5, avec la suppression de Cyrus, BlueMind a fait le choix de passer nativement sur un stockage objet pour les raisons suivantes :
- Capacité à traiter de gros volumes.
- Avoir une architecture plus cloud-ready au niveau du stockage.
- Permettre la corbeille à double-fond (l’e-mail est stocké sous forme d’un fichier sur le disque ou réseau, auquel est associé une clé - hash du mail - en BD. Lorsqu’un client demande un accès au fichier, BlueMind sait très rapidement dire au client où sont stockées les données et comment y accéder).
- Backup plus simple et direct.
- Meilleure sécurité. Par exemple, l’API S3 permet de rendre immuable un objet, une fois qu’il est écrit il ne peut pas être modifié et donc, un ransomware par exemple, ne pourra jamais chiffrer le fichier.
L’ensemble de BlueMind a été modifié pour s’adapter à la conception objet. En effet, il ne s’agit pas uniquement de changer les appels de lecture ou d’écriture des informations, mais d’adapter l’application (modélisation et traitements), du backend aux clients comme le webmail, aux paradigmes du stockage objet (latences sur la récupération des objets, gestion des listes d’objets ou mails via les méta-données, etc.) sous peine d’obtenir une application aux performances déplorables.
BlueMind v5 est compatible S3 et Scality et permet de fonctionner avec un disque local en émulant nativement un stockage objet sur des disques.
Ainsi, les installations actuelles ou nouvelles de BlueMind n’ont pas à subir de modifications, le disque local suffit et le stockage objet est possible sur les partitions habituelles.
OpenID et le SSO
À partir de sa version 5, BlueMind prend en charge le protocole OpenID, notamment pour avoir un support SSO (Single-Sign On) et pouvoir s’inclure dans un système d’information proposant déjà un service de SSO.
OpenID est mis en place par l’intermédiaire de Keycloak.
Cela va permettre d’ajouter progressivement de nouvelles fonctionnalités comme le MFA (authentification multi-facteurs).
Note : Le Keycloak intégré à BlueMind n’a pas vocation à être la brique SSO centrale du SI client. Si un client veut mettre en place un SSO global pour son système d’information, il faut qu’il mette en place un système externe (un Keycloak par exemple). BlueMind a choisi de rester maître de sa brique Keycloak et de communiquer avec la brique SSO externe.
AuditLog
Afin d’améliorer la traçabilité métier (voir le parcours d’un email dans le système), BlueMind 5 inclut un Auditlog, outil basé sur ElasticSearch et RocksDB, qui permet de stocker de nombreuses informations pertinentes dans le cadre de l’administration d’un serveur BlueMind :
- Toutes les opérations de chaque e-mail : les déplacements, les suppressions, les différents flags (lu/non-lu, important, deleted…), les timestamps et les auteurs.
- Les événements et les séries d’événements, ou sur les ACL les grant et revoke accès sur les partages de dossiers, de mailshares, sur les calendriers ou les carnets de contacts, etc.
- Les connexions des utilisateurs, peu importe le moyen de connexion.
Auditlog est actuellement disponible uniquement en CLI. Une IHM sera proposée ultérieurement.
Nouveautés utilisateur
Le nouveau webmail est le webmail officiel
Le nouveau webmail, proposé en test à partir de BlueMind 4.6, s’est considérablement enrichi et est maintenant l’interface officielle. Il est aux normes de l’architecture logicielle de BlueMind (application JS qui fonctionne via API et synchronisation en utilisant le cache du navigateur).
L’ancien webmail, qui était basé sur Roundcube, peut encore être installé (il ne l’est plus par défaut sur les nouvelles installations), mais il n’est plus recommandé, notamment pour des raisons de sécurité.
Parmi les nouveautés du webmail :
- Meilleure intégration des carnets d’adresse.
- Corbeille à double fond.
- Disponibilité d’un mode sombre et accessibilité encore augmentée.
- Plus de capacités de tris et filtres.
- Prévisualisation des messages attachés à un mail.
- Support du S/MIME.
Autres nouveautés
De nombreuses autres nouveautés sont apportées par la v5, comme :
- Un plugin BlueMind Visioconférence pour Outlook.
- La gestion des délégations « à la » Microsoft.
- Le transfert d’invitation de réunion.
- Les disponibilités affichables sous forme d’agenda dans l’agenda.
- Gestion de l’état Annulé d’une réunion.
- …
Le détail des nouveautés est disponible dans le changelog.
Le passage en version 5
La version 5 recommande maintenant 24 Go minimum.
L’outil de migration bm-migrator
permet de passer d’Office365/Exchange/Zimbra/Kerio/Kopano/Dovecot, etc., à BlueMind 5, en automatisant la récupération de presque toutes les données.
À noter : Une migration nécessite toujours un travail et des tests préparatoires.