Webanwendungen mit OpenShift

© © skvoor; 123RF

Auf Knopfdruck

Webapplikationen unkompliziert in die Cloud schicken: Mit dem neuen PaaS-Service Openshift gelingt dies mit nur wenigen Handgriffen.
Egal, um welchen Dienst es sich dreht, den Benutzern geht es immer zu langsam. Der Schwerpunkt des ADMIN-Magazins 05/2011 verrät, mit welchen Tools man ... (mehr)

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.

Cloud-Service für lau

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« .

Auf die Plätze …

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)

Der Autor

Thorsten Scherf arbeitet als Senior Consultant für Red Hat EMEA. Er ist oft als Vortragender auf Konferenzen anzutreffen. Wenn ihm neben der Arbeit und Familie noch Zeit bleibt, nimmt er gerne an Marathonläufen teil.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Red Hat Cloud "Openshift" bietet Ruby 1.9

Das PaaS-Angebot von Red Hat unterstützt auf vielfachen Wunsch nun die neueste Ruby-Version.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019