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.
- Softwareplattformen aus der Cloud
Platform as a Service (PaaS) erlaubt es, Anwendungen direkt in der Cloud zu betreiben. Was bieten die Dienste von Amazon, Google und Co. in der Praxis? - Google App Engine
- Google App Engine - Nachteile:
o Wesentliche Einschränkungen gegenüber dem üblichen Java-Programmiermodell <br> o Zur Zeit keine relationale Datenbank verfügbar <br> o Durch die Einschränkungen ergeben sich Abhängigkeiten in der Anwendung (Lock In)<br> o Keine Eingriffsmöglichkeiten oder Tuningmöglichkeiten auf Ebene des Web Servers oder Betriebssystems - Google App Engine - Vorteile:
o Automatische Skalierung der Anwendung <br> o Lange am Markt, bewährt - Amazon Beanstalk
- Amazon Beanstalk - Nachteile:
o Zur Zeit noch in Beta und nur in US-East verfügbar <br> o Grobgranulare Skalierung durch zusätzliche Rechner - Amazon Beanstalk - Vorteile:
o Bewährte Cloud-Infrastruktur als Basis<br> o Übliches Enterprise-Java-Programmiermodell (Tomcat Web Server/ relationale Datenbank)<br> o Daher geringe Lock-In-Gefahr auf Code-Ebene<br> o Zahlreiche weitere Services (RDS, SimpleDB, Payment ...) - Cloud Bees
- Cloud Bees - Nachteile
o RUN@Cloud zur Zeit noch in Beta-Phase<br> o Kein echtes Skalierungskonzept<br> o Keine SLAs<br> o Datenbank-Lösung eher rudimentär<br> o Tomcat-Installation kaum anpassbar - Cloud Bees - Vorteile:
o Attraktiv für Entwickler wegen Continuous Integration und Repository Server<br> o RUN@Cloud kostenlos<br> o EC2-Infrastruktur, daher leicht mit Amazon-Angeboten kombinierbar - VMware Cloud Foundry
- VMware Cloud Foundry - Nachteile:
o Zurzeit noch in Beta-Phase<br> o Benötigt Framework-Integration<br> o Public-Cloud-Infrastruktur im Moment nur in den USA - VMware Cloud Foundry - Vorteile:
o Offene Plattform<br> o Open-Source-Lizenz<br> o Services-Konzept<br> o Flexibilität: Nutzung auf Amazon EC2 und lokal möglich, Private Cloud denkbar