dummies
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur ebooks mit Firmenlizenz anzeigen:

 

PaaS - Die wichtigsten Java Clouds auf einen Blick - Die wichtigsten Java Clouds auf einen Blick

Bernhard Löwenstein, Stephan Müller, Eberhard Wolff, Holger Sirtl, Michael Seemann, Thomas Louis, Ti

 

Verlag entwickler.press, 2013

ISBN 9783868024623 , 79 Seiten

Format ePUB

Kopierschutz Wasserzeichen

Geräte

4,99 EUR

Für Firmen: Nutzung über Internet und Intranet (ab 2 Exemplaren) freigegeben

Derzeit können über den Shop maximal 500 Exemplare bestellt werden. Benötigen Sie mehr Exemplare, nehmen Sie bitte Kontakt mit uns auf.


 

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 einhergehende Flexibilität ist der Hauptvorteil von Cloud-Umgebungen.

Oft wird der Kostenvorteil als ein wesentlicher Grund für die Nutzung von Cloud-Lösungen ins Feld geführt. Zu dem trägt ein Faktor wesentlich bei: Durch die Flexibilität kann der Nutzer genau die Ressourcen mieten und bezahlen, die er tatsächlich gerade benötigt. Es muss also kein Sizing geben, in dessen Folge so viele Maschinen gekauft werden, wie voraussichtlich höchstens benötigt werden. Stattdessen können der Anwendung gerade so viele Kapazitäten zur Verfügung gestellt werden, wie sie benötigt. Das ist zum einen billiger, aber auch flexibler, weil das System viel höher skalieren kann. Ein weiterer Grund für die Kosteneffizienz liegt darin, dass Cloud-Anbieter sehr große Infrastrukturen betreiben. Dadurch sind Effizienzgewinne möglich, wie sie in einem normalen Rechenzentrum kaum zu realisieren sind. So können ganz andere Ansätze zur Stromversorgung genutzt werden, was den Energieverbrauch und damit die Kosten senkt.

Public vs. Private Cloud

Übrigens ist das auch der Grund, warum der Kostenvorteil praktisch nur in einer öffentlichen Cloud-Infrastruktur realisiert werden kann, den so genannten Public Clouds. Es ist auch möglich, eine Cloud im eigenen Rechenzentrum zu betreiben (Private Cloud). Dann lassen sich aber kaum die notwendigen Größenordnungen erreichen, um die Kosteneffizienz eine Public Cloud zu erreichen. Die Flexibilität – also das schnelle Zurverfügungstellen von Umgebungen – bleibt aber erhalten. Der wesentliche Vorteil einer Private Cloud ist, dass die Umgebung im eigenen Rechenzentrum steht und daher in Bezug auf Sicherheit wie auch regulatorischer Bedingungen einer klassischen Umgebung entspricht. Daher ist eine solche Lösung in vielen Bereichen vorzuziehen.

Public Clouds unterscheiden sich dadurch, wo sie Rechenzentren anbieten: Das ist in Hinblick auf den Datenschutz interessant. Außerdem können Rechenzentren, die weniger weit vom Nutzer entfernt sind, bessere Latenzzeiten bieten und so einen besseren Zugriff ermöglichen. Oft nutzen die PaaS Clouds auch etablierte IaaS-Angebote als zugrundeliegende Infrastruktur, was eine möglichst breite Verfügbarkeit erleichtert.

Die Nutzung von Cloud-Angeboten bietet aber auch einige Herausforderungen: So können in der Cloud einzelne Server ausfallen. Die Cloud setzt typischerweise auf einfache Hardware, die nicht hoch verfügbar ist. Gerade für Entwickler von Enterprise-Systemen scheinen solche Umgebungen ein Albtraum zu sein: Wer schon einmal den Ausfall eines wichtigen Produktionsserver erlebt hat, kann sich zunächst nicht vorstellen, dass auf solchen Infrastrukturen überhaupt komplexere oder gar geschäftskritische Systeme sinnvoll betrieben werden können. Aber die Verfügbarkeit einzelner Server ist nicht etwa so niedrig, weil es nicht anders geht, sondern weil es gar nicht notwendig ist, die Server hochverfügbar zu machen. Wenn ein Server ausfällt, kann ja innerhalb kürzester Zeit ein neuer als Ersatz gestartet werden. Es können Server auch in mehreren, weltweit verteilten Rechenzentren genutzt werden und Last auch zwischen den Rechenzentren verteilt werden. Solche Möglichkeiten bieten sonst nur sehr teure Rechenzentrums-Infrastrukturen. Letztendlich erreicht die Software so eine höhere Verfügbarkeit: Es kann mit dem Ausfall einzelner Systeme umgehen, während hochverfügbare Hardware die Systeme in einer trügerischen Sicherheit wiegt: Der Ausfall der Hardware ist ja dennoch nicht auszuschließen. Da das System auf den Ausfall der Hardware aber nicht ausgerichtet ist, kann dann ein Ausfall schwerwiegende Konsequenzen haben.

Am Ende sind Systeme, die mit dem Ausfall der Hardware rechnen und geeignet reagieren können, im Vorteil: Sie können auf kostengünstiger Standardhardware laufen und bieten gleichzeitig ein extrem hohe Verfügbarkeit. Systeme von Google und Amazon sind genau mit diesem Ansatz implementiert.

Herausforderungen in der Cloud

Auf den Entwickler und Architekten von Cloud-Systemen kommen nun aber einige signifikante Herausforderungen zu:

  • Dem Ausfall einzelner Server muss begegnet werden – und zwar ohne Ausfall des Gesamtsystems.
  • Die Anwendung muss bei höherer Last mehr Server starten. Diese Server sollten idealerweise sofort einsatzbereit sein und auch gleich einen Teil der Last übernehmen.
  • Und bei niedriger Last müssen Server gestoppt werden, weil anderenfalls zu hohe Kosten auflaufen. Die restlichen Server müssen dann die aktuelle Last und Daten übernehmen.

Genau an dieser Stelle setzen PaaS-Lösungen an: Entwicklern und Betrieb wird eine Plattform angeboten, auf der die Anwendungen lediglich deployt werden müssen. Das Management der Server und der Umgang mit Skalierung und Ausfall werden von der PaaS-Plattform übernommen. Das ist eine erhebliche Erleichterung. Typischerweise kümmert sich also die PaaS-Umgebung darum, auf der Cloud-Infrastruktur die Anwendung zum Laufen zu bringen. Dazu muss gewährleistet sein, dass Server zur Verfügung stehen und darauf auch die passende Infrastruktur wie...