1 Java in der Cloud
Die nächste Plattform für Ihre Anwendung?
Gerade mithilfe von PaaS-Umgebungen können Anwendungen sehr einfach in die Cloud gebracht werden. Aber was sind PaaS-Lösungenüberhaupt und wie erleichtern sie dem Entwickler das Leben? Sollten Sie sich jetzt mit diesem Thema auseinander setzen? Als Einleitung stellt dieses erste Kapitel die Konzepte von Cloud und vor allem PaaS genauer vor.
Eine Anwendung in Produktion zu bringen, ist ein kompliziertes Unterfangen: Server müssen gekauft werden, darauf muss ein Betriebssystem installiert und konfiguriert werden– sowie Application Server, Datenbanken und weitere Infrastruktur. Das ist aufwändig und dauert lange– nicht selten Monate. Recht leicht schleichen sich dabei auch Fehler ein. Dieser Prozess muss dann auch noch mehrfach durchlaufen werden: Neben der Produktionsumgebung benötigt ein Entwicklerteam auch Test- und Staging-Umgebungen– und die sollten möglichst identisch zur Produktionsumgebung sein. Oft gibt es aber subtile Unterschiede, die dann die Fehlersuche richtig interessant machen. Und natürlich gibt es immer mindestens eine Umgebung weniger, als benötigt wird. PaaS-Lösungen bieten eine vollständige Umgebung schlüsselfertig an. Alle so erzeugten Umgebungen sind garantiert identisch– und für eine neue Umgebung reicht ein Maus-Klick. Und zusätzlich lösen sie klassische Probleme wie Skalierbarkeit und Ausfallssicherheit. Dabei sind die Cloud-Lösungen auch noch kostengünstig, weil nur die jeweils genutzte Kapazität abgerechnet wird.
Cloud-Modelle
Aber was ist PaaS, also Platform as a Service,überhaupt genau? Kurz gesagt handelt es sich um eine spezielle Cloud-Lösung. Cloud steht für ein IT-Modell, bei dem die Investition in Lösungen durch den Bezug von Services ersetzt wird. Zunächst unterscheiden sich die Cloud-Lösungen danach, was als Service angeboten wird:
- Bei SaaS (Software as a Service) wird Anwendungssoftware angeboten. Konkrete Beispiele sind Google Docs oder Microsoft Office 365, die Office-Software anbieten. Ebenso gibt es beispielsweise mit Gmail ein sehr bekanntes Cloud-Angebot für die Nutzung von E-Mail. Für Entwickler ist SaaS relevant, weil auch sie eine solche Lösung nutzen können– und natürlich müssen auch SaaS-Lösungen von jemandem entwickelt werden. Ebenso können auf der Basis von Standard-Software-Lösungen wie Salesforce.com oder Microsoft Dynamics eigene Lösungen entwickelt werden.
- IaaS (Infrastructure as a Service) bietet sozusagen virtuelles Metall an– also Rechner, Netzwerke und Speicher. Wesentliche Basis-Technologie ist Virtualisierung: Wenn für jeden Kunden eine eigene Infrastruktur angeboten werden soll, kann das kaum mit echter Hardware realisiert werden.
- PaaS (Plattform as a Service) bietet wiederum eine Plattform an, auf der Anwendungen ausgeführt werden können. Entwickler müssen die Anwendung nur noch deployen, den Restübernimmt die Plattform.
Für Entwickler sind IaaS als Gegenentwurf zu klassischen Servern und PaaS als„Cloud-Application-Server“ besonders interessant. Worin besteht nun der Unterschied und Vorteil gegenüber den klassischen Ansätzen? Ein wichtiges Merkmal hat das NIST (National I>nstitute of Standards and Technology) [1] in seine Definition der Cloud erwähnt: Demnach ist ein Self-Service-Portal ein essenzieller Teil jeder Cloud-Lösung. Das mag sich auf der ersten Blick trivial anhören. Aber in der Praxis ist es nicht ungewöhnlich, ohne Cloud auf einen neuen Server Tage, Wochen oder Monate zu warten. Das gilt oft auch dann, wenn er wegen Virtualisierung lediglich durch den Betrieb mit einigen wenigen Befehlen eingerichtet werden muss. Der Grund für den langen Durchlauf sind die manuellen Schritte, aber oft auch organisatorische Probleme, weil Prozesse nicht auf die Möglichkeiten durch Virtualisierung angepasst worden sind. Beispielsweise sind oft noch manuelle Schritte notwendig oder es müssen Genehmigungen verschiedener Vorgesetzter eingeholt werden.
Bei einer IaaS-Cloud-Lösung steht der benötigte Server hingegen dank durchgängiger Automatisierung innerhalb weniger Minuten zur Verfügung– oder bei einer PaaS-Lösung sogar die Ablaufumgebung. Und wer die Umgebung benötigt, kann den Prozess dafür durch das Self-Service-Portal selber starten. Durch eine Cloud-Lösung wird es also wesentlich einfacher, Anwendungen zu deployen und in Produktion zu bekommen. Es ist auch einfacher möglich, zusätzliche Kapazitäten zu schaffen, um eine größere Anzahl Nutzer zu unterstützen. Die damit einhergeh