In der Werkstatt des Softwareunternehmens: Neuigkeiten von BlueMind und laufende Arbeiten – Teil 1

Share on facebook
Share on twitter
Share on linkedin
Nach der ersten Hälfte dieses besonderen Jahres möchten wir Sie auf den aktuellen Stand bringen und Ihnen in zwei Teilen die Neuigkeiten und laufenden Arbeiten bei BlueMind präsentieren.

Nach der ersten Hälfte dieses besonderen Jahres möchten wir Sie auf den aktuellen Stand bringen und Ihnen in zwei Teilen die Neuigkeiten und laufenden Arbeiten bei BlueMind präsentieren.

Die ersten Monate des Jahres 2020 haben uns einige Überraschungen beschert. Viele von uns mussten erstmals das Home Office erproben, ihre Arbeitsgewohnheiten und ihr tägliches Handwerkszeug ändern sowie den Großteil der betrieblichen Organisation auf kollaborative Online-Tools verlagern. Die E-Mail hat sich mehr denn je als Sauerstoff der digitalen Kommunikation erwiesen.

In einem Softwareunternehmen, das die permanente Verbesserung der Angebotslösung ins Zentrum seiner Geschäftstätigkeit stellt, ist die Arbeit nie zu Ende. Wir haben uns sofort daran gemacht, umfassende Projekte einzuleiten, um die Konsolidierung unserer Lösung fortzusetzen und zu beschleunigen. Wir hätten Ihnen diese Entwicklungen gerne im Jahr 2020 bei einem neuen BlueMind Summit  vorgestellt, aber leider zwingt uns der Kontext dazu, die Veranstaltung auf 2021 zu verschieben.

Die Weiterentwicklung der technischen Struktur und der Softwarearchitektur, ihre Fortschreibung auf dem neuesten Stand, die Optimierung der Leistungen, der Abbau der technischen Schulden, das Hinzufügen neuer Tools und Schnittstellen, die Erweiterung der vorhandenen Tools und des Ökosystems sind Teil der grundlegenden Arbeiten zur Konsolidierung der BlueMind-Lösung. Zu diesen kürzlich durchgeführten oder laufenden Arbeiten, die über 70 % des Alltags in einem Softwareunternehmen ausmachen, gehören:

.

Thunderbird: die Entwicklungen vorwegnehmen

Aufgrund der gemeinsamen Codebasis folgt Thunderbird der Entwicklung von Firefox und damit auch den tiefgreifenden Änderungen an den Erweiterungen. Die neue Strukturierung der Erweiterungen und ihrer Interaktion mit Thunderbird hatte mit der vorherigen Hauptversion 68 begonnen, aber erst mit der jetzigen Version 78 sind die Änderungen vollständig wirksam. Wir reden hier vom Übergang von den veralteten Erweiterungen zu WebExtension. Für BlueMind bedeutete dies eine praktisch komplette Neukodierung der Erweiterung, damit sie den neuen Anforderungen nahtlos entspricht.

Thunderbird 78 wurde vor kurzem veröffentlicht, aber nicht als automatische Aktualisierung. Diese wird später erscheinen, damit den Entwicklern Zeit bleibt, ihre Erweiterungen an die zahlreichen Änderungen anzupassen. BlueMind hat dies antizipiert und wird sehr schnell den Connector für die neue Thunderbird-Version anbieten.

.

Objektspeicher und Optimierung

In einer Umgebung, in der das Speichervolumen immer wichtiger wird, bietet die Verwendung eines Objektspeichers viele Vorteile.

Lesen Sie unseren Artikel zur Objektspeicherung.

Viele denken, dass es ausreicht, eine S3-Schnittstelle (oder Swift usw.) hinzuzufügen, um die Objektspeicherung einer Lösung in der eigenen Cloud einzurichten. Weit gefehlt! Die Objektspeicherung erfordert:

  • dass die Verwaltung und Handhabung der Daten teilweise überarbeitet wird, um eine komplette Ineffizienz zu vermeiden. Es handelt sich dabei um eine der Arbeiten, die im Rahmen der Entwicklung der Objektspeicherung für BlueMind/Cyrus IMAP durchgeführt wurden;
  • eine Objektspeicherlösung, die die Leistungsanforderungen eines Mailsystems erfüllt;
  • die Entwicklung von Tools zur Simulation der Nutzung und Belastung des Systems, um die verschiedenen Nutzungs- und Betriebsszenarien zu validieren.

Dank der Verwendung dieser Tools hat sich gezeigt, dass die Zugriffslatenz auf den S3-Server unter Betriebsbedingungen nicht immer optimal ist. Der Faktor, der die für den Benutzer sichtbare Leistung am stärksten beeinflusst, ist die Latenz des Zugriffs auf die Objekte. Die Zugriffslatenz ist die Zeitspanne, die zwischen dem Moment der Anforderung des Zugriffs auf eine Nachricht und dem Moment vergeht, in dem man die komplette Nachricht erhält. Die Latenz steht im Zusammenhang mit der Zugriffsgeschwindigkeit auf das Netzwerk, kumuliert mit der inhärenten Latenz des Objektspeichersystems.

Blockschaltbild der Bausteine, die mit der Objektspeicherung in Aktion treten:

Wenn ein Fat Client beim BlueMind-Server eine Synchronisierung des Mailsystems anfordert, ruft der Cyrus IMAP-Server die Nachrichten sequenziell (nacheinander) ab. Wenn man berücksichtigt, dass die Latenz des Zugriffs auf die Nachrichten 100 ms beträgt, muss man für den Abruf von 30 Nachrichten mit mindestens 100 * 30 = 3000 ms oder 3 Sekunden rechnen.
Um die Auswirkungen einer Zugriffslatenz auf wichtige Objekte zu reduzieren, haben wir einen Mechanismus entwickelt, der ein paralleles Herunterladen der Nachrichten ermöglicht. Mit diesem System und der gleichen Netzwerklatenz von 100 ms dauert der Zugriff des Benutzers auf die 30 Nachrichten nicht mehr 3000 ms, sondern nur noch 100 ms. Es werden bis zu 200 Nachrichten gleichzeitig heruntergeladen.

Um die von BlueMind wahrgenommenen Latenzen im Auge zu behalten, haben wir in der TICK-Monitoringsuite Metriken und ein Kontroll-Dashboard hinzugefügt.

Bei dieser Gelegenheit haben wir außerdem eine Funktion eingebaut, die den Administrator wissen lässt, was ein Backend-Imap-Server gerade macht. Mit diesem Tool kann man rasch feststellen, ob ein Benutzer zu viele Verbindungen verwendet, und verstehen, warum ein Prozess viele Ein- und Ausgänge verbraucht. Der Name des imapd-Prozesses wird automatisch an das angepasst, was der Prozess gerade macht.

Zum Beispiel:

```
cyrus     3476  0.3  0.2  63776 16480 ?        S    14:44   0:01 imap: [192.168.132.240] laurent.coustet@s3.loc s3.loc!user.laurent^coustet.INBOX.Test move Idle
```

.

Benchmark-Tool E-Mail/S3

Um einen Schritt weiter zu gehen und die Infrastrukturen der Objektspeicherung zu bestätigen, haben wir ein Werkzeug entwickelt, das die Belastung der Objektspeicherung durch den E-Mail-Server simuliert und die Leistung der Objektspeicherung misst. Dieses Open-Source-Tool wurde von uns entwickelt und ist auf GitHub erhältlich.

Im Gegensatz zu vielen anderen Benchmark-Tools haben wir versucht, eine globale E-Mail-Serverlast zu simulieren, nicht nur die Brutto-Übertragungsgeschwindigkeit. Wir messen die Zugriffslatenz sowie die verfügbare Bandbreite mit echten E-Mail-Nachrichten aus offenen Verteilerlisten wie der Linux Kernel Mailing List (LKML).

Hier ein Beispiel des Ergebnisses einer Leistungsmessung mit einer Netzzugriffslatenz von 5 Millisekunden. (Toulouse -> Roubaix).

```
+--------+--------------+-----+-----+-----+-----+-----+------+------+
|  TEST  |  THROUGHPUT  | AVG | P25 | P50 | P75 | P90 | P99  | MAX  |
+--------+--------------+-----+-----+-----+-----+-----+------+------+
| PUT 1  | 27.73 KiB/s  | 290 | 167 | 222 | 333 | 562 | 1030 | 5408 |
| GET 1  | 164.48 KiB/s |  49 |  32 |  38 |  47 |  72 |  252 | 2260 |
| PUT 4  | 122.93 KiB/s | 261 | 154 | 205 | 300 | 505 |  829 | 2597 |
| GET 4  | 692.30 KiB/s |  46 |  30 |  36 |  45 |  65 |  247 | 1574 |
| PUT 8  | 243.18 KiB/s | 264 | 159 | 211 | 305 | 493 |  777 | 2485 |
| GET 8  | 1.34 MiB/s   |  43 |  28 |  35 |  44 |  66 |  199 | 1319 |
| PUT 16 | 423.21 KiB/s | 302 | 176 | 241 | 373 | 598 |  819 | 2668 |
| GET 16 | 2.44 MiB/s   |  50 |  29 |  37 |  50 |  76 |  259 | 1894 |
| PUT 32 | 841.70 KiB/s | 304 | 169 | 232 | 372 | 612 |  992 | 2119 |
| GET 32 | 4.28 MiB/s   |  45 |  26 |  34 |  45 |  74 |  197 | 2267 |
| DEL 8  | 0.03 KiB/s   | 305 | 170 | 243 | 391 | 600 |  791 | 1861 |
+--------+--------------+-----+-----+-----+-----+-----+------+------+
```

Man kann feststellen, dass die besten Übertragungsraten bei einer Verwendung von 32 gleichzeitigen Verbindungen zum Speicherserver erzielt werden und dass die Latenz des Downloads unabhängig von der Übertragungsrate konstant bleibt.

Es zeigt sich aber auch, dass die Zugriffslatenz auf eine Nachricht im Durchschnitt bei 45 ms liegt, obwohl die Netzlatenz nur 5 ms beträgt. Daher müssen Messwerkzeuge verwendet werden, um sicherzustellen, dass die Objektspeicherung bei einer Verwendung als Speicher des E-Mail-Systems richtig konfiguriert ist.

.

MAPI: nativ kompatibel mit Outlook

Native Kompatibilität mit Outlook bedeutet:

  • Die Integration des Protokolls MAPI, d. h. des Protokolls (besser der Protokollfamilie), die von Microsoft für Exchange entwickelt wurde.
  • Die Verwaltung des komplexen Datenmodells von Microsoft, das auf einem   Eigenschafts-/Wert-Prinzip basiert. Allein die Liste der bekannten Eigenschaften in Exchange umfasst 376 Seiten mit Spezifikationen … und diese Liste ist nur eines der 130 Dokumente, aus denen die veröffentlichten Spezifikationen bestehen. Das ist etwas für die Freunde von Meta-Objekten und binären Formaten, die je nach Version und Kontext fluktuieren!
  • Die Anpassung der Lösung, um wirksam auf die Anforderungen von Outlook zu antworten, und zwar mit einer REST-API.  Dies erforderte eine grundlegende Weiterentwicklung der BlueMind-Architektur, insbesondere für die Verwaltung und Speicherung von Informationen zu E-Mail-Nachrichten, um auf die Anfragen von Outlook antworten zu können, die dem Typ Datenbank/Eigenschaften entsprechen und keinerlei Bezug zu Mail-Transkationen oder IMAP-Standards haben.

Dank dieser gigantischen Arbeit, die nur BlueMind zum Abschluss gebracht hat, konnten wir 2019 das mit Outlook class-kompatible BlueMind v4 einführen.

Wie bei jeder Einführung einer neuen Version fand der Härtetest in der Praxis statt. Was in vitro funktioniert, sorgt in vivo manchmal für Überraschungen (und neue Fälle). 2020 war und ist noch immer das Jahr des Finetuning und der Anpassungen an „reale Produktionsbedingungen“.

Unsere MAPI-Implementierung hat die funktionale Abdeckung für Outlook verbessert und wurde um neue Diagnose-, Monitoring- und Betriebswerkzeuge erweitert. Unsere Teams bleiben im Einsatz, um BlueMind v4 zu konsolidieren und anzupassen.

Herstellung der Datenkonformität

.

Das Aktualisierungstool

Die Herausforderung durch den Volumenumfang, oder wie man die Unterbrechung des Dienstes verkürzt. Die Version 4 von BlueMind hat bedeutende Änderungen der Architektur erfordert, um mehr Informationen über E-Mail-Nachrichten auf unterschiedliche Weise zu speichern und darzustellen.

Für die Aktualisierung einer BlueMind-Installation auf Version 4 muss das Tool jede Nachricht durchgehen, damit BlueMind den Inhalt aufnehmen kann. Sämtliche Nachrichten einer Installation zu lesen, ist ein kostspieliger und aufwändiger Vorgang.

Außerdem erfordert eine Aktualisierung auf Version 4 die erneute Indexierung der Nachrichten. Dieser Vorgang ist ebenfalls sehr zeitaufwändig. Damit eine Aktualisierung in einem zeitlichen Rahmen erfolgt, der mit den Produktionsanforderungen kompatibel ist und zu lange Unterbrechungen des Dienstes vermeidet, haben wir die Aktualisierungstools so weiterentwickelt, dass sie diese langen Vorgänge vor der Umstellung verarbeiten, ohne den in der Produktion befindlichen Dienst zu unterbrechen.

Wenn der Aktualisierungsprozess erkennt, dass die vorbereiteten Daten vorliegen, ist die Durchsicht jeder einzelnen Nachricht nicht mehr nötig. Die Unterbrechung des Dienstes wird auf ein Minimum reduziert und dauert nicht viel länger als bei jeder anderen größeren Aktualisierung.

Das Tool für die Migration ausgehend von Zimbra  

Wir haben ein Tool entwickelt, das die Migration von einer Zimbra-Infrastruktur zu einer BlueMind-Installation gestattet. Dieses Tool wurde unter ausschließlicher Verwendung von offenen Programmierschnittstellen (API), die in BlueMind und in Zimbra zur Verfügung stehen, in Python entwickelt.

Unser Migrationstool beschränkt sich nicht auf die Synchronisierung von E-Mail-Nachrichten. Wir haben alle wesentlichen Funktionen für eine erfolgreiche Migration integriert. Beispielsweise behalten die Benutzer von Zimbra bei der Migration zu BlueMind ihre Kontaktdaten, ihre „Out of Office“-Parameter oder auch die Weiterleitung an eine externe E-Mail-Adresse.

Die Passwortverwaltung kann ebenfalls Probleme bereiten. Aus diesem Grund haben wir die Verwaltung aller Passworttypen, die von Zimbra verwaltet wurden, in BlueMind integriert. Beim Wechsel von Zimbra zu BlueMind sind daher keine Änderungen der Passwörter erforderlich.

Das Tool gestattet die Migration der Kalender und Adressbücher jedes Benutzers mit den zugehörigen Berechtigungen und Freigaben. Die Parameter der Kalender werden direkt im Kalender des Benutzers synchronisiert, ohne dass er sich manuell abonnieren muss. Außerdem haben wir alle Freigabeverwaltungen sowohl für die Kalender als auch für die Adressbücher integriert.

Video des Webinars „Migration von Zimbra zu BlueMind“

Die Migration eines Zimbra-Servers zu einem BlueMind-Server kann in mehreren zeitlich gestaffelten Schritten erfolgen. Daher haben wir die Administrationstools integriert, die eine differenzielle Synchronisierung zwischen Zimbra und BlueMind gestatten. So kann eine erste Synchronisierung gestartet werden, um die einwandfreie Funktionsweise mit wenigen Benutzern zu überprüfen. Anschließend erlaubt es ein erneuter Start der Synchronisierung, hinsichtlich der neuen in Zimbra vorhandenen Daten auf dem aktuellen Stand zu sein. Die differenzielle Synchronisierung beschleunigt die Verarbeitung und reduziert die Menge der durch das Tool erstellten Protokolle, wodurch die erforderlichen Überprüfungsvorgänge auf ein Minimum beschränkt werden.

Da das bm-migrator-Tool öffentliche API verwendet, kann es auf jedem beliebigen Rechner gestartet werden, der über einen Netzwerkzugriff auf die Zimbra- und BlueMind-Server verfügt.

Wir haben großen Wert auf eine einfache Installation des Tools gelegt. Eine einfache Programmdatei enthält das gesamte Migrationstool (mit Ausnahme von imap-sync, das vor dem Start der Synchronisierung der Nachrichten manuell installiert werden muss).

Für unsere Entwicklerkollegen haben wir eine Shell in das Tool integriert, um das Erstellen zusätzlicher Skripte für einen spezifischen Bedarf zu vereinfachen, die folglich alle Anweisungen und Daten von BlueMind und von Zimbra verwenden können. Wird eine Migration beispielsweise unterbrochen, weil ein Datensatz ungültig oder inkonsistent ist, ist es möglich, den Datensatz live zu ändern und das Migrationstool anzuweisen, den Prozess an dieser Stelle wiederaufzunehmen.

.

BM-Cli: BlueMind-Administration über die Befehlszeile

BM-Cli ist ein Tool, um BlueMind über die Befehlszeile zu steuern. Es gestattet die Automatisierung Ihrer Administrationsaufgaben und vereinfacht die Verwaltung im Alltag.

Warum BM-Cli? Man möchte fast antworten, dass eine Person, die den Sinn einer Schnittstelle für die Befehlszeile nicht sieht, eigentlich nicht zu den Lesern dieser Administrationsthemen gehören sollte. Heutzutage werden die meisten Bedienvorgänge für BlueMind ausgehend von einer Webschnittstelle über die Verwaltungskonsole durchgeführt.

Eine Verwaltungskonsole eröffnet jedoch eine Reihe definierter Aktionen und Möglichkeiten. Eine CLI ergänzt eine Verwaltungskonsole, indem sie die Möglichkeit bietet, Skripte für Vorgänge zu erstellen, verschiedene Daten zu extrahieren, um sie zu listen oder auf eine bestimmte Art und Weise zu bearbeiten, Handlungssequenzen zu automatisieren, ausgehend von externen Programmen Vorgänge durchzuführen usw.

BM-Cli ist ein integriertes Tool, das auf API zurückgreift, um möglichst viele Aktionen zu automatisieren oder vielfältige Reparaturen (multithread) durchzuführen, ohne etwas kodieren zu müssen.

Die CLI von BlueMind wird permanent verbessert, um sie zu vervollständigen, um Vorgänge auf allen von BlueMind verwalteten Datentypen zu ermöglichen und um möglichst viele Aufgaben zu automatisieren.

Sie finden hier ein Video mit der Präsentation von BM-Cli und der ausführlichen Erläuterung des Installationsprozesses.

.

Fortsetzung folgt …

Ende des ersten Teils. Der zweite Teil folgt im August und bietet insbesondere einen Überblick über folgende Arbeiten:

  • Perfektionierung des Kalenders
  • Fortschritte bei der neuen Webmail
  • Pflege und Aktualisierung der Basis 
  • Globale Verbesserung der Leistungen
  • Reifestadium der TICK-Diagnose
Leslie Saladin

Leslie Saladin

Teile diesen Artikel
Share on facebook
Share on twitter
Share on linkedin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

+ 37 = 43

Über BlueMind

Unterstützung für alle E-Mail-, Web- und mobilen Clients, BlueMind bietet die beste kollaborative Unterstützung für Thunderbird und ist die einzige Lösung auf dem Markt, die zu 100% Outlook-kompatibel ist, ohne Konnektor.

Aktuelle Artikel

Folgen Sie uns in sozialen Netzwerken

Inscription à la newsletter

Un e-mail par mois pour rester au courant de toutes les nouveautés BlueMind