BlueMind se sépare de Cyrus Imap

Bye Bye Cyrus IMAP !

Partager

Jusqu’à sa version 4 incluse, BlueMind intégrait Cyrus-imap – un serveur IMAP open source reconnu qui servait de base au serveur de messagerie. Depuis la version 5 sortie en 2024, BlueMind a fait le choix de tirer un trait sur cette brique et d’intégrer les fonctionnalités messagerie IMAP/POP directement dans le core, composant coeur de BlueMind).

Pourquoi ? Comment ? On vous explique !

Dans BlueMind 4 et antérieur,  Cyrus IMAP est utilisé pour gérer les protocoles de messagerie standard IMAP et POP3. C’est aussi le serveur de stockage des emails, qui enregistre et gère la donnée physique des emails, pièces jointes,, les métadonnées (par exemple « lu » ou « non lu ») et le HSM (Hierarchical Storage Management), soit la hiérarchisation des données au niveau du stockage.

BlueMind, pour pouvoir proposer une alternative souveraine et répondre à la demande de sortie des serveurs de Microsoft, propose, en exclusivité le support natif d’Outlook, sans 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 : conserver Outlook tel qu’il fonctionne aujourd’hui chez les clients avec Exchange. Cela se traduit par le support des protocoles/formats natifs d’Exchange/Outlook, soit MAPI côté serveur.

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 rapide à ses requêtes, qui nécessitent des lectures/écritures très rapides, très fréquentes et complexes, 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.

Pour BlueMind 4, nous avons donc mis en place une réplication qui permet de préparer les données de messagerie pour Outlook mais également pour d’autres usages (nouveau webmail, périphériques mobiles en particulier).

BlueMind dit Bye bye Cyrus Imap pour sa messagerie

Le serveur de réplication permet à Cyrus de transmettre une copie des messages au service bm-core. Celui-ci récupère les métadonnées des messages nécessaires pour Exchange Active Sync (bm-eas), Outlook (bm-mapi) et ElasticSearch et les stocke en base de données (comme le fait Exchange) et dans ElasticSearch.

Par exemple, quand vous marquez un email comme « lu » dans Outlook, BlueMind v4 doit faire un appel IMAP à Cyrus, attendre le retour de Cyrus, répliquer la donnée sur le serveur de réplication puis l’enregistrer dans PostGrés et ElasticSearch.

BlueMind dit Bye bye Cyrus Imap pour sa messagerie

C’est ce qu’on appelle la boucle de réplication en BlueMind v4 et ce fonctionnement fait de Cyrus la référence pour l’ensemble des données emails pour tous les accès (Outlook, Thunderbird, mobile, webmail, autres clients IMAP,..). Si quelque chose « casse », on repart de Cyrus pour « reconstruire » à partir de ses informations.

Cyrus présente plusieurs limites qui ne sont plus compatibles avec les enjeux de performance et les évolutions de fonctionnalités de messagerie et de BlueMind.

C’est le cas en matière de stockage objet, nécessaire quand on envisage une plateforme en technologies cloud. En effet, depuis BlueMind v4 il est possible d’activer un SDS (Software Defined Storage) pour la gestion de gros volumes de mails. Cyrus ne supportant pas le stockage objet, nous avons du l’adapter pour permettre ce support. Cependant pour aboutir à un support efficace du stockage objet dans Cyrus, il faudrait re-écrire complètement Cyrus pour qu’il soit pensé et conçu en tenant compte des spécificités de ce mode.

 Ainsi, à partir de la version 5 et la suppression de Cyrus IMAP, l’infrastructure de BlueMind est entièrement pensée pour le stockage objet (tout en fonctionnant  également sur un système de fichiers traditionnel) et ainsi permet des fonctionnalités comme la mise à jour ou un PRA/PCA à chaud.

Autres points noirs de Cyrus :

  • son architecture technique (une connexion par processus) est dépassée et conduit à de faibles performances tout en étant gourmande en ressources serveur (CPU, RAM, I/O),
  • L’architecture de Cyrus est « non cloud ». Les données de référence sont stockées en local (cyrus.index, cyrus.header, mailbox_NN.conversations, annotations.db, mailboxes.db,..) et le fonctionnement de l’application est basé sur la gestion de fichiers locaux.
  • Le format de mail est immuable, impossible à faire évoluer pour intégrer de nouvelles informations ou enrichir les emails.
  • Les partages sont très contraignants dans le cas d’infrastructures multi-backend (plusieurs serveurs Cyrus avec du routage ou du placement intelligent), et limitent fortement la collaboration.
  • Un stockage non optimal en espace consommé puisque les emails sont stockés tel quels en local et en clair.

Le constat de BlueMind est que le protocole IMAP, qui accuse lui aussi son âge (très verbeux, non optimal et loud) n’est plus l’accès principal aux données. En effet, les mobiles passent essentiellement par le protocole ActiveSync, notre nouveau webmail utilise nos API mail et Outlook passe par le protocole MAPI. Finalement, le protocole IMAP est utilisé par Thunderbird et pour permettre la compatibilité avec certains clients moins diffusés.

Si le support d’IMAP reste important pour des aspects de compatibilité et de respect des standards (notamment pour un logiciel Open Source), il n’a plus à être le cœur du système et limiter ses possibilités.

BlueMind a donc fait le choix de se séparer de Cyrus pour améliorer les performances, consommer moins de mémoire et d’espace de stockage, permettre des partages globaux sans limitations de backend et préparer l’enrichissement de la messagerie. 

BlueMind 5 permet de passer de cette situation :

BlueMind dit Bye bye Cyrus Imap pour sa messagerie

A celle-ci :

BlueMind dit Bye bye Cyrus Imap pour sa messagerie

Les avantages sont nombreux :

  • Performances de fonctionnement nettement améliorées. Les chemins d’accès aux données sont plus courts et plus directs.
  • Consommation de mémoire et stockage diminuée. Nous passons d’une connexion par processus à une architecture évènementielle (event loop) : quand un client se connecte au serveur, BlueMind identifie sa présence mais ne consomme que très peu de ressources pour maintenir la session active.
  • Plus de la limitation au niveau d’un backend sur les partages, sans perte fonctionnelle.
  • Une architecture pensée pour le stockage objet.
  • Amélioration de la sécurité logicielle. Cyrus est écrit en langage C (langage de bas niveau souvent utilisé pour le code système) or la nouvelle architecture de BlueMind est conçue en Java (langage dit de « haut niveau » souvent utilisé pour les applications web et mobiles permettant une vérification statique et une gestion automatique de la mémoire).
  • Le PRA/PCA et la mise à jour à chaud deviennent possibles.
  • Amélioration globale du processus de sauvegarde.
  • Services POM & IMAP respectant l’architecture logicielle globale et proposant les mêmes règles de cohérence et de vérifications dans les accès aux données

La version 5 de BlueMind qui a inauguré cette nouvelle architecture est disponible depuis mai 2024, nous vous invitons à nous contacter pour en savoir plus ou, si vous êtes en version 4, à vous rapprocher de votre intégrateur pour préparer la migration. Sachez que le travail d’un éditeur de logiciel ne s’arrête jamais et l’ouvrage doit constamment être remis sur le métier afin d’être adapté et suivre les évolutions technologiques ! Ecrire un serveur IMAP complet et implémenter le stockage objet sont des chantiers d’envergure menés en parallèle d’autres activités clés (UX, webmail, mobiles, maintenance sécurité, résorption de la dette technique et maintenance et évolutions du socle, enrichissement fonctionnel, collaboratif étendu, consolidation Outlook…).

BlueMind 4, BlueMind 5, BlueMind 5.1, 5.2… Pour tout comprendre sur notre politique de nommage de version, c’est par ici !

Contenus similaires
Résumé de la politique de confidentialité

1. Préambule

BlueMind est particulièrement attaché au respect de la vie privée et à la protection des données à caractère personnel. Aussi, la présente politique de protection des données a pour objectif de vous informer sur les engagements et mesures pratiques pris par BlueMind afin de veiller au respect de vos données à caractère personnel.

La présente politique de confidentialité pourra évoluer en fonction du contexte légal et réglementaire et de la doctrine de la Cnil.

2. Champ d’application

Cette politique de protection des données à caractère personnel s’applique à tous les traitements de données à caractère personnel, mis en œuvre par BlueMind, relatifs aux personnes extérieures (notamment les clients, partenaires, candidats au recrutement, fournisseurs, internautes).

3. Données collectées

De manière générale, vous pouvez entrer en contact avec BlueMind et visiter nos sites internet sans qu’il soit nécessaire de nous communiquer vos données personnelles.

Toutefois, afin d’être en mesure de vous apporter certains services, BlueMind peut vous demander de lui fournir des données personnelles, par exemple, pour répondre à une demande de contact, suivre un dossier de candidature, envoyer une newsletter ou gérer votre souscription à nos services.

Peuvent notamment être collectées vos coordonnées (nom, adresse, numéro de téléphone, adresse électronique, etc.) et d’autres informations, telles que celles indispensables à l’ouverture d’une souscription, ou bien encore des données liées à votre parcours professionnel lorsque vous postulez à l’une de nos offres.

Dans tous les cas, BlueMind veille à ne collecter et ne traiter que des données strictement nécessaires au regard de la finalité pour laquelle elles sont traitées (minimisation des données).

4. Finalités de la collecte

Les traitements mis en œuvre par BlueMind répondent à une finalité explicite, légitime et déterminée.

Vos données sont traitées principalement pour les finalités suivantes :

la gestion de votre inscription aux évènements ;
la gestion de votre abonnement à nos publications ;
la réponse à vos demande de contact ;
le suivi de votre dossier de candidature.

5. Information des utilisateurs

Conformément à la Règlementation Informatique et libertés, BlueMind vous informe sur les traitements de données à caractère personnel qu’elle met en œuvre.

Ainsi, BlueMind vous informe, de manière claire, lors de chaque collecte de données à caractère personnel notamment :

de l’identité du responsable de traitement (il s’agit du Data Protection Officer, DPO) ;
de la finalité pour laquelle vos données sont collectées ;
du caractère facultatif ou obligatoire des réponses ;
des destinataires des données ;
de l’existence et des modalités d’exercice des droits d’interrogation, d’accès, de rectification et d’opposition relativement à l’ensemble des données vous concernant.

6. Destinataires des données

BlueMind ne communique vos données à caractère personnel qu’à des destinataires habilités et déterminés.

Les destinataires de vos données à caractère personnel sont les services concernés de BlueMind.

7. Conservation des données

BlueMind ne conserve vos données que pour la durée nécessaire aux opérations pour lesquelles elles ont été collectées ainsi que dans le respect de la législation en vigueur.

8. Sécurité

BlueMind assure la sécurité de vos données à caractère personnel en mettant en place une protection des données renforcée par l’utilisation de moyens de sécurisation physiques et logiques.
9. Vos droits

En application de la règlementation Informatique et libertés, vous disposez d’un droit d’accès, de rectification, d’effacement, de limitation du traitement, à la portabilité et de définir le sort de vos données après votre décès relativement à l’ensemble des données vous concernant qui s’exercent auprès du Délégué à la protection des données par courrier électronique à l’adresse suivante : dpo@bluemind.net ou par courrier postal à l’adresse suivante, Hôtel des Télécom, BlueMind, 40 rue du village d’entreprise, 31670 Labège, accompagné d’une copie d’un titre d’identité signé.

10. Contact

Pour toutes demandes d’information concernant la politique de protection des données à caractère personnel mise en œuvre par BlueMind, vous pouvez vous adressez à dpo@bluemind.net