Cloud Computing

Leistungsstarke PaaS-Lösungen für Anwendungsentwickler

04.11.2013 von Diego Wyllie
PaaS-Lösungen (Plattform-as-a-Service) versprechen hochverfügbare, sichere Anwendungsplattformen in der Cloud, die sich leicht managen und beliebig skalieren lassen. Damit werden Softwarehersteller in die Lage versetzt, sich besser auf ihr Kerngeschäft fokussieren zu können.

Auf dem Cloud-Markt sind PaaS-Dienste zwar noch nicht so stark etabliert wie etwa SaaS- (Software-as-a-Service) oder reine IaaS-Lösungen (Infrastruktur-as-a-Service). Doch im PaaS-Markt ist Musik drin. Wie der Marktforschungsspezialist Gartner prognostiziert, sollen dieses Jahr die weltweiten PaaS-Erlöse bereits 1,5 Milliarden Dollar betragen, 2016 sollen es 2,9 Milliarden werden. Im Vergleich zum gesamten Cloud-Markt sprechen wir noch von einem kleinen Marktsegment. Doch gegenüber dem Jahr 2011, in dem die Erlöse auf rund 900 Millionen Dollar beziffert wurden, entspreche diese Entwicklung einem beachtlichen Wachstum von 167 beziehungsweise 322 Prozent.

PaaS hat das Potenzial, die Internet-Economy zu revolutionieren. Noch nie war es so einfach und günstig, eine sichere, hochverfügbare und beliebig skalierbare Webanwendungsplattform aufzubauen, wie es heutzutage der Fall ist. Dank moderner PaaS-Lösungen kann die Hardwareschicht theoretisch vollständig abstrahiert werden. Damit können sich Softwareentwickler besser auf die Business-Logik ihrer Anwendungen konzentrieren, während die vielen administrativen und oft komplexen Aufgaben, die mit dem Betrieb einer professionellen Anwendungsplattform zusammenhängen, von den Anbietern übernommen werden. Um Server-Updates, Patches oder Sicherungen müssen sich Kunden also keine Sorgen mehr machen. Zudem werden dabei spezielle Dienste und Programmierwerkzeuge zur Verfügung gestellt, die ein professionelles Deployment und zentrales Anwendungsmanagement erlauben.

Auf den folgenden Seiten werden einige der wichtigsten PaaS-Lösungen aufgeführt, die sich in der Praxis bereits erprobt haben und den Ton auf diesem zukunftsträchtigen Marktsegment angeben.

Leistungsstarke PaaS-Lösungen für Anwendungsentwickler -
Google App Engine
Mit "Google App Engine" können Software-Entwickler ihre Web-Anwendungen in der selben Infrastruktur ausführen, die der Suchmaschinenriese selbst für seine Online-Dienste verwendet.
Amazon Elastic Beanstalk
Der Cloud-Riese Amazon Web Services stellt seinen Kunden (EC2, S3, etc.) "Elastic Beanstalk" als ein flexible PaaS-Lösung kostenlos zur Verfügung.
Windows Azure
Microsofts Cloud-Plattform, "Windows Azure", beinhaltet eine Reihe interessanter PaaS-Dienste. Diese ist für die Arbeit mit .NET und Visual Studio optimiert. Doch Anwender können auch mit weiteren Technologien wie PHP, Python oder Java arbeiten.
OpenShift
Mit "OpenShift" bietet der Linux-Spezialist Red Hat eine hybride Cloud-Anwendungsplattform, die sowohl öffentliche als auch private Cloud-Deployments unterstützt und auf quelloffener Software basiert.
Heroku
Das Start-Up "Heroku" aus Kalifornien zählt zu den PaaS-Pioniern und wurde von Salesforce.com übernommen. Einst als reine Ruby-Cloud-Plattform konzipiert, unterstützt der Dienst heute unter anderem auch Java, Python, Node.js und Clojure.
Jelastic
"Jelastic" ist eine professionelle Cloud-Hosting-Plattform, die aus Kalifornien stammt und eine einfache Installation, Deployment, Skalierung und Management von Java- und PHP-Anwendungen verspricht.

Google App Engine

Google App Engine: Mit dieser App können Software-Entwickler ihre Web-Anwendungen in der selben Infrastruktur ausführen, die der Suchmaschinenriese selbst für seine Online-Dienste verwendet.
Foto: Diego Wyllie

Einer der populärsten PaaS-Dienste ist die "App Engine" von Google. Damit können Softwareentwickler ihre Webanwendungen in derselben Infrastruktur ausführen, die der Suchmaschinen-Riese selbst für seine Online-Services verwendet. Wenn man also nicht vorhat, mehr Traffic als Gmail oder Google Search zu bewältigen, muss man sich um Skalierbarkeit und Verfügbarkeit wohl keine Sorgen machen.

Unterstützte Technologien: App Engine richtet sich prinzipiell an Entwickler, die entweder mit Java oder mit Python arbeiten. Anfang Oktober hat Google aber eine PHP-Umgebung eingeführt. Diese ist allerdings erst als Beta-Preview verfügbar - für kritische Anwendungen deshalb noch nicht wirklich geeignet.

Hauptmerkmale: Herzstück der Lösung sind die SDKs (Software Development Kit), die für die genannten Programmiersprachen verfügbar sind und als Basis für die Entwicklung und das Deployment von App Engine-Anwendungen dienen. Darüber hinaus kann Googles PaaS-Angebot mit speziellen, leistungsstarken Web-Services punkten, die übliche Programmieraufgaben vereinfachen und beschleunigen können. Dazu zählen beispielsweise Bildbearbeitungsdienste, um Bilder effizient zuschneiden, drehen, spiegeln oder in der Größe verändern zu können. Ebenfalls nützlich ist der E-Mail-Dienst, auf dem Gmail basiert, um transaktionale Systemnachrichten versenden zu können.

Ein weiterer Vorteil: App Engine ist für Anfänger kostenlos. Alle Anwendungen können bis zu 500 Megabyte Speicherplatz einnehmen und so viel CPU und Bandbreite nutzen, dass eine effiziente Anwendung mit ungefähr fünf Millionen Seitenaufrufen pro Monat unterstützt werden kann, heißt es aus Mountain View.

Amazon Elastic Beanstalk

Amazon Elastic Beanstalk: Der Cloud-Riese Amazon Web Services stellt seinen Kunden (EC2, S3, etc.) diese App als ein flexible PaaS-Lösung kostenlos zur Verfügung.
Foto: Diego Wyllie

Eine weitere Alternative, Webanwendungen auf einfache und kosteneffiziente Weise in die Cloud zu deployen, bietet der Cloud-Riese Amazon Web Services (AWS) mit "Elastic Beanstalk". Der 2011 gestartete Service richtet sich an bestehende AWS-Kunden und ist kostenlos. Ein entscheidender Unterschied zu Googles Produkt besteht darin, dass der Anwender mit dieser Plattform weiterhin die volle Kontrolle über die darunterliegende Serverinfrastruktur behält. Wer sich also Flexibilität bei der Konfiguration und Verwaltung seiner Serverinstanzen wünscht, ist bei Amazon besser aufgehoben als bei Google, wo die Serverschicht komplett abstrahiert wird.

Unterstützte Technologien: Gegenüber App Engine punktet Elastic Beanstalk auch mit einer größeren Vielfalt bei den unterstützten Programmiersprachen. Denn neben Java und Python können Amazon-Kunden auch .NET, PHP, Node.js und Ruby einsetzen.

Hauptmerkmale: Neben mehr Flexibilität in Sachen Serverkonfiguration und Anwendungstechnologien wartet Elastic Beanstalk mit verschiedenen kompatiblen Datenbanksystemen auf. So können Anwender selbst entscheiden, ob sie etwa MySQL, SimpleDB, oder einen Microsoft-SQL-Server einsetzen möchten. Da der PaaS-Markt noch in den Kinderschuhen steckt, kann eine solche Flexibilität den Einstieg in die neue Welt des "Cloud Application Hostings" erheblich erleichtern. Zum einen ist es für Anwender einfacher, bestehende Systeme in eine PaaS-Cloud zu migrieren, wenn die eingesetzte Technik weiterhin verwendet werden kann. Zum anderen sind Entwickler nicht gezwungen, neue Frameworks oder SDKs zu lernen , um von dem PaaS-Angebot zu profitieren.

Windows Azure

Windows Azure: Diese Microsoft Cloud-Plattform beinhaltet eine Reihe interessanter PaaS-Dienste. Diese ist für die Arbeit mit .NET und Visual Studio optimiert. Doch Anwender können auch mit weiteren Technologien wie PHP, Python oder Java arbeiten.
Foto: Diego Wyllie

Microsoft spielt eine immer wichtigere Rolle auf dem florierenden PaaS-Markt. Mit "Windows Azure" stellen die Redmonder eine umfangreiche Cloud-Plattform bereit, die eine Reihe interessanter PaaS- und IaaS-Dienste beinhaltet und in der Praxis bereits auf großes Interesse gestoßen ist. Sie zeichnet sich durch ein vielseitiges Angebot aus, das zusätzlich zu den Standard-Features spezielle Dienste und Programmierwerkzeuge im Bereich Big Data, Mobile und Multimedia bereitstellt.

Unterstützte Technologien: Azure ist - wie nicht anders zu erwarten - für die Arbeit mit .NET und Visual Studio optimiert. Doch neben Microsofts eigenen Entwicklungstechnologien können Anwender im Prinzip auch Software deployen, die auf den Programmiersprachen C++, PHP, Ruby, Python, Java oder Node.js basieren.

Hauptmerkmale: Ähnlich wie Google stellt der Softwarekonzern zahlreiche Tools zur Verfügung, die den Entwicklungsaufwand reduzieren können. Dazu zählen zum Beispiel spezielle Back-End-Dienste für mobile Apps, mit denen Entwickler Daten in der Cloud effizient ablegen, Benutzer authentifizieren und Push-Notifications versenden können. Dank der angebotenen nativen SDKs für Windows Phone, Android, iOS und HTML5 können Azure-Kunden nicht nur Windows-Phone-Nutzer adressieren. Wer nicht an Smartphone-Apps, sondern an Big Data interessiert ist, der wird auch nicht enttäuscht werden. Bemerkenswert ist darüber hinaus die Tatsache, dass Microsoft die Azure-Infrastruktur auch als Appliance anbietet. Damit adressiert der Konzern jene Anwender, die von den Vorzügen der Plattform profitieren möchten, aber aus Sicherheits- und Datenschutzgründen ihre Geschäftsdaten und -Anwendungen lieber on-premise in Eigenregie betreiben möchten.

Red Hat OpenShift

OpenShift: Mit diesem Tool bietet der Linux-Spezialist Red Hat eine hybride Cloud-Anwendungsplattform, die sowohl öffentliche als auch private Cloud-Deployments unterstützt und auf quelloffener Software basiert.
Foto: Diego Wyllie

Neben den IT-Riesen Google, Amazon und Microsoft, die mit ihren proprietären Cloud-Lösungen sehr erfolgreich sind, sind auf dem PaaS-Markt auch viele Unternehmen aus der Open-Source-Szene vertreten. Dazu zählt unter anderen der renommierte Linux-Distributor Red Hat. Mit "OpenShift" bietet der Hersteller eine hybride Cloud-Anwendungsplattform, die sowohl öffentliche als auch private Cloud-Deployments unterstützt und auf quelloffener Software basiert. Der komplette Quellcode von "OpenShift Origin", dem Herzstück der Plattform, ist auf Github für jeden Interessierten frei zugänglich. Mit "OpenShift Enterprise" adressiert Red Hat Unternehmen, die die PaaS-Plattform im eigenen Rechenzentrum betreiben möchten.

Unterstützte Technologien: Red Hat will OpenShift als eine anpassungsfähige Plattform positionieren, die Entwicklern die Entscheidung über den einzusetzenden Software-Stack überlässt. Bei den Programmiersprachen werden Java, Python, PHP, Ruby, Node.js und sogar Perl unterstützt. In der Datenbankschicht können verschiedene Server wie MySQL, PostreSQL oder MongoDB zum Einsatz kommen. Auch bei der Auswahl der Runtime-Umgebungen sollten Anwender genügend Spielraum erhalten. So haben Java-Entwickler beispielsweise die Möglichkeit, zwischen JBoss- und Tomcat-Servern zu wählen.

Hauptmerkmale: OpenShift erlaubt es Entwickler also, weiterhin mit ihren gewohnten Frameworks, Programmiersprachen und Tools zu arbeiten, ohne Kompromisse machen zu müssen. Eine OpenShift-Anwendung besteht neben dem eigentlichen Programmcode zusätzlich aus einer Konfigurationskomponente, bei der die erforderlichen Technologien und Dienste definiert werden. Dies erfolgt über eine Online-Management-Konsole, wo die eigenen Applikationen zentral angelegt, konfiguriert und verwaltet werden können. Das Deployment in die OpenShift-Plattform erfolgt mithilfe des immer beliebteren Versionierungssystems Git - ein Ansatz, der von immer mehr Anbietern verfolgt wird.

Heroku

Heroku: Das Start-Up aus Kalifornien zählt zu den PaaS-Pioniern und wurde von Salesforce.com übernommen. Einst als reine Ruby-Cloud-Plattform konzipiert, unterstützt der Dienst heute unter anderem auch Java, Python, Node.js und Clojure.
Foto: Diego Wyllie

Eine weitere leistungsfähige Cloud-Anwendungsplattform ist "Heroku". Das Start-up aus San Francisco, das 2007 gegründet wurde und zu den PaaS-Pionieren zählt, wurde 2010 von Salesforce.com für rund 212 Millionen Dollar übernommen. Seitdem hat sich Heroku kontinuierlich weiterentwickelt und gehört mittlerweile zu den Top-Alternativen in diesem Marktsegment.

Unterstützte Technologien: Zunächst startete Heroku als Cloud-Plattform für Ruby-Anwendungen. Seit der Übernahme durch den SaaS-Spezialisten wurden immer mehr neue Programmiersprachen und Datenbanksysteme hinzugefügt. Heute adressiert Heroku Softwarehersteller, die mit den beliebten Sprachen Java und Python - diese fehlen bei so gut wie keinem PaaS-Produkt - oder mit den moderneren Sprachen Node.js, Clojure oder Scala arbeiten.

Hauptmerkmale: Ähnlich wie Amazons Elastic Beanstalk präsentiert sich Heroku als flexible Plattform, mit der jeder sofort loslegen kann, ohne neue APIs, SDKs oder Frameworks zunächst lernen oder Kompromisse bei der Technikauswahl machen zu müssen. Das Deployment von Anwendungen in Heroku erfolgt - wie bei OpenShift - mithilfe von Git. Interessant ist bei diesem Dienst zudem die Integration zahlreicher Cloud-Tools - etwa des Performance-Analytics-Dienstes New Relic -, die für mehr Produktivität bei der Verwaltung der Anwendungsinfrastruktur sorgen.

Überzeugen kann Heroku auch in Sachen Usability und Interface-Design. So wartet die Software mit einer modernen und optisch ansprechenden Benutzerschnittstelle auf, die dem Vergleich mit jeder Consumer-Anwendung standhalten kann. Auch bei der Nutzung des Online-Dashboards merkt man, dass die Macher viel Wert auf eine möglichst intuitive Benutzererfahrung gelegt haben.

Jelastic

Jelastic: Die Lösung ist eine professionelle Cloud-Hosting-Plattform, die aus Kalifornien stammt und eine einfache Installation, Deployment, Skalierung und Management von Java- und PHP-Anwendungen verspricht.
Foto: Diego Wyllie

"Jelastic" ist eine professionelle Cloud-Hosting-Plattform, die aus Kalifornien stammt und eine einfache Installation, Deployment, Skalierung und Management von Java- und PHP-Anwendungen verspricht. Durch die Fokussierung auf zwei Websprachen ist der Anbieter in der Lage, die Anforderungen und Bedürfnisse der Entwickler, die mit diesen weitverbreiteten Websprachen (Java vor allem im Enterprise-Bereich und PHP im Consumer-Web) arbeiten, besser adressieren zu können.

Unterstützte Technologien: Mit Jelastic können Java-Anwendungen Industriestandards wie Tomcat, Glassfish, Jetty, MySQL, MariaDB, PostgreSQL, MongoDB und CouchDB nutzen. Bei PHP unterstützt das System die HTTP-Server Apache und Nginx sowie die meisten populären PHP-Erweiterungen und -Module, so der Hersteller.

Hauptmerkmale: Eine Besonderheit von Jelastic besteht darin, dass es eine Brücke zwischen Hosting-Providern und Anwendungsentwicklern schlägt. Der Kunde kann aus einer Reihe internationaler Cloud-Provider selber auswählen, wo er seine Webanwendung hosten möchte. In Deutschland ist zum Beispiel Host Europe einer der Service-Provider, der als Jelastic-Partner auftritt. Die Plattform übernimmt die Verwaltung der ausgewählten Infrastruktur und weist zum Beispiel den Anwendungen automatisch die benötigten Hardwareressourcen zu. Ferner können diese mit geringem Konfigurationsaufwand auf verschiedenen Servern verteilt werden, um eine optimale Leistung und Erreichbarkeit sicherzustellen.

Fazit

Alle aufgeführten PaaS-Player bieten leistungsstarke Plattformen und versprechen ein einfaches Cloud-Deployment, professionelles Management und Monitoring, flexible und transparente Kosten sowie theoretisch unbegrenzte Skalierungsmöglichkeiten. Beim näheren Hinschauen merkt man, dass es zwischen den einzelnen Alternativen entscheidende Unterschiede gibt. Zunächst sollten Entwickler ihre eigenen Anforderungen in Bezug auf Programmiersprachen, Server- und Datenbanktechnologien klar definieren und bei den verschiedenen Anbietern genau überprüfen, ob und inwiefern diese unterstützt werden. Vor allem Java-Profis haben hier die Qual der Wahl, da die allermeisten Dienste diese Programmiersprache in den Fokus stellen.

Inwiefern ist man bereit, neue Werkzeuge und Frameworks zu erlernen, bevor man von der PaaS-Lösung profitieren kann? Das ist eine nicht triviale Frage, die bei der Entscheidung nach der richtigen Lösung eine zentrale Rolle spielt. App Engine erfordert beispielsweise eine vergleichsweise lange Einarbeitungszeit, da man mit speziellen SDKs arbeiten muss. So verlockend Googles teils kostenloses Angebot auch ist, Anwender müssen hier Restriktionen in Kauf nehmen. App-Engine-Anwendungen später in eine andere Plattform zu migrieren dürfte mit erheblichem Aufwand verbunden sein. Das Gleiche gilt für Windows Azure. Bei Amazons Elastic Beanstalk, OpenShift oder Heroku gibt es hingegen mehr Freiheit und Flexibilität. Dafür muss man hier zum Teil auf die leistungsstarken Entwicklerdienste, die Google und Microsoft anbieten, verzichten. Welche Lösung die richtige ist, hängt also von vielen einzelnen Faktoren ab, die jeder Anwender für sich analysieren und bewerten sollte. Das PaaS-Angebot wird jedenfalls immer breiter und vielseitiger. (sh/ad//hal)