Platform as a Service beispiel

Beispiel für Platform as a Service

Plattform als Service (PaaS): Entwicklung als Cloud-Service. Bei PaaS handelt es sich um einen Service, der Programmier-Frameworks und Entwickler-Tools zur Entwicklung und Ausführung von Cloud-basierten Anwendungen bereitstellt. mw-headline" id="Bedeutung">Bedeutung[Quelltext bearbeiten]/span> Platform as a Service (PaaS) ist ein Dienst, der eine Computerplattform für die Erstellung von Web-Applikationen in der Wolke bietet. Dabei wird der gesamte Software-Lebenszyklus vom Entwurf über die Programmierung, das Entwickeln, Testen, Bereitstellen und Betreiben von Web-Applikationen über das Web unterstützt. 1][2][3] Die Plattform als Service ist Teil von everything as a service.

1 ] Sie stehen im Wettbewerb, um ihre Kundinnen und Servicepartner von so vielen administrativen Tätigkeiten wie möglich zu entlasten, eine hohe Verfügbarkeit und Verfügbarkeit zu ermöglichen[4], Fix- und Gemeinkosten zu reduzieren, die Nutzer zu flexibilisieren und eine rasche Applikationsentwicklung und einen frühen Marktzugang zu gewährleisten. 2 ][5] Dies erlaubt es den Anwendern, sich mehr auf die tatsächliche Erstellung von Unternehmensanwendungen zu fokussieren, als auf Framework, Middelware oder den Einsatz von erweiterbaren, verlässlichen und kostengünstigen Datenzentren.

PaaS-Angebote sind dagegen für Developer bestimmt und umfassen eine eigene Entwicklerumgebung und einen Behälter für ihre Applikationen und andere Middleware-Services. Auf diese Weise können Sie alle Ihre Applikationen in einer PaaS-Umgebung bereitstellen. Auf diese Middleware-Services kann über eine API zugegriffen werden. Aber es gibt auch SOA-Angebote wie Google Drive[9], die dem Bauherrn eine Schnittstelle bereitstellen.

Die Vorgehensweise ähnelt z.B. der Adaption von Microsoft Word oder Lotus Notes über Makros oder extern über die von der SaaS-Anwendung bereitgestellten APIs. In der Regel müssen PaaS-Entwickler auf die eigentliche SaaS-Anwendung zugreifen, entweder über ein Abonnement oder eine freie Entwicklerstatus. Manche PaaS-Angebote sind nicht für die Anwendungsentwicklung, das Debugging oder das Testing geeignet, sondern ermöglichen nur den Anwendungsbetrieb in einer anpassbaren Arbeitsumgebung und darüber hinaus, wie z. B. bei Sicherheitsdiensten.

Die Programmierung in der Wolke ähnelt den Unternehmensanwendungen (Cluster von Applikationsservern mit Load Balancer), da beide sowohl anpassungsfähig als auch fehlersicher sein müssen. Für den Betrieb skalierbarer Applikationen in der Wolke muss sich die Wolke auf Asynchronie und Statelesse verlassen. Andernfalls erhalten Sie nur das Hosten in einer Cloudumgebung, die ohne gute Skalierbarkeit und Zuverlässigkeit auskommt.

So erfordert das Windows Azure Programmiermodell drei Anforderungen, um Skalierbarkeit und Zuverlässigkeit zu garantieren. Außerdem darf die Applikation keinen Status sichern, da der Load Balancer im Unterschied zu z.B. Amazon's Elastic Beanstalk keine Sticky Sessions/Cookies einsetzt. Bei der Einrichtung einer PaaS-Umgebung werden vorhandene Enterprise Programmiermodelle wie JEE oder .

Es kann jedoch sein, dass der Programmierer auf Veränderungen vorbereitet sein muss, wenn er noch keine entwicklungsfähigen Applikationen hat. Die Entwicklung weicht nicht wesentlich von der Applikationsentwicklung für Anwendungsserver, wie z.B. JEE, ab. Applikationen werden dezentral beschrieben, gestaltet, entwickelt, geprüft, verpackt und anschließend auf die Cloud-Plattform transferiert.

Zahlreiche Hersteller wie Google App Engine, Microsoft Azure oder Elastic Beam von Amazon bieten die Möglichkeit, mehrere Varianten derselben Applikation gleichzeitig auszuführen, um beispielsweise Live-, Bühnen- und Test-Umgebungen bereitzustellen und so einen Rückzug auf eine ältere Variante zu ermöglichen. In diesem Fall ist es möglich, die Software auf eine ältere Softwareversion zurückzusetzen. Auch die großen Hersteller bieten direkten Support für Entwicklungsumgebungen, um Applikationen von der Entwicklungsumgebung in die Cloud zu transferieren.

Der PaaS-Anbieter muss daher sicherstellen, dass alle Varianten einer Applikation abgespeichert sind und kann auch Komfortfunktionen für die Verteilung von Applikationen aus der IDE bereitstellen. Je nach verwendetem Programmierungsmodell kann der Arbeitsaufwand, eine Vor-Ort-Lösung so in die Wolke zu bringen, dass sie dort skalierbar ist, von wenigen Arbeitsstunden bis hin zu einer völligen Neuentdeckung variieren.

Zur Minimierung des Aufwands, wenn nur eine niedrige Ausfallsicherheit erforderlich ist, gibt es Multi-Tenancy-Muster[18][19], die beispielsweise mit wenig Aufwand nicht-mandantenfähige Applikationen Mandantenfähigkeit verleihen, aber für den Kostenaufwand einer begrenzten Ausfallsicherheit. Das Laufzeitumfeld einer PaaS-Umgebung kann über APIs oder ein Web-Interface eingerichtet werden. Beispielsweise können Applikationen ein- und ausgeschaltet oder die Höchst- und Mindestanzahl von Ausprägungen angegeben werden.

Die Überwachung und die damit einhergehende Autostartfähigkeit der Applikationen kann auch über APIs oder ein Web-Interface realisiert werden. Manche Runtime-Umgebungen, wie z.B. JEE in der Googles App Engine, stellen nur eine Untermenge der tatsächlichen Runtime-Umgebungen bereit, um eine hohe Maßstäblichkeit und Belastbarkeit zu erreichen. Beispielsweise ist es in der Googles App Engine nicht gestattet, Java-Threads zu öffnen oder auf die Datei oder das Betriebsystem zu zugreifen.

Diesen Beschränkungen stehen in der Regel getrennte Schnittstellen gegenüber, um die Funktionalität zu erhalten, aber nicht, um Scalierbarkeit und Resilienz zu beeinträchtigen. Quotas wie für HTTP-Requests oder E-Mails können auch über Schnittstellen erzwungen werden, die die Sicherheit der Runtime-Umgebung gewährleisten. Manche Provider stellen zusätzlich Schnittstellen für Services wie z. B. MEMCACH oder Image Processing zur Verfügung.

Alle herstellerspezifischen Schnittstellen werden zusammen mit den Runtime-Umgebungen in SDKs zusammengefasst. Nachteilig an diesen Änderungen der Laufzeitumgebung ist eine schwierigere Portabilität, da die Zusatzdienste nicht über standardisierte Schnittstellen providerübergreifend zur Verfügung stehen. Standardisierungsstellen wie OpenStack[20] und Occi (Open Cloud Computing Interface) gibt es. Weil viele Anwender noch SQL-Datenbanken für die unkomplizierte Migration von Anwendungen in die Wolke benötigen, werden diese nun ebenfalls mit schlechterer Leistung als die Key-Value-Stores aufgesetzt.

Zur Erleichterung der Portabilität von Applikationen von einem PaaS-Anbieter zum anderen wird die JPA- oder JDO-API für die Datenbanksysteme häufig in der Java-Umgebung eingesetzt. Um sicherzustellen, dass die Reaktionszeit von Applikationen für den Endanwender immer ausreichend ist, müssen einige Applikationen bei größeren Kalkulationen imstande sein, asychron zu laufen. Darüber hinaus erlaubt es Ihnen die Googles App Engine beispielsweise nicht, neue Themen in ihren Applikationen zu starten[27].

Damit soll vermieden werden, dass die Ausfallsicherheit der Googles App Engine beeinträchtigt wird. Mit Hilfe der Suchmaschine von Googe App können Sie asynchrone Tasks auslösen, z.B. über die Services Scheduled Tasks und Task Queue. 28] Amazon stellt den Amazon Simple Queue Service[29] und Microsoft Azure die Queue Service API von Microsoft Azure Speicherdienste zur Verfügung.

30 ] Obwohl Microsoft Azure und Amazon's Elastic Beanstalk es Ihnen gestatten, neue Themen zu beginnen, wird empfohlen, dass Sie aus den oben aufgeführten GrÃ?nden Nachrichtenwarteschlangen verwenden, um eine höhere Skalierbarkeit der Inhalte zu erhalten. Die Zugriffe auf Applikationen in der Wolke erfolgen über das Netz oder innerhalb des Unternehmens über das Netz. Weil nicht nur Einzelunternehmen ihre internen Applikationen in die Wolke outsourcen, sondern auch ISVs gerne Wolkenplattformen für neue Applikationen nutzen, werden Ressourcen für die Multi-Client-Fähigkeit verbraucht.

PaaS-Provider wie Google agieren darauf z.B. mit Namespaces. Anschließend ist nur noch der Zugang zu den mit diesem Namespace verbundenen Objekten des Datastores, Memcaches oder der Taskwarteschlange erlaubt. Dadurch wird auf einer übergeordneten Stufe als die Applikation selbst gewährleistet, dass kein einziger Client Zugang zu den Informationen anderer Clients hat.

Dies ist ein Pluspunkt bei der Entwicklung von Applikationen zur Durchführung von Versuchen wie z.B. Regressionstests. Es stehen einfach Tools zum Im- und Export von Dateien in die Wolke und zum Herunterladen von Images virtueller Maschinen in die Wolke zur Verfügung. Dies allein skaliert jedoch nicht die Applikationen an sich, sondern ist besser mit einer Remote Hosting-Lösung zu vergleichen.

PaaSify. it Umfassende Plattform als Service Marktübersicht. Kombination verschiedener Multilokationsmodelle in serviceorientierten Anwendungen. Brewer und die Machbarkeit von konsistenten, verfügbaren und partitionstoleranten Webservices. Wolken-Computing: Webbasierte Dynamic IT Services.

Mehr zum Thema