Uberspace 7 - Episode 5

Posted by moritz on Monday, October 17, 2016

Es geht [gut voran] 1, mit unserer neuen Arbeitsweise sind wir inzwischen gut vertraut und sie ist uns in Mark und Bein übergegangen. Wir wollen euch nun mal kurz unsere Bürotür öffnen und euch zeigen, woran wir gerade arbeiten und wie die nähere Zukunft aussieht.

Wir tauschen unser HTTPS-Frontend aus

Inzwischen ist es spruchreif: Wir tauschen unser HTTPS-Frontend aus. Bisher haben wir auf [Pound] 3 gesetzt, mit Uberspace 7 setzen wir auf [nginx] 4. Das bringt folgende Vorteile:

WebSockets

Im Gegensatz zu Pound hat nginx keinerlei Probleme mit [Websockets] 6.

Der bisherige [Workaround] 8, für die Kommunikation über WebSockets einen Port öffnen zu müssen, fällt also weg. Das sieht nicht nur hübscher aus in der URL, sondern klappt auch besser mit den meisten Firmen-Firewalls.

HTTP/2

Im Gegensatz zu Pound hat nginx keinerlei Probleme mit [HTTP/2] 7.

HTTP/2 hat zwar [nicht nur Freunde] 9, die Performance [spricht allerdings für sich] 10.

Apache optional

Wenn wir eh schon nginx im Einsatz haben, braucht es nicht unbedingt einen Apache dahinter. Viele User fragen uns, ob wir als Webserver auch nginx im Angebot haben. Der Bitte werden wir in Zukunft nachkommen, Apache wird allerdings der Default bleiben - schlicht, weil die meisten Content Management Systeme eine Konfiguration via .htaccess von Haus aus mitbringen und die Konfiguration für nginx meistens noch etwas Mehrarbeit erfordert.

UX auf der Shell

Wir gehen das Thema User Experience auf der Shell an und möchten euch die Versionswahl von allen offiziell angebotenen Tools so einfach wie möglich machen. Es wird also kein Editieren von [Versionsdateien] 11 mehr geben, ebenso fällt die Wahl über [Shell-spezifische Konfigurationsdateien] 12 weg. In Zukunft erledigt ihr das alles über uberspace-select-version <feature> <version> und wir kümmern uns um alles, was hinter den Kulissen notwendig ist, um die Version Shell-übergreifend zu konfigurieren. Im Fall von PHP kümmern wir uns auch darum, dass der Webserver Bescheid weiss.

Beta

In [Episode 2] 5 haben wir es ja schon angerissen: Es wird eine öffentliche Beta geben. Folgende Features werden wir für die Beta-Phase implementieren:

Webserver

Als Webserver setzen wir für Uberspace 7 auf Apache 2.4. Es wird wie gewohnt einen DocumentRoot unter /var/www/virtual/$USER geben.

MySQL Datenbanken

Es wird MySQL 5.5 kompatible Datenbanken geben.

Mail

Hier übernehmen wir für den Start das [Setup von unseren CentOS 6-Hosts] 13.

PHP

Mit der Uberspace 7 Beta werden wir PHP 7 als Standard einsetzen, PHP 5.6 wird per uberspace-select-version wählbar sein.

Doku

Es wird eine komplett [neue Doku] 2 geben, die Uberspace-versionsspezifisch und zweisprachig aufgebaut wird. [Let’s see how that goes] 14.

Und dann…?

… werden wir den Rest (node.js, Ruby, Python, Erlang, …) häppchenweise nachreichen und dabei die Erkenntnisse einfließen lassen, die wir durch den Beta-Betrieb gesammelt haben.

Wann?

Sobald die Features für die Beta in einem getesteten, stabilen und vorzeigbaren Zustand sind. Ein Teil ist bereits fertig, wir arbeiten mit zwei Entwicklern an der Umsetzung. Durch den Anspruch, den wir uns für Uberspace 7 gesetzt haben, das ganze diesmal wirklich richtig und mit Mitteln der agilen Softwareentwicklung zu bauen, haben wir uns auch neue Programmiersprachen ins Haus geholt, die nicht jeder im Schlaf beherrscht. Der Start war etwas holperig, die Grundsteine sind gelegt, der Prototyp ist fertig. Genauer mögen wir es an dieser Stelle nicht sagen.