Anmelden


Entwicklung einer Datei-Cloud: Go für Go

PHP war für ownCloud lange das Werkzeug der Wahl zur Entwicklung ihrer Datei-Cloud. Aber die Skriptsprache PHP erfüllt nicht mehr die Anforderungen für die Entwicklung einer modernen Content-Collaboration-Applikation. Zeit für eine Alternative: die Programmiersprache Go.

Im Laufe der Zeit ist PHP durch zahlreiche Anpassungen, etwa die Objektorientierung, den einheitlichen Zugriff auf Datenbanken, einen integrierten Webserver oder eine bessere Speicherverwaltung immer leistungsfähiger geworden. PHP-Beschleuniger und -Compiler haben das Tempo der Skript-Ausführung weiter erhöht.

Aber all diese Verbesserungen können nicht darüber hinwegtäuschen, dass PHP Limitierungen insbesondere hinsichtlich der erzielbaren Performance und Skalierbarkeit aufweist. Mittlerweile gibt es mit Go eine neue Sprache, die für die moderne Applikationsentwicklung deutliche Vorteile bietet.

ownCloud setzt Go für die derzeitige Neu-Entwicklung ihrer Dateiaustauschplattform ownCloud Infinite Scale ein – und hat aus den bisherigen Erfahrungen eine Reihe von Vorteilen der Programmiersprache zusammengestellt:

  • Cross-Plattform. Go läuft nativ auf allen Betriebssystemen. Das Tool-Set von Go bringt hervorragende Werkzeuge für das Cross-Kompilieren mit, das heißt, die schnelle und unmittelbare Bereitstellung der Applikation für viele verschiedene Plattformen.
  • Geschwindigkeit. Für Go wird kein Skript-Interpreter und keine virtuelle Laufzeitumgebung benötigt. Das macht Go ähnlich schnell wie zum Beispiel die Programmiersprache C, die normalerweise für besonders hohe Leistungsfähigkeit eingesetzt wird.
  • Nebenläufigkeit. Go bietet von Haus aus die Möglichkeit, mehrere Berechnungen parallel durchzuführen. „Das macht es für Entwickler leichter, rechenintensive Operationen zu parallelisieren und damit eine performante Applikation zu entwickeln“, ergänzt Felix Böhm, CTO bei ownCloud.
  • Syntax. Go ist sehr einfach zu lernen und hat viele Parallelen mit der weit verbreiteten Programmiersprache C. Entwicklerinnen und Entwickler können von ihrem bisherigen Tool-Stack einfach ein- oder umsteigen. „Es macht viel Spaß, in Go zu programmieren“, betont Alex Unger, Senior Software Developer bei ownCloud.

Ökosystem. Die Sprache wurde 2009 von Google-Teams präsentiert, ist ein Open-Source-Projekt und profitiert vom Engagement der Community. Viele Tools für Cloud-native Projekte sind in Go geschrieben, etwa die Container-Lösungen Docker und Kubernetes. „Go macht ownCloud attraktiv für eine weltweite Entwickler-Community“, bringt es Felix Böhm auf den Punkt. 

Go kann auf viele weitere Features zurückgreifen, etwa auf automatische Speicherbereinigung und eine direkte, flexible Implementierung von Objektorientierung. Go-Anwendungen sind performanter und verbrauchen deutlich weniger Serverressourcen – damit sinken sowohl die Hardwarekosten als auch der Energieverbrauch.

Die neue ownCloud-Generation ownCloud Infinite Scale setzt noch einen drauf und speichert die Metadaten der Dateien direkt mit den Daten im jeweiligen Storage-Modul und benötigt daher keine Datenbank mehr. Unter anderem dadurch ist ownCloud Infinite Scale auf Skalierbarkeit optimiert – in der Anzahl der Dateien, der Nutzer und der verwendeten Instanzen, aber auch hinsichtlich der möglichen Dateigrößen. 

„Die Entwicklerinnen und Entwickler bei ownCloud sind begeistert von dem Umstieg und freuen sich über die gute Zusammenarbeit mit der äußerst professionellen Go-Community“, so Felix Böhm.