BlueMind sort sa version 5.0 : tous les détails techniques

Posté par  . Édité par Ysabeau 🧶 et Benoît Sibaud. Modéré par Ysabeau 🧶. Licence CC By‑SA.
24
23
août
2024
Commercial

BlueMind est une suite logicielle libre (AGPL v3) de messagerie d’entreprise, d’agendas et de travail collaboratif.

Poursuivant l’objectif global de permettre aux utilisateurs de concrétiser l’abandon des messageries Microsoft, Exchange et 365, cette nouvelle version apporte plusieurs nouveautés et des changements profonds d’architecture, pour supporter les différents clients et simplifier la transition des utilisateurs.

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 :

  1. 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.
  2. 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.

Aller plus loin

  • # Licence

    Posté par  (site web personnel) . Évalué à 10 (+9/-0).

    Le site indique qu'il s'agirait d'une « solution Open Source » (en français dans le texte), mais elle n'est mentionnée ni dans la dépêche, ni très directement sur le site. Quant au code, le site ne semble pas totalement ouvert aux téléchargements puisque le lien emmène sur un formulaire. Dommage d'omettre de préciser dans une dépêche comme celle-ci que le code est[*] en Affero GPL ; même si ça n'intéresse pas nécessairement les clients, beaucoup ici sont sensibles à ce genre de précision.

    [*] Doit-on insérer ici « Pour le moment » ? Dans la mesure où l'objet de BlueMind n'est probablement pas celui de la FSF, à savoir la promotion du Logiciel Libre ?

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Licence

      Posté par  (site web personnel) . Évalué à 5 (+2/-0).

      Phrase introductive ajoutée à la dépêche, merci.

      • [^] # Re: Licence

        Posté par  (site web personnel) . Évalué à 6 (+4/-0).

        Merci.

        Je me permet de reposer ma dernière question de manière, je l'espère, plus limpide car elle n'était pas rhétorique. La documentation précise :

        « Au niveau juridique le code est Open Source (Affero GPL) et pour toute contribution dans le produit générique, vous devez signer un copyright assignment qui donne à BlueMind la co-propriété de ce code (vous gardez aussi bien sûr votre propriété). L'idée est simple, et la même qu'applique la Free Software Foundation (http://www.gnu.org/licenses/why-assign.html) : nous souhaitons garantir la pérennité de BlueMind et donc garder la maîtrise de l'ensemble […] »

        La cession des droits demandée permettrait-elle éventuellement à BlueMind d'opérer un changement de licence, à l'image de ce qui s'est fait avec VLC par exemple ?

        Si tel était le cas, il me semblerait que la comparaison avec la FSF soit trompeuse, dans la mesure où l'objet de la FSF est la défense et la promotion du logiciel libre, ce qui n'est pas le cas de BlueMind. Autrement dit quelqu'un qui confierait son code libre à la FSF peut raisonnablement espérer — même si on n'est à l'abri de rien, et que rien ne le garantisse — que le code et ses évolutions resteront libres. Alors qu'on observe fréquemment que des éditeurs de logiciels libres préfèrent se tourner progressivement vers des modèles de moins en moins libres (un exemple récent).

        « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

        • [^] # Re: Licence

          Posté par  . Évalué à 3 (+2/-0). Dernière modification le 24 août 2024 à 14:35.

          La cession des droits demandée permettrait-elle éventuellement à BlueMind d'opérer un changement de licence

          L'accord permet explicitement à BlueMind d'utiliser les contributions sous n'importe quelle licence (y compris propriétaire) et donc de changer la licence du projet, oui. Par contre, puisque les contributions demeurent elles-mêmes sous AGPL, il reste au moins la possibilité de forker…

          il me semblerait que la comparaison avec la FSF soit trompeuse

          Je ne sais pas si c'est trompeur, mais ce n'est pas une très bonne comparaison en effet.

          à l'image de ce qui s'est fait avec VLC par exemple

          À quelle occasion ? À ma connaissance, le passage du moteur de VLC à la LGPL s'est justement fait en contactant chaque contributeur individuellement, parce qu'il n'y avait pas de tel accord.

  • # IPv4 seulement ?

    Posté par  . Évalué à 5 (+3/-0).

    Ah, c'est dommage : https://doc.bluemind.net/release/5.0/guide_d_installation/prerequis_a_l_installation#adresse-ip

    Je sais que l'IPv6 n'est pas encore franchement obligatoire, mais quand même, c'est dommage de ne pas le supporter, même à l'aide de commandes un peu obscures si nécessaire.

  • # Thunderbird

    Posté par  . Évalué à 4 (+3/-0).

    C'est quoi la différence avec Thunderbird? Les deux sont-ils pour les mêmes usage?

    • [^] # Re: Thunderbird

      Posté par  (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 24 août 2024 à 12:01.

      Bluemind, c'est un peu comme NextCloud, mais avec un bricolage de plein de logiciels imbriqués.
      Ce qui rend les migrations/upgrades délicates, comme pour la plupart des gros projets.

      Il y a l'interface web, d'une part, et, les connexions par les différents appareils des utilisateurs : ordinateurs, smartphone, et les logiciels pour les agendas, les carnet d'adresses, les emails, les fichiers. Comme NextCloud.

      J'y avais touché il y a plus de 10 ans, et ça m'avait fortement déplu. Mais c'était il y a plus de 10 ans.

      Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

      • [^] # Re: Thunderbird

        Posté par  (site web personnel) . Évalué à 10 (+10/-0).

        disclaimer: je travaille pour BlueMind

        Un des points fort de la v5 est justement de réduire ce bricolage / assemblage de briques qui ne sont pas toujours faites pour travailler ensemble. Nous devions beaucoup tordre le bras de Cyrus IMAP pour assurer l'intégration avec des stockages objets s3 ou ring scality, tracker les changements efficacement sur des milliers de dossiers, etc.

        C'est la même idée derrière l'utilisation d'OIDC. Le but n'est pas de poser des keycloak en plus mais plutôt de savoir s'intégrer avec (par exemple) des ADFS déjà présents dans les sociétés et désactiver le keycloak du bluemind.

        • [^] # Re: Thunderbird

          Posté par  . Évalué à 1 (+0/-0).

          C'est une application serveur, y-a-t'il un service en ligne payant géré par BlueMind (hors partenaire).

          de même que nous profitons des avantages que nous apportent les inventions d'autres, nous devrions être heureux d'avoir l'opportunité de servir les autres au moyen de nos propres inventions ;et nous devrions faire cela gratuitement et avec générosité

    • [^] # Re: Thunderbird

      Posté par  (Mastodon) . Évalué à 1 (+0/-0).

      Thunderbird ça juste marche ;-)
      Un peu plus de fonctionnalités quand même dans BlueMind mais pas indispensables pour moi.

    • [^] # Re: Thunderbird

      Posté par  . Évalué à 8 (+7/-0).

      J'ai l'impression que

      Thunderbird = client
      Bluemind = server

      Donc on ne parle pas du tout de la même brique…

      • [^] # Re: Thunderbird

        Posté par  . Évalué à 8 (+8/-0).

        Bonjour, je suis l'autrice du billet. Effectivement Thunderbird est un client alors que BlueMind est un serveur mail, on ne parle pas de la même chose.
        BlueMind propose une gestion complète de Thunderbird en ajoutant notamment tout un volet collaboratif.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.