Suche
PaaS by Red Hat

OpenShift – JBoss in den Wolken

Torsten Fink, Florian Schneble

Als Java-EE-Entwickler fühlt man sich von der Cloud-Entwicklung etwas im Stich gelassen. Möchte man die neuen Möglichkeiten, insbesondere die automatische flexible Skalierbarkeit, für seine Anwendungen benutzen, ist man gezwungen, proprietäre Bibliotheken der jeweiligen Cloud-Anbieter einzusetzen. Damit verliert die Anwendung sofort die Herstellerunabhängigkeit, die Java EE ermöglicht. Alternativ kann man Cloud dann nur noch als outgesourctes Rechenzentrum benutzen, was insbesondere für interne Anwendungen häufig unattraktiv ist. Die neue Cloud-Plattform OpenShift von Red-Hat tritt an, diese Situation zu verbessern. Sie unterstützt, basierend auf dem Jboss-Applikationsserver, eine Java EE-basierte Cloud-Plattform und abstrahiert von unterschiedlichen Cloud-Anbietern.

In den Wolken eingesperrt

Das wolkige Cloud Computing erlebt aktuell die Transition aus der initialen Hype-Phase in die Phase der ersten nutzbaren Produkte. Mit Amazon EC2 und der Google Application Engine (GAE) stehen prominente Angebote für das Betreiben von Anwendungen in der Cloud zur Verfügung. Auch haben sich neben den beiden großen Anbietern viele weitere angesiedelt, wie z.B. Windows Azure, CloudBees und Force.com.

Für einen Java-EE-Entwickler gestaltet sich die Situation aber immer noch schwierig. Benutzt er die Cloud-Angebote als reine Infrastrukturanbieter (Infrastructure as a Service, IaaS), dann hat er im Prinzip nicht viel mehr als einen extern gemieteten Server, der etwas flexibler in den Nutzungs- und Skalierungsmöglichkeiten ist. Die gesamte Verwaltung seiner Anwendungsinfrastruktur, also konkret des Java-EE-Applicationservers, muss er händisch vornehmen. Die konkreten Werkzeuge, um eine IaaS zu benutzen, sind dabei von Anbieter zu Anbieter unterschiedlich. Als Folge davon erfordert ein Wechsel eines IaaS-Dienstleisters entsprechende Aufwände in der Anpassung der Projektverwaltung.

Alternativ zu der Java EE ist es möglich, spezifische Frameworks der Cloud-Anbieter für die Anwendungsentwicklung zu benutzen, wie der Datastore der GAE oder Amazon Elastic MapReduce. Dies ermöglicht eine komfortable Nutzung der neuen Cloud-Möglichkeiten, insbesondere eine einfache Integration in die Cloud-Infrastruktur und eine inhärente flexible Skalierbarkeit der Anwendung. Allerdings bindet dieser Ansatz die Anwendung an den Cloud-Anbieter und führt damit zu einer gefährlichen Abhängigkeit, dem bekannten Lock-In. Java EE soll als Industriestandard genau dieser Abhängigkeit entgegen wirken.

Gewünscht ist daher eine Cloud-Infrastruktur, die erstens Java-EE-Anwendungen unterstützt, und es zweitens erlaubt, einfach zwischen unterschiedlichen Cloud-Anbietern zu wählen. Genau dies ist der Ansatz von OpenShift, dem neuen Platform-as-a-Service-(PaaS-)Angebot von Red Hat.

JBoss AS als wolkige Plattform

Ende 2010 hat die Open-Source-Firma Red Hat den kommerziellen Cloud-Anbieter Makara übernommen. Makara hat eine Plattform angeboten, die Betrieb und Verwaltung von Java- und PHP-Anwendungen auf unterschiedlichen Cloud-IaaS-Umgebungen ermöglicht, wie z.B. EC2 und VMware. OpenShift basiert auf dem Makara-System und erweitert es insbesondere um die Unterstützung von Java-EE-Anwendungen, die in einem Jboss-Applikationsserver laufen. Aktuell wird als angekoppelte IaaS-Plattform nur EC2 angeboten, weitere Alternativen sollen aber folgen.

Im Mai 2011 wurde OpenShift im Testbetrieb gestartet [1]. Geplant sind drei unterschiedliche Varianten:

  • Express: Die Express-Variante wird kostenfrei angeboten. Es stehen nur PHP, Ruby und Python als Plattformen zur Verfügung, und die Verwaltungs- und Monitoringmöglichkeiten sind stark eingeschränkt.
  • Flex: Diese Variante ist kostenpflichtig. Als zusätzliche Plattform wird eine JBoss-Umgebung mit Java-EE-6-Funktionalität angeboten. Für den Betrieb stehen komfortable Werkzeuge mit grafischen Benutzeroberflächen bereit.
  • Power: Diese Variante wird weitere Funktionalitäten anbieten, insbesondere die Unterstützung von Binärkomponenten.

Aktuell stehen nur die Varianten Express und Flex für eine erste Evaluation bereit. Es ist davon auszugehen, dass sich OpenShift noch stark verändern wird, bevor es für den produktiven Betrieb einsatzfähig ist. Da die Grundprinzipien aber erhalten bleiben werden, lohnt sich auch jetzt schon eine Betrachtung.

Eine Beispielanwendung zum Testen

Zur Evaluation einer neuen PaaS-Umgebung wie OpenShift benötigt man auch ein entsprechendes Beispielprojekt. In unserem Fall wird uns dafür eine einfache Geschäftsanwendung für einen Ticketverkauf zu Diensten sein. Diese soll Möglichkeiten bieten, Datensätze aus einer MySQL-Datenbank auszulesen, oder auch neue Datensätze hinzuzufügen sowie selbige anzuzeigen.

Um den Aufwand für die Anwendung möglichst klein zu halten, ist sie mit seam-gen, einem Tool des Seamframeworks, automatisch für eine vordefinierte Datenbankstruktur erstellt worden. Die Komponenten der Anwendung sind eine einfache Oberfläche mit JSF (JavaServer Faces, Abb.1), einige Session Beans, sowie eine JPA-basierte Persistenzschicht und eine MySQL-Datenbank.

Abb. 1: Die Oberfläche der TestanwendungAbb. 1: Die Oberfläche der Testanwendung (Vergrößern)

Geschrieben von
Torsten Fink, Florian Schneble
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.