Freitag 17 Uhr: Das Notebook ist seit 15 Minuten aus, und ich bin schon fürs Lauftraining umgezogen, um das Wochenende einzuläuten, da klingelt das Telefon. Eine Kollegin und Freundin aus Kalifornien ruft an und erzählt mir stolz von einer neuen Perl-Webanwendung, die sie geschrieben hat. Zum Wochenende möchte sie diese gerne der Welt zur Verfügung stellen, hat aber leider keinen Webspace mehr frei und fragt mich nun, ob ich ihr aus der Patsche helfen könne. Genau die richtige Gelegenheit, um Openshift ein wenig näher an die US-Westküste zu bringen, denke ich mir, und vergesse erstmal das Training, um ihr zu erklären, worum es dabei geht.
Openshift ist ein Platform-as-a-Service (PaaS) Cloud-Service, der diverse Programmiersprachen, Frameworks und Datenbanken unterstützt. Der Zugriff ist auf Basis diverser Level organisiert. Der Einsteiger-Level nennt sich Express und ist für jedermann – und frau – frei zugänglich. Über ein Kommandozeilen-Tool bietet es die Möglichkeit, eigene Applikationen in einer Cloud-Umgebung bereitzustellen. An Programmiersprachen unterstützt die Express-Variante Java 6 EE, Ruby, PHP und Perl. Im Backend kommen MySQL oder SQLite zum Einsatz. 128 MByte Festplattenplatz und 256 MByte RAM sind die zur Verfügung stehenden Hardware-Ressourcen in einer Shared-Hosting-Umgebung.
Wer mehr möchte, muss auf den nächsten Level "Flex" upgraden, braucht dafür jedoch einen Amazon Webservice Account. Damit erhält der Benutzer wesentlich größere Kontrolle über die Umgebung, Shell-Zugriff und er kann seine Java-Applikationen entweder auf einem JBoss- oder Tomcat-Applikationsserver bereitstellen. Der höchste Level "Premium" steht zurzeit noch nicht zur Verfügung, soll aber im Kürze erscheinen. Hier ist das das komplette Programm eines Cloud-Anbieters verfügbar. Beispielsweise lassen sich Standalone-Programme ohne Webfrontend bereitststellen, ein Templating-System für virtuelle Systeme hilft bei der Skalierung, und auch die Anzahl der unterstützten Programmiersprachen ist hier größer.
Für meine kalifornische Kollegin und ihre Perl-Applikation reicht aber erst mal der Express-Level. Also erkläre ich ihr alle Schritte, die zum Einstieg notwendig sind. Als Erstes wäre da die Registrierung auf der Openshift-Webseite [1]. Um die notwendigen Client-Tools zu installieren, fehlt noch ein zusätzliches Software-Repository. Für Fedora 14/15 oder RHEL 6 zeigt Listing 1 die entsprechende Yum-Repository-Datei, für andere Systeme (auch Windows oder Mac OS X) finden sich auf der Openshift-Website Installationsanleitungen. Die Konfigurationsdatei ist unterhalb von »/etc/yum.repos.d/
«
abzuspeichern, beispielsweise als »openshift.repo
«
.
Listing 1
Yum-Konfiguration für Openshift-Tools
Schließlich holt »yum install rhc
«
die Client-Tools auf den eigenen Rechner. Damit es richtig losgehen kann, ist im ersten Konfigurationsschritt ein Domänenname zu generieren. Dieser wird nachher Teil der Applikations-URL und ist innerhalb der Openshift-Umgebung eindeutig. Man ist also gut beraten, einen sinnvollen Namen zu wählen. Listing 2 zeigt ein Beispiel.
Listing 2
Eigene Domäne in Openshift
Nun muss der Cloud-Service nur noch wissen, wie die eigene Applikation heißt und in welcher Sprache sie geschrieben ist. Hier ist neben der Sprache selbst auch die Version derselbigen anzugeben. Die Idee dabei ist, dass die Plattform später einmal mehrere Versionen derselben Sprache unterstützt, und dann natürlich wissen muss, welche Version die Applikation verwendet. Es wäre unschön, wenn auf der Serverseite beispielsweise Python 2 zum Einsatz käme, das Programm aber in Python 3 realisiert ist. Wie auch beim Erzeugen der Domäne reicht auch für das Anlegen der eigenen Applikation ein einziger Befehl (Listing 3).
Listing 3
Anlegen der Applikation
Das war's auch schon fast. Wie Listing 3 zeigt, ist zum Abschluss nun noch die eigentliche Applikation auf den Server zu schieben. Da als Versionkontrollsystem Git [2] zum Einsatz kommt, stellt auch dies kein großes Problem dar und gelingt in wenigen Schritten. Beim Anlegen der Applikation hat das Tool auch einen Git-Projektordner erzeugt. Darin enthalten ist eine vorgeschriebene Directory-Struktur. Beispielsweise nimmt der Unterodner »spaceuploader/perl
«
die eigenen Code-Dateien auf. In der Datei »deplist.txt
«
lassen sich Perl-Module auflisten, die zum Betreiben der Anwendung notwendig sind, diese werden dann automatisch installiert.
Eine Readme-Datei gibt Auskunft über die weiteren Ordner und deren Aufgabe. Die eigenen Dateien sind schließlich mit »git commit -a -m "first commit for world domination"
«
in das Git-Repository zu befördern. Ein »git push origin master
«
übertragt die Daten vom lokalen in das entfernte Git-Repository. Somit steht die Anwendung nun über die oben genannte URL der ganzen Welt zur Verfügung.
Der Aufruf von »rhc-user-info
«
zeigt noch einmal die Details zur Anwendung an, also beispielsweise die HTTP- und Git-URL, sowie das verwendete Framework, in diesem Fall also Perl 5.10. Möchte man die einmal erzeugte Anwendung im Nachgang modifizieren, also beispielsweise eine Datenbank hinzufügen oder den Webdienst stoppen oder eventuell auch dauerhaft von der Bildfläche verschwinden lassen, so gelingt dies mit dem Tool »rhc-ctl-app
«
.
Geschafft: Die Anwendung ist online, meine Kollegin ist glücklich und kann über das Wochenende nach Herzenslust neue Versionen ihrer Applikation in die Cloud stellen. Ich bin mir sicher, dass meine Hilfe dazu nicht mehr notwendig ist. Ich wünsche viel Spaß und verabschiede mich von ihr und kann endlich loslaufen – heute stehen allerdings nur 15 km auf dem Programm, ich sollte also schnell wieder zurück sein. (ofr)
Infos
Das PaaS-Angebot von Red Hat unterstützt auf vielfachen Wunsch nun die neueste Ruby-Version.