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.

Beim Thema Storage erfinden die Entwickler das Rad nicht neu. oCIS setzt unter der Haube auf das Reva-Framework. Es bietet eine definierte API fĂĽr den Zugriff durch Clients und leitet entsprechende Anfragen an verschiedene Storage-Systeme weiter, die sich per Treiber im Hintergrund ankoppeln lassen. Im ownCloud-Kontext kann Reva dabei wahlweise normalen, lokalen Speicher mit POSIX-Dateisystem, Amazons S3 oder das Protokoll des massiv skalierbaren Storage-Dienstes EOS des CERN benutzen.

Weil EOS sich nahtlos in die Breite skalieren lässt, entledigen die Entwickler sich durch seine Nutzung der Skalierbarkeitsprobleme bei oCIS. Kleinere Setups dürften in den meisten Fällen ohnehin weiter auf File-basiertes Speichern setzen – denn der Overhead der Pflege einer ausgewachsenen EOS-Installation ist beträchtlich. Er dürfte sich in den meisten Fällen nur für größere Unternehmen eignen, deren Bedürfnisse ownCloud mit oCIS explizit adressiert.

Um das Webinterface nicht zum Nadelöhr werden zu lassen, ersetzen die Entwickler in oCIS die alte Variante durch einen Rewrite auf Basis von Vue.js. Das macht sich auch in einer (leicht) veränderten Optik bemerkbar; vollständig umgewöhnen werden Anwender sich aller Voraussicht aber nicht müssen – wenn sie nicht ohnehin die diversen Apps für Desktops und mobile Endgeräte nutzen, die per DAV direkt auf ownCloud zugreifen. Weil oCIS auch weiterhin nach außen DAV spricht, funktionieren jene Clients übrigens auch künftig problemlos.

Stilecht bietet ownCloud die Technical Preview von oCIS 1.0 in Form von Containern an. Es genĂĽgt also eine Laufzeitumgebung fĂĽr Podman oder Docker, um die neue Software zu testen. Genau dazu rufen die Entwickler auch auf: Die Technical Preview ist ausdrĂĽcklich nicht fĂĽr den produktiven Einsatz gedacht. Feedback an den Hersteller ist ausdrĂĽcklich erwĂĽnscht, Interessierte finden bei ownCloud eine Installationsanleitung samt Download-Link.

(fo)