Neue Cloud Plattform: Open Source, offen und flexibel

Cloud Foundry: VMwares PaaS Ansatz

Eberhard Wolff

Basis für Cloud-Systeme ist Virtualisierung – VMwares Kernkompetenz. Nach der Akquise von SpringSource war klar, dass neue Produkte für Java und mit einem Fokus auf Entwickler erscheinen würden. Jetzt hat VMware die Cloud-Foundry-Plattform vorgestellt, die genau auf diesen Markt abzielt.

Während virtualisierte Rechner als IaaS (Infrastructure as a Service) bezeichnet werden, ist Cloud Foundry ein PaaS (Platform as a Service). Im Wesentlichen ist ein PaaS ein Art Cloud-Application-Server: Anwendungen können direkt deployt werden, während bei einem IaaS zunächst eine Ablaufumgebung mit einem Application Server, einem Betriebssystem und einer Datenbank installiert werden muss.

Cloud Foundry steht unter cloudfoundry.com als öffentlicher PaaS zur Verfügung: Nach einer Registrierung für einen momentan noch kostenlosen Account kann man damit beginnen, Anwendungen in die von Cloud Foundry angebotene Cloud zu deployen. Dieses Angebot unterscheidet sich deutlich von VMwares anderem Geschäft: Bisher hat VMware nur Virtualisierungslösungen entwickelt und verkauft. Diese wurden von VMwares Kunden unter anderem auch für den Betrieb öffentlicher Clouds genutzt. Nun ist VMware in diesem Markt selber aktiv und lässt sich damit auf einen Wettbewerb mit anderen Anbietern von öffentlichen Clouds wie Amazon, Google oder Microsoft ein, die mit dem kosteneffizienten Betrieb großer Rechenzentren viel Erfahrung haben und bereits erhebliche Summen in den Aufbau eines weltweiten Netzes von Rechenzentren gesteckt haben.

Die Software, die zum Aufbau von Cloud Foundry genutzt wird, ist als Open-Source-Projekt unter cloudfoundry.org nach Apache Lizenz verfügbar. Damit steht es jedem offen, eine eigene PaaS-Cloud mit dieser Software aufzubauen. In den Projekten findet sich auch eine Anleitung, wie man auf einem Ubuntu-Rechner eine Cloud installieren kann [6]. Später soll auch eine diesem Ansatz sehr ähnliche „Micro Cloud“ kostenlos zur Verfügung stehen. Dabei handelt es sich um eine virtuelle Maschine, die mit VMware Player oder VMware fusion auf einem Rechner betrieben werden kann, um Anwendungen zu testen und zu entwickeln. Aber das Prinzip trägt weiter: So hat RightScale bereits gezeigt, wie Cloud Foundry auf der Amazon-EC2-Infrastruktur laufen kann. Die entsprechenden Images stehen den Rightscale-Nutzern auch schon zur Verfügung.

Technik

Aber was verbirgt sich überhaupt technisch hinter Cloud Foundry? Wesentliche Grundlage sind zunächst sogenannte Services. Dabei handelt es sich um Infrastrukturkomponenten – zurzeit MySQL und die NoSQL-Datenbanken Redis und MongoDB. Sie werden von einer Cloud-Foundry-Umgebung angeboten und verwaltet. Cloud Foundry kann Instanzen solcher Services erzeugen und auch wieder löschen. Wird eine Anwendung in Cloud Foundry deployt, werden die Services an die Anwendung gebunden. Dazu muss die Verbindung mit Hilfe der Cloud-Foundry-Werkzeuge entsprechend hergestellt werden. Wie kommt aber der Anwendungscode an die Services? Dazu dient die Integration von Cloud Foundry in die verschiedenen Frameworks. Bei Spring wird beispielsweise eine vorhandene DataSource in der Anwendung ohne weiteres Zutun durch eine DataSource für einen MySQL-Service ersetzt. Alternativ steht bei Spring der neue Cloud-XML-Namespace zur Verfügung, wenn andere Services benötigt werden oder die Konfiguration beeinflussen werden soll [2].

Ähnliche Unterstützung gibt es auch für Grails [1] und Spring Roo [3]. Java-Anwendungen werden auf einem Tomcat installiert. Man kann also auch Java-Anwendungen auf Cloud Foundry installieren, die nicht mit einem der genannten Frameworks erstellt worden sind – dann können aber die durch Cloud Foundry angebotenen Services nicht genutzt werden. Die Framework-Integrationen sind ebenfalls als Open Source verfügbar, so dass die Unterstützung weiterer Frameworks nichts schwierig sein sollte. Im Wesentlichen müssen aus einer Umgebungsvariable die Services ausgelesen und dann in der Anwendung verfügbar gemacht werden [7].

Auch der Code, der die verschiedenen Services in Cloud Foundry integriert, liegt als Open Source vor, so dass die Unterstützung weiterer Services leicht möglich ist. Cloud Foundry ist auch außerhalb der Java-Welt nutzbar: Die Liste der unterstützten Frameworks umfasst auch Node.js (JavaScript) und die Ruby-Frameworks Sinatra und Rails.

Die Nutzung der Infrastruktur kann mit dem Kommandozeilen-Werkzeug vmc [4] erfolgen, oder man nutzt die Integration in die Eclipse-basierte SpringSource Tool Suite [5]. Dann steht Cloud Foundry genauso wie jeder andere Server in der Eclipse-Server-Ansicht zur Verfügung, und die Services können ebenfalls dort verwaltet werden.

Fazit

Cloud Foundry ist technisch interessant, da es sich durch den Dienste-Ansatz wesentlich von anderen PaaS-Lösungen unterscheidet. Dadurch vermeidet man direkte Bezüge zur konkreten Service-Installation wie z.B. IP-Adressen, so dass die Anwendungen ohne Code-Änderungen in unterschiedlichen Cloud-Foundry-Umgebungen wie einer lokalen Test-Micro-Cloud und einer Produktions-Cloud laufen können. Nachteil ist die dafür notwendige Unterstützung in den Frameworks, die aber recht einfach zu bewerkstelligen ist. Außerdem steht mit Cloud Foundry eine gute Basis für ein privates PaaS bereit, was in Fällen praktisch ist, in denen eine öffentliche Cloud aus Datenschutzgründen oder wegen der Sicherheit nicht genutzt werden kann. Bisher gibt es im Bereich der privaten PaaS nur sehr wenige Angebote, so dass Cloud Foundry hier eine interessante Marktnische füllt.

Aus strategischer Sicht ist Cloud Foundry interessant, weil VMware sich nun in die Liste der Public-Cloud-Anbieter einreiht und gleichzeitig eine Grundlage schafft, auf der jetzt schon andere Firmen wie Rightscale ebenfalls ihre Angebote basieren lassen können. Der Cloud-Bereich für Java-Anwendungen bleibt also hochspannend.

Eberhard Wolff (Twitter: @ewolff) arbeitet als Architecture & Technology Manager für die adesso AG. Seine Schwerpunkte liegen auf Cloud-Technologien, Enterprise Java u.a. mit Spring und Software-Architekturen.
Geschrieben von
Eberhard Wolff
Kommentare

Schreibe einen Kommentar

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