ownCloud Infinite Scale: Go statt PHP, Microservices statt LAMP

Erstmals lässt sich ownCloud Infinite Scale ausprobieren. Die Entwickler versprechen eine deutlich performantere und leichter zu administrierende Software.

In Pocket speichern vorlesen Druckansicht 133 Kommentare lesen

(Bild: Gorodenkoff / Shutterstock.com)

Lesezeit: 5 Min.
Von
  • Martin Gerhard Loschwitz
Inhaltsverzeichnis

Im stillen Kämmerlein arbeitet ownCloud seit über einem Jahr an der neuen Version seiner Software und zeigt nun zum ersten Mal sein neues Projekt Infinite Scale – allerdings sind die Entwickler nicht langsam, sondern haben sich viel vorgenommen. Bis einschließlich ownCloud X ist die Software eine klassische LAMP-Applikation: Im Hintergrund werkelt MySQL, Apache serviert PHP-Seiten und das gesamte Konstrukt läuft üblicherweise auf einer Linux-Installation.

Im Laufe der Jahre sind die ownCloud-Entwickler allerdings an immer mehr Performance- und Skalierbarkeitsgrenzen gestoßen, deren Ursache zumeist in entsprechenden Limitierungen in PHP liegt. Wer große ownCloud-Installationen betreibt, kennt das: Je mehr Nutzer und Dateien die Instanz verwaltet, desto träger wird sie mit der Zeit. Regelmäßig sehen Admins sich zudem mit Speicherplatzmangel konfrontiert, denn bisher speichert ownCloud die Dateien seiner Nutzer lokal auf einem normalen Dateisystem ab. Wird der Platz dort knapp, ist das Problem gar nicht so leicht zu umschiffen.

Alle diese alten Zöpfe planen die Entwickler in ownCloud Infinite Scale endgültig abzuschneiden. Dabei handelt es sich mehr Revolution denn Evolution: Ihren alten Code treten die Entwickler fast vollständig in die Tonne und ersetzen ihn durch einen kompletten Rewrite in Go. oCIS folgt einem Modell aus drei Schichten: Die unterste Schicht kümmert sich um das Speichern von Dateien, die mittlere Schicht umfasst alle Kern-Dienste und die dritte Schicht ist das ebenfalls vollständig neu geschriebene Webinterface.

Ein erster Test des neuen ownCloud Infinite Scale und des ebenfalls neuen Webinterface, geschrieben in Vue.js.

Der Kern von ownCloud besteht künftig aus verschiedenen Microservices, die einander per gRPC Befehle und Anweisungen zusenden. Die Entwickler bündeln die MESH-Software Traefik fest mit oCIS, um sich um Themen wie Loadbalancing und sichere Kommunikation innerhalb des Service-Netzwerks keine Gedanken machen zu müssen. Was im Umkehrschluss bedeutet: Reichen die laufenden Instanzen eines bestimmten ownCloud-Dienstes nicht mehr aus, lassen sich zusätzliche Instanzen desselben Dienstes ad hoc starten.

Architektonisch nutzt oCIS diverse Vorteile von Go zur Beschleunigung. Fordert der Nutzer künftig eine spezielle Aktion per API oder Webinterface an, kümmern die einzelnen oCIS-Microservices sich im Hintergrund darum. Der Anwender muss nicht warten, bis die jeweilige Aktion erfolgreich ausgeführt ist, bevor er den nächsten Befehl absenden kann. Der Effekt findet sich auch auf der Code-Ebene wieder, wo Go anders als PHP echte Nebenläufigkeit beherrscht und damit mehrere Operationen zur selben Zeit ausführen kann.

Obendrein reduziert der Umstieg auf Microservices den administrativen Aufwand von ownCloud. Eine externe Datenbank wie MySQL benötigt die Software künftig nicht mehr – um ihre Datenhaltung kümmern sich eigene Microservices.