Cloud-Apps kostenlos hosten: Red Hat OpenShift Express

Mit Red Hats neuer Plattform können Entwickler ihre Apps ohne Kosten in der Cloud anbieten. ZDNet erklärt den PaaS-Dienst, zeigt Beschränkungen auf und gibt ein Tutorial, wie man in zirka 45 Minuten ein komplettes Wiki aufsetzt.

Red Hat hat im Mai sein Platform-as-a-Service-System OpenShift in einer Developer Preview gestartet. Entwickler können damit auf Basis von RHEL virtuelle Instanzen anfordern, auf denen sich Webapplikationen hosten lassen.

Red Hat unterscheidet zwischen den Produktvarianten Express, Flex und Power. Wer einen Einstieg in das Hosting oder die Entwicklung von Webapps sucht, für den ist OpenShift Express interessant, denn es ist vollkommen kostenlos.

Streng genommen kosten auch die Varianten Flex und Power nichts, allerdings legt Red Hat die Instanzen bei einem Cloud-Provider an – derzeit ausschließich Amazon EC2. Wer OpenShift Flex nutzen möchte, muss einen gültigen Amazon-Zugriffsschlüssel an Red Hat übermitteln. Die Preise für Instanzen, Speicher und Traffic werden dem Benutzer von Amazon in Rechnung gestellt. Openshift Power ist noch nicht verfügbar.

Das kostenlose OpenShift Express hat gegenüber OpenShift Flex allerdings einige Einschränkungen:

  • Es können nur PHP-, Ruby-, Perl- und Python-Apps gehostet werden.
  • Es gibt keine Server-Datenbank wie MySQL, man bleibt auf File-Datenbanken wie Sqlite beschränkt.
  • Die App ist nur unter dem Domainnamen rhcloud.com verfügbar. Eigene Domains lassen sich nicht verwenden.
  • In der Developer-Preview-Phase kann nur eine App pro Account gehostet werden. Das Limit will Red Hat später anheben.
  • Die Bedienung erfolgt über die Kommandozeile. Ein Webinterface ist nur für OpenShift Flex und Power verfügbar.

Als ärgerlich werden viele Nutzer das Fehlen einer MySQL-Datenbank empfinden, insbesondere, da sie viele Standardanwendungen, etwa Joomla, zwingend voraussetzen. Andere Anwendungen wie Wikimedia oder Drupal kommen mit Sqlite aus. Man kann sie daher unter OpenShift Express betreiben.

Wegen der mangelnden Skalier- und Wartbarkeit von Sqlite bleibt man aber auf wenige Nutzer beschränkt. Ein Vereinswiki, auf dem sich bis zu 50 Nutzer tummeln, sollte aber auch mit Sqlite kein Problem sein.

[Update 13.07.2011 15.55 h]
Kurz nach der Fertigstellung dieses Artikels hat Red Hat angekündigt, dass MySQL 5.1 ab sofort auch in OpenShift Express verfügbar ist. Eine kurze Anleitung befindet sich in der Ankündigung. Ferner wurde das Limit auf fünf Apps pro Red-Hat-Konto angehoben.

ZDNet hat MySQL getestet: Es funktioniert noch nicht hundertprozentig. MySQL versucht temporäre Tabellen im Verzeichnis /tmp anzulegen, was in der OpenShift-Express-Plattform nicht erlaubt ist. Hier muss Red Hat noch nachbessern. Das soll laut Red-Hat-Engineer Mike McGrath innerhalb der nächsten Wochen passieren. Derzeit empfiehlt ZDNet, nur Sqlite-Anwendungen zu testen.
[/Update]

Um OpenShift Express nutzen zu können, benötigt man zunächst einen kostenlosen Red-Hat-Account, der zu nichts verpflichtet. Nach der Anmeldung kann man die Kommandozeilentools herunterladen.

Installation der Client-Tools unter unixoiden Betriebssystemen (Linux und Mac OS X)

Wer Red-Hat-Linux oder eine verwandte Distribution, etwa Fedora oder CentOS, nutzt, muss nur die Datei openshift.repo herunterladen und nach /etc/yum.repo.d kopieren. Anschließend lassen sich die OpenShift-Tools mit sudo yum install rhc installieren. Notwendige Pakete wie ruby und git werden automatisch mit installiert.

Bei anderen Linux- und Unix-Varianten muss man sich selbst darum kümmern, dass ruby (1.8 oder neuer), rubygems und git installiert werden. Unter Debian und Ubuntu lässt sich das beispielsweise durch sudo apt-get install ruby rubygems git erreichen.

Unter Mac OS X ab 10.6 ist ruby bereits vorinstalliert. Man benötigt lediglich git. Wer die Apple-Entwicklungsumgebung Xcode installiert hat, braucht nichts weiter zu tun. Für alle anderen gibt es git auch separat als Google-Code-Projekt.

Wenn die notwendigen Pakete installiert sind, verwendet man folgende Befehle, um die Openshift-Tools zu installieren:

sudo gem install json_pure (nur bei Mac OS oder FreeBSD, aber nicht bei Linux)
sudo gem install rhc

Installation unter Windows

Unter Windows ist die Prozedur deutlich umständlicher, da die Client-Tools eine einigermaßen unix- und posixoide Umgebung benötigen. Red Hat empfiehlt dazu das hauseigene Cygwin mindestens mit den Paketen openssh, ruby, make, gcc und git.

Die Installation von Cygwin kann recht zeitaufwändig sein. Wer sich ohnehin mit Hosting in einer Unix-PaaS-Umgebung beschäftigen möchte, ist gut beraten, sich unter Windows auf jeden Fall Cygwin zu installieren. Mehr Details gibt der ZDNet-Artikel "Unix-Power für Windows: Cygwin 1.7 rüstet den PC auf ".

Rubygems ist für Cygwin nicht als Paket verfügbar und muss als Archiv (ZIP oder tar.gz) heruntergeladen und ausgepackt werden. Anschließend installiert man Rubygems mit ruby <Pfad zu den ausgepackten Dateien>/setup.rb install. Danach lassen sich Client-Tools wie unter Unix auch mit gem install rhc einrichten.

Theoretisch sollte es auch möglich sein, die Services für Unix von Windows zu nutzen, sofern man fertig portierte Versionen von git, ruby und rubygems dafür findet. Das hat ZDNet aber nicht getestet.

Einrichten des OpenShift-Express-Kontos

Obwohl die Installation je nach Betriebssystem recht aufwändig sein kann, sind die weiteren Schritte bis zur ersten gehosteten Applikation recht einfach. Als erstes richtet man die Domäne ein. Das geschieht mit dem Befehl

rhc-create-domain -n <Domäne> -l <Red-Hat-Kontoname>

Die Domäne wird Teil der URL unter der die gehostete App später erreichbar ist. Sie hat die Form http://<Anwendung>-<Domäne>.rhcloud.com. Der Red-Hat-Kontoname ist die E-Mail-Adresse, unter der sich man bei Red Hat registriert hat.

Danach lässt sich die erste gehostete Cloud-App einrichten. ZDNet entschließt sich im Test dazu, ein Wiki zu implementieren und nutzt daher den Befehl

cd ~
rhc-create-app -a wiki -t php-5.3

wiki ist der Name der Anwendung und php-5.3 der Typ der Applikation. Es muss php-5.3 gewählt werden, da die MediaWiki-Software in PHP geschrieben ist. Man kann kurz testen, ob die App richtig angelegt wurde. Falls als Domäne zdnet und als App-Name wiki gewählt wurde, ruft man im Browser die URL http://wiki-zdnet.rhcloud.com auf.

Nach dem Anlegen einer Cloud-App auf OpenShift wird zunächst eine Info-Seite angezeigt (Screenshot: ZDNet).
Nach dem Anlegen einer Cloud-App auf OpenShift wird zunächst eine Info-Seite angezeigt (Screenshot: ZDNet).

Als nächstes soll die Demo-App, die Red Hat vorinstalliert hat, durch eine eigene ersetzt werden. Die Wikimedia-Software lässt sich mit

cd ~
wget http://dumps.wikimedia.org/mediawiki/1.16/mediawiki-1.16.5.tar.gz

herunterladen. Eigentlich ist Version 1.17 aktuell. Sie verweigert aber in der OpenShift-Umgebung die korrekte Installation. Ein späterer Upgrade auf 1.17 ist jedoch möglich.

Um die Installationsdateien auszupacken, geht man wie folgt vor:

cd ~/wiki/php
tar zxf ~/mediawiki-1.16.5.tar.gz --strip-components=1

Danach werden die Dateien zum git-Repository hinzugefügt, committet und auf den Cloud-Server geschoben. Das geht mit den Befehlen

cd ~/wiki/php
git add -A
git commit -a -m "Irgendein sinnvoller Kommentar"
git push

Nun ruft man die URL http://wiki-zdnet.rhcloud.com im Browser erneut auf. Statt der Demo-App von OpenShift Express sollte nun folgendes Bild erscheinen:

Das Wiki kann jetzt über sein Web-Interface konfiguriert werden (Screenshot: ZDNet)
Das Wiki kann jetzt über sein Web-Interface konfiguriert werden (Screenshot: ZDNet)

Als nächstes sind die Felder für die Installation auszufüllen. Alle Felder mit einem roten Kommentar sind Pflichtfelder. Ihre Bedeutung ist selbsterklärend. Als Datenbank kommt nur Sqlite in Frage, da die anderen Datenbanken unter OpenShift Express nicht zur Verfügung stehen. Als Datenverzeichnis für Sqlite wählt man /var/lib/libra/b061eb0f291747948200d1430b38db00/wiki/data und nicht den vorgegebenen Eintrag /var/lib/libra/b061eb0f291747948200d1430b38db00/wiki/repo/php/../data.

Nun kommt es zu einem kleinen Problem, da MediaWiki verlangt, die angelegte Datei LocalSettings.php aus dem Unterverzeichnis config ins PHP-Root zu verschieben. OpenShift Express sieht grundsätzlich nicht vor, dass Programm-Dateien vom Hosting-System wieder auf den lokalen Rechner zurückgespielt werden. Daher greift man zu dem Trick, einen Snapshot anzulegen. Das geht mit

cd ~
rhc-snapshot -a wiki

Um die Datei LocalSettings.php in das richtige Verzeichnis auszupacken, verwendet man

cd ~/wiki/php
tar xvfz ~/wiki.tar.gz ./wiki/repo/php/config/LocalSettings.php --strip-components=5

Da aus Sicherheitsgründen auch noch das Config-Verzeichnis entfernt werden soll, wird der Befehl

git rm config/*

genutzt. ZDNet will nun noch ein eigenes Logo verwenden und kopiert eine eigene Logo-Datei mit dem Namen logo.png nach ~/wiki/php/skins/common/images/logo.png.

Anschließend wird die Datei LocalSettings.php editiert und die Variable $wgLogo auf $wgStylePath/common/images/logo.png gesetzt. Man kann noch weitere Anpassungen vornehmen, etwa $wgDefaultSkin von monobook auf vector setzen, um denselben Skin zu bekommen, der derzeit von Wikipedia verwendet wird. Einsteiger sollten allerdings zunächst einmal die Wikimedia-Dokumentation lesen, bevor sie zu viele Dinge ändern.

Zu guter Letzt fügt man LocalSettings.php und logo.png zum git-Repository hinzu und lädt die Dateien hoch. Das geht mit den Befehlen.

cd ~/wiki/php
git add LocalSettings.php skins/common/images/logo.png
git commit -a -m "Irgendein sinnvoller Kommentar"
git push

Das fertige Wiki kann jetzt benutzt und mit Inhalten gefüllt werden (Screenshot: ZDNet).
Das fertige Wiki kann jetzt benutzt und mit Inhalten gefüllt werden (Screenshot: ZDNet).

Geht man erneut mit dem Browser auf die URL http://wiki-zdnet.rhcloud.com, so erscheint das betriebsbereite Wiki. Man kann sich mit dem Namen WikiSysop und dem gewählten Password anmelden.

Fazit

Wer kleinere Cloud-Projekte hosten möchte, findet mit OpenShift Express dazu eine gute Plattform, die nichts kostet. Allerdings sind enge Grenzen gesetzt. So können etwa keine Server-Datenbanken wie MySQL genutzt werden. Man bleibt auf File-Datenbanken wie Sqlite beschränkt.

Auch zum Testen von Hosting-Projekten, die später auf einen leistungsfähigeren Cloud-Cluster gebracht werden soll, eignet sich Plattform.

Neueste Kommentare 

Eine Kommentar zu Cloud-Apps kostenlos hosten: Red Hat OpenShift Express

  • Am 13. Oktober 2011 um 20:27 von BeanMe

    Meinung geändert
    Erst dachte ich, OpenShift Express (oder OpenShift allgemein) wäre eine gute Lösung. Als Windows-Nutzer fühle ich mich, wie bei Vielem, das mit Open beginnt, gelinde gesagt verarscht.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *