CoreBiz 8.0 released
2. Jun 2021Wir präsentieren das jüngste Release unserer CoreBiz-Reihe: Mit Version 8.0 wurde die Ubuntu-Basis auf die aktuelle LTS-Version aktualisiert und ein wesentlicher Teil der internen Infrastruktur komplett neu entwickelt. Der Support für das neue Release reicht bis April 2025.
Hinter den Kulissen bringt dieses Release einige größere Änderungen mit sich. Neben den üblichen Updates von unzähligen Bibliotheken, Tools und Frameworks endet mit CoreBiz 7.0 R2 (und dessen Basis Ubuntu 18.04) der Support für Python 2.7. Die Entwickler haben daher für CoreBiz 8.0 ihre komplette Code-Basis auf Python 3 umgestellt – und bei dieser Gelegenheit auch viele der neuen Funktionen genutzt, die den Code übersichtlicher machen.
Zu CoreBiz gehören folgende Produkte, die direkt vom Update betroffen sind:
- CoreBiz Base
- CoreBiz Cluster
- CoreBiz Fileserver
- CoreBiz Backup
- CoreBiz Groupware
- CoreBiz Teams
- CoreBiz Client
- CoreBiz System Update Server
- CoreBiz Secure File Exchange
Weitere CoreBiz-Produkte wie Monitoring, VoIP und Security Gateway erscheinen wie bisher in einem unabhängigen Release-Zyklus.
Neu entwickelte Basis-Komponente
Die größte Änderung ist sicher die Neuentwicklung des CoreBiz Management Daemon (CMD). Mit dieser Komponente kommen Anwender und Admins zwar kaum direkt in Berührung, sie ist aber entscheidend, um mit der CoreBiz Management Console (CMC) das Cluster und alle CoreBiz-Instanzen zu steuern. Der CMD steckt auch hinter vielen anderen Funktionen, er ist beispielsweise beim Anbinden (Join) von Clients und Servern an das CoreBiz Directory beteiligt.
Die bisherige Implementierung basierte auf dem inzwischen etwas betagten SOAP-Protokoll und nutzte Bibliotheken, für die es keine aktuellen Versionen mehr gibt und die nie auf Python 3 umgestellt wurden. Statt nun diese Bibliotheken selbst zu portieren, haben die Entwickler einen konsequenteren Weg gewählt und den kompletten Code neu geschrieben: CMD2 basiert auf einem modernen REST-API, liefert eine detaillierte OpenAPI-Beschreibung seiner Aufrufe und ist per Swagger-UI direkt ansprechbar. Das Framework selbst ist per Sphinx umfangreich dokumentiert.
Modernes API
Für die Entwickler unter unserer Leserschaft: Dank der mit Python 3.5 eingeführten Type Hints erzeugt CMD2 die OpenAPI-Beschreibung zur Laufzeit direkt aus dem Code der Plugins und verwendet Inline-Kommentare zur Dokumentation der einzelnen Schnittstellen. Damit müssen Plugin-Autoren keine OpenAPI-Fragmente schreiben. In vielen Fällen genügen wenige Zeilen Code, um einen kompletten CMD2-Call zu implementieren. Selbstverständlich ist die Kommunikation weiterhin per TLS geschützt und es gibt ein ausgeklügeltes Authentifizierungs- und Autorisierungssystem.
Beim Start importiert der CMD2 alle installierten Plugins und fügt diese zu seiner OpenAPI-Spezifikation hinzu. Diese ist damit automatisch immer vollständig und aktuell und dank Swagger-UI einfach per Browser zu lesen. Sogar Testaufrufe lassen sich direkt per Browser starten und beispielsweise in Konsolen-Aufrufe übersetzen, um den Call auch aus Shell-Skripten heraus nutzen zu können.
Das Gegenstück in der CMC2 wurde ebenfalls modernisiert und die Fehlerbehandlung verallgemeinert. Da nun nicht mehr jeder CMD-Call eigene Wege beschreitet, um Probleme an den Aufrufer zurückzumelden, konnten viele Stellen in der CMC deutlich vereinfacht werden. Wie der CMD ist die CMC ebenfalls in Python geschrieben, ihr Code musste daher sowieso an vielen Stellen angepasst werden. Dazu kommt, dass sowohl das Web-Framework Django als auch viele der verwendeten Bibliotheken in neueren Versionen vorliegen, die zum Teil inkompatible Änderungen enthalten.
Stabil und zukunftssicher
Da alle diese Änderungen hinter den Kulissen stattfanden, können die Anwender weiter in ihrer gewohnten Umgebung mit der CMC2 arbeiten – sie profitieren aber von einem modernisierten und über viele weitere Jahre unterstützten System. Wie gewohnt werden die CoreBiz-Entwickler in den nächsten Monaten und Jahren kleine und große Funktionen ergänzen und neue Produkte einführen – alle auf der stabilen Basis von CoreBiz 8.