Marktübersicht Cloud Computing: Softwareplattformen aus der Cloud Detail - Computerwelt

Computerwelt: Aktuelle IT-News Österreich


05.05.2011 Eberhard Wolff*

Marktübersicht Cloud Computing: Softwareplattformen aus der Cloud

Platform as a Service (PaaS) erlaubt es, Anwendungen direkt in der Cloud zu betreiben. Was leisten die Dienste von Amazon, Google und Co. in der Praxis?

In einer IaaS-Cloud (Infrastructure as a Service) wie Amazon EC2 stehen nur "nackte" Rechner und Storage zur Verfügung. Soll eine selbst geschriebene Anwendung darauf zum Laufen gebracht werden, muss eine Infrastruktur wie zum Beispiel ein Application Server installiert werden.

Die Alternative dazu ist die Nutzung einer PaaS (Platform as a Service) im Rahmen des Cloud Computing. Bei einer solchen Plattform ist die Installation zusätzlicher Infrastruktur nicht notwendig. Man kann Anwendungen direkt in der Cloud installieren. Außerdem bietet sie Lösungen für den Betrieb und das Monitoring der Anwendung. Das Skalieren der Anwendung bei Lastspitzen erfolgt automatisch.

PaaS bieten oft proprietäre Services mit fertigen Funktionalitäten an, die bei der Entwicklung von Anwendungen hilfreich sind. Beispielsweise enthält die Amazon-Cloud-Plattform einen Service, über den per Kreditkarte mit einem Kunden abgerechnet werden kann. Durch die Nutzung solcher Services ist man allerdings sehr von der PaaS abhängig, da Anwendungen nicht so einfach auf andere Plattformen migriert werden können, die solche Services nicht anbieten.

Bei der Entwicklung von Enterprise-Anwendungen stellt die Java-Plattform die wichtigste Ablaufumgebung dar. Bisher war das Angebot an PaaS-Plattformen für Java begrenzt, aber in den letzten Monaten sind viele neue Angebote aufgetaucht. Daher lohnt sich ein Blick auf den Markt in diesem Bereich.

GOOGLE APP ENGINE Google hat bereits 2008 damit begonnen, eine PaaS anzubieten und war damit ein Pionier im Java-PaaS-Markt. Neben Java unterstützt die Google App Engine (GAE) auch Python-Anwendungen. Es gibt ein GAE-Angebot für den Betrieb von Anwendungen, die im Internet jedem zur Verfügung stehen sollen. Die Kosten hängen davon ab, wie viel Bandbreite, Storage, CPU-Zeit usw. genutzt wird. Zum Testen gibt es ein freies Kontingent. Es ist auch möglich, ein Budget für eine Anwendung festzulegen, um so die Kontrolle über die Kosten zu haben. Für Anwendungen, die nur innerhalb einer Firma verwendet werden sollen, gibt es Google App Engine for Business. Dabei erfolgt die Abrechnung pro Anwendung und Benutzer und es gibt andere SLAs.

Google App Engine treibt den PaaS-Ansatz recht weit: Benutzer haben keinen Zugriff auf das zugrundeliegende Betriebssystem. Anwendungen können auf einem oder vielen Servern laufen, ohne dass der Entwickler es bemerkt. Lastverteilung und Skalierung der Anwendung sind transparent. Um dies zu ermöglichen, hat GAE ein sehr eingeschränktes Programmiermodell. Die auf GAE nutzbaren Java-Klassen sind in einer White List beschrieben. So ist es beispielsweise nicht möglich, neue Threads zu starten; der Zugriff auf das File-System ist nicht erlaubt und ein Request darf nicht mehr als 30 Sekunden Bearbeitungszeit erfordern. Durch diese Einschränkungen ist die Nutzung einiger Java-Frameworks gar nicht möglich oder nur sehr aufwändig zu realisieren. Google bietet eine Liste von Frameworks an, die unter GAE laufen.

Als Datenbank steht eine NoSQL-Datenbank zur Verfügung. Eine relationale Datenbank ist angekündigt, soll dann aber nur im Rahmen von Google App Engine for Business zur Verfügung stehen. Daher muss die Persistenz-Architektur einer Anwendung, die auf GAE laufen soll, entsprechend angepasst werden. Eine Portierung auf eine andere Infrastruktur wird dadurch natürlich erschwert.

GAE bietet zahlreiche zusätzliche Services wie einen Cache, XMPP-basiertes Instant Messaging, Bildverarbeitung oder die Speicherung von Blobs. Außerdem kann von GAE aus natürlich auf andere Google Services zugegriffen werden, die über Web Services-APIs angesprochen werden können. Es gibt auch eine Integration in die Google-User-Verwaltung. Für Entwickler stehen darüber hinaus Plugins für Eclipse zur Verfügung, so dass ein Deployment von dieser Entwicklungsumgebung direkt auf GAE möglich ist. Mit Hilfe des GAE SDKs (Software Development Kit) können Anwendungen auch testweise lokal installiert werden und GAE kann mit dem SDK auch von der Kommandozeile aus gesteuert werden. Ein einfaches Monitoring ist ebenfalls für Anwendungen verfügbar.

Google App Engine auf einen Blick Vorteile: • Automatische Skalierung der Anwendung • Lange am Markt, bewährt

Nachteile: • Wesentliche Einschränkungen gegenüber dem üblichen Java-Programmiermodell • Zur Zeit keine relationale Datenbank verfügbar • Durch die Einschränkungen ergeben sich Abhängigkeiten in der Anwendung (Lock In) • Keine Eingriffsmöglichkeiten oder Tuningmöglichkeiten auf Ebene des Web Servers oder Betriebssystems

AMAZON BEANSTALK Amazon bietet schon seit 2006 verschiedene Cloud Services an. Dazu zählen virtuelle Rechner (Elastic Compute Cloud, EC2), Storage (Simple Storage Service, S3), aber auch komplexere Dienste wie schlüsselfertige MySQL-kompatible Datenbanken (Relational Database Service, RDS).

Mit Beanstalk ("Bohnenranke") hat Amazon ein Angebot bereitgestellt, das die Installation und den Betrieb von Java-Anwendungen auf der Amazon-Plattform deutlich vereinfacht. Die Anwendungen werden dabei auf EC2 installiert. Auf dem virtuellen Rechner läuft ein Linux mit der OpenJDK-Java-Implementierung und dem Java-Web-Server Tomcat. Um mit Lastspitzen umzugehen, wird ein Load Balancer sowie der Amazon Auto Scaling Service verwendet.

Er startet bei hoher Last automatisch zusätzliche EC2-Instanzen. Dabei können unterschiedliche Indikatoren für die Last genutzt werden, wie die Latenzzeit eines Request oder die CPU-Last auf den einzelnen Rechnern. Die Skalierung durch das Starten zusätzlicher Rechner ist recht grobgranular: Wenn die Lastgrenze eines Rechners erreicht ist, muss gleich eine ganze neue Instanz gestartet werden, während sich beispielsweise bei Google App Engine mehrere Kunden einen Rechner teilen können.

Die verschiedenen Versionen einer Anwendung werden auf S3 gespeichert, so dass sie später wiederhergestellt werden können. Es gibt außerdem ein Eclipse Plugin, das den Zugriff auf einen Beanstalk-Server so einfach macht wie sonst den Zugriff auf einen lokalen Tomcat. Ein Kommandozeilen-Werkzeug steht ebenfalls zur Verfügung.

Das System kann an eigene Anforderungen angepasst werden: Die Parameter für den Tomcat können modifiziert werden, ein Login auf die laufende Maschine ist möglich. Sogar die Images für die Rechner können modifiziert werden, so dass praktisch jede erdenkliche Anpassung möglich ist.

Der Einstieg in die Plattform ist sehr einfach: Beanstalk bietet beim ersten Login die Installation einer Beispielanwendung an und innerhalb weniger Minuten steht ein laufendes System zur Verfügung. Für das Ablegen der Daten steht der Relational Database Service bereit, so dass ein klassisches Enterprise-Java-Programmiermodell verwendet werden kann. Alternativ sind auch NoSQL-Lösungen wie Amazon SimpleDB verfügbar und es gibt zahlreiche andere Dienste, die teilweise auch von anderen Firmen auf der EC2-Infrastruktur angeboten werden.

Amazon Beanstalk selbst ist kostenlos. Die verwendeten EC2-Instanzen und die anderen Amazon-Dienste wie S3 sind bezahlpflichtig. Allerdings bietet Amazon Neukunden für ein Jahr ein großzügiges Kontingent an kostenloser Nutzung an, so dass die Infrastruktur ausführlich getestet werden kann, bevor sie für produktive Anwendungen genutzt wird.

Diesen Artikel

Bewertung:

Übermittlung Ihrer Stimme...
Noch nicht bewertet. Seien Sie der Erste, der diesen Artikel bewertet!
Klicken Sie auf den Bewertungsbalken, um diesen Artikel zu bewerten.
  Sponsored Links:

IT-News täglich per Newsletter

E-Mail:
Weitere CW-Newsletter

CW Premium Zugang

Whitepaper und Printausgabe lesen.  

kostenlos registrieren

Aktuelle Praxisreports

(c) FotoliaHunderte Berichte über IKT Projekte aus Österreich. Suchen Sie nach Unternehmen oder Lösungen.

Zum Thema

  • ectacom GmbH

    ectacom GmbH Aus- und Weiterbildung, IT-Asset- und Lizenzmanagement, Übernahme von Softwareprojekten, Datenschutz, Antiviren- und Virenscanner Software, Backup und Recovery Systeme, Firewalls,... mehr
  • Rittal GmbH

    Rittal GmbH Netzwerk-Management, Netzkomponenten, Zugangs- und Zutrittskontrolle, Unterbrechungsfreie Stromversorgung (USV), Überwachungssysteme, Notfalls-Rechenzentren, Netzwerk- und Systemüberwachung,... mehr
  • Dicom Computer VertriebsgesmbH

    Dicom Computer VertriebsgesmbH WLAN-Systeme, VPN, Netzwerk-Systeme (LAN, MAN, WAN), Netzwerk-Management, Netzwerk-Diagnose-Systeme, Netzkomponenten, Mobile Lösungen und Applikationen,... mehr
  • adesso Austria GmbH

    adesso Austria GmbH Öffentliche Verwaltung, Grundstoffindustrie, Großhandel, Finanzdienstleistungen, Fertigung, Produktion und Konstruktion, Druck- und Verlagswesen, Qualitätssicherung,... mehr

Hosted by:    Security Monitoring by: