Suche
EnterpriseTales

Die Cloud für jedermann?

Lars Röwekamp und Matthias Weßendorf

Mit Claus und Claudia in die Cloud! Solch schöne Szenarien suggeriert ein großer Softwarehersteller, um sein neues „Cloud-fähiges“ Betriebssystem besser an den Mann oder an die Frau zu bringen. Auch Unternehmen setzen verstärkt auf Software as a Service (SaaS), beispielsweise Google Apps. Doch wie sieht es mit der eigenen, Java-basierten Software aus?

Meine Infrastruktur,

Infrastructure as a Service (IaaS) ist inzwischen ein alter Hut. Es stellt jedoch nach wie vor eine interessante Möglichkeit für Unternehmen dar, die Kosten für die benötigte Infrastruktur deutlich zu senken. Die Bezahlung erfolgt auf Basis der tatsächlich angefallenen Rechenzeit und des aufgekommenen Datenvolumens. Dienstleister wie Amazon stellen zusätzlich vorgefertigte Konfigurationen bereit, die die Nutzung der Infrastruktur extrem einfach gestalten. Neben verschiedenen Linux-Derivaten (SuSE, Oracle, Ubuntu etc.) stehen zusätzliche Softwarekomponenten wie Ruby on Rails, Apache Hadoop, MySQL oder Weblogic zur Verfügung [1]. Nach der erfolgreichen Konfiguration des virtuellen Rechners kann das Deployment der eigenen Java-Anwendungen beginnen.

… meine Plattform,

Die Bereitstellung der Infrastruktur durch Dienstleister bietet große Vorteile, wie Erreichbarkeit, Ausfallsicherheit oder ganz pragmatisch die Minimierung der Kosten für die eigene Infrastruktur. Das Platform-as-a-Service- (Paas-)Paradigma geht noch einen Schritt weiter: Es setzt oberhalb des IaaS-Gedankens auf und bietet eine vollständig integrierte Entwicklungs- und Laufzeitumgebung an, beispielsweise Salesforces Force.com [2] oder Google App Engine [3]. Letztere wollen wir uns einmal genauer ansehen.

Ursprünglich unterstützte das Google-Angebot nur die Programmiersprache Python. Seit knapp zwei Jahren stellt Google auch Java als Plattform bereit [4]. Damit erreicht der Suchmaschinengigant eine weitaus größere Anzahl an Programmierern. Neben Java können auch JVM-basierte Sprachen (JRuby, Groovy oder auch Scala) genutzt werden.

Der Java-basierte Dienst beruht auf einer modifizierten Version des Jetty-Servlet-Containers. Für die Persistenz der Anwendungsdaten setzt Google auf seine Bigtable-Implementierung, auf die via JPA, JDO oder per nativem API zugegriffen werden kann. Als IDE wird Eclipse unterstützt. Der eigentliche Mehrwert der GAE im Vergleich zu seinen Mitbewerbern besteht darin, dass verschiedene Google-Dienste, wie Authentifizierung von „Google-Accounts“ oder Nutzung der Google-E-Mail-Infrastruktur, innerhalb der Plattform nutzbar sind. Durch Merkmale wie diese unterscheidet sich ein PaaS-Angebot deutlich von der einfachen Bereitstellung der Infrastruktur. Allerdings ist die Nutzung der AppEngine mit ein paar Einschränkungen verbunden ([5], [6]).

… mein Tomcat!

Seit Januar 2011 gibt es weitere Alternativen für die Nutzung eines Servlet-Containers innerhalb der Cloud. Amazon stellt mit Beanstalk einen kostenlosen Tomcat as a Service oberhalb der AWS-Infrastruktur bereit [7]. Die Konfiguration der Infrastruktur geschieht automatisch mit dem Erstellen einer Tomcat-Instanz. Das anschließende Deployment der Java-Anwendung erfolgt über eine Management Console, ein Eclipse SDK oder via Web Service. Beanstalk passt in jeden Entwicklungsprozess, und die Tatsache, dass ein Tomcat als Server genutzt wird, erleichtert ebenfalls das lokale Testen. Neben Amazon kommt auch das Startup CloudBees mit einem Tomcat-Dienst daher [8]. CloudBees stellt mit RUN@Cloud nicht nur eine Tomcat-Laufzeitumgebung bereit (bald auch JBoss), sondern bringt mit seinem DEV@Cloud-Programm auch Teile des Entwicklungsprozesses in die Cloud. Das Unternehmen bietet den Continuous-Integration- (CI-)Server Jenkins als Cloud-Dienstleistung (Jenkins as a Service) an. Daneben kann ein Kunde ebenfalls seine Maven Repositories bei CloudBees hosten. Für die Zukunft plant das Unternehmen weitere Dienste wie private SVN/Git Repositories.

Der Ansatz, einen Tomcat innerhalb der Cloud zu betreiben, ist äußerst interessant. Laut einer Umfrage ist Apache Tomcat der Container mit den meisten Installationen [9]. Diese Tatsache ist nicht verwunderlich, denn innerhalb des Tomcat kann eine große Anzahl unterschiedlicher Java-Anwendungen deployt werden. Die Bandbreite reicht von einfachen Servlet-basierten Anwendungen bis hin zu umfangreicheren Frameworks wie Spring oder sogar Java EE 6.

Everything as a Service?!?

Nach zahlreichen IaaS- und PaaS-Angeboten sowie der Verlagerung von Teilen des Entwicklungsprozesses in die Cloud, kann man als Entwickler gespannt auf neue XYZ as a Service-Dienste warten. Derzeit gibt es zum Beispiel auch einige Datenbanken (Database as a Service), die innerhalb der Cloud nutzbar sind. CloudBees bietet eine MySQL-Datenbank an. Amazon glänzt hier mit einem umfangreicheren Angebot. Neben verschiedenen relationalen Datenbanken [10] steht auch das in Erlang geschriebene Amazon SimpleDB bereit. Aber auch für andere Systeme, wie Apache CouchDB, gibt es verschiedene Hosting-Partner. In naher Zukunft werden weitere NoSQL-Systeme wie HBase oder Cassandra ebenfalls als „as a Service“ angeboten werden.

Fazit

Waren der Entwicklungsprozess und die Code-Sourcen eines Unternehmens bis vor wenigen Jahren noch eine Art heiliger Gral, der niemals die eigenen Hallen verlassen durfte, so hat in der jüngeren Vergangenheit ein Umdenken stattgefunden. Für den Entwicklungsprozess einer Unternehmung hat die Cloud durchaus Vorteile. Betriebskosten werden minimiert, und auch die Kosten für die Realisierung neuer Ideen (Stichwort: Startup) halten sich in Grenzen. Ein Problem jedoch entsteht, wenn eines der Datacenter ausfällt. Hier ist man auf die Arbeit anderer angewiesen, die man vorher, bei der Bereitstellung der Infrastruktur oder der Plattform, gerne in Anspruch genommen hat. Ein weiteres Problem kann entstehen, wenn die Cloud aus kommerziellen oder politischen Gründen das Hosting der eigenen Daten und Anwendungen verweigert. Welche Auswirkungen das am Ende haben kann, konnte jüngst am Beispiel WikiLeaks verfolgt werden.

Lars Röwekamp ist Geschäftsführer der OpenKnowledge GmbH und berät seit mehr als zehn Jahren Kunden in internationalen Projekten rund um das Thema Enterprise Computing (Twitter: @mobileLarson).

Matthias Weßendorf arbeitet für die Firma Kaazing. Dort beschäftigt er sich mit WebSocket, HTML5 und weiteren Themen rund um das „Next Generation Web“. Matthias bloggt regelmäßig auf http://matthiaswessendorf.wordpress.com (Twitter: @mwessendorf).

Geschrieben von
Lars Röwekamp und Matthias Weßendorf
Kommentare

Schreibe einen Kommentar

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