Bisher wurde der PaaS-Ansatz (Platform as a Service) vor allem als Entwicklungsumgebung wahrgenommen, die bestenfalls dazu führt, dass Administrationsaufgaben wegfallen. Doch es steckt viel mehr dahinter: PaaS hat das Potenzial, den gesamten Software-Lebenszyklus zu verändern. Davon kann auch die interne IT-Organisation eines Unternehmens profitieren.Im Prinzip stehen IT-Leiter immer vor derselben Herausforderung: Sie müssen bestimmte Services in möglichst hoher Qualität zur Verfügung stellen. So ist es ihre Aufgabe, dafür zu sorgen, dass die IT ohne spürbare Ausfälle läuft, die Anwendungen den individuellen Anforderungen angepasst sind und nicht zuletzt das Kosten/Nutzen-Verhältnis ausgewogen ist. PaaS-Angebote zielen auf die Optimierung der Softwareentwicklung und stellen nicht nur die Entwicklungsumgebung für verschiedene Programmiersprachen, sondern auch sämtliche damit verbundenen Services zur Verfügung, darunter Rechenleistung, Speicher, Middleware sowie Monitoring- und Lasttest-Tools. Konkret bedeutet dies, dass PaaS die Softwareentwicklung deutlich agiler und effektiver macht. Zum einen steht die passende Entwicklungsumgebung samt Zusatz-Tools jederzeit mit individuell skalierter IT-Infrastruktur zur Verfügung. Zum anderen bietet PaaS den Entwicklern Möglichkeiten, die auf klassischen Server-Strukturen im heimischen Rechenzentrum meist nicht so einfach umsetzbar sind. Beispielsweise lassen sich Testumgebungen, die exakt der späteren Produktivumgebung entsprechen, in der Cloud des Dienstleisters durch PaaS automatisch bereitstellen. Außerdem stehen Lasttest- und Applikationsanalyse-Tools zur Verfügung, sodass Entwickler vorab das Verhalten der Anwendung quasi unter Echtbedingungen analysieren und optimieren können. Das spart Zeit und Kosten. PaaS trägt damit entscheidend dazu bei, die Komplexität des Entwicklungsprozesses zu mindern. Devops-Workflows laufen beispielsweise automatisiert ab, Anwendungen können schneller entwickelt, getestet und schließlich zur Verfügung gestellt werden. Selbst kleine Änderungen lassen sich problemlos mehrfach täglich ausrollen. Um den Code auf die Plattform aufzuspielen, nutzen die Entwickler Tools wie Git, mit denen sie sonst auch arbeiten. Während des Deployments können die Anwender unterbrechungsfrei arbeiten. Mit der Nutzung von PaaS lässt sich die eigene Infrastruktur vereinheitlichen. Hat man bisher auf virtuellen Servern entwickelt, die im Laufe ihres Rechenzentrumslebens zunehmend unterschiedliche Konfigurationen erfuhren, ist diese Server-Anpassung nicht länger notwendig. Zudem ist es möglich, PaaS-basierte Applikationen im laufenden Betrieb in wenigen Sekunden auf mehrere Server zu skalieren. Dies führt zu einer höheren Verfügbarkeit und einer deutlich besseren Performance der Anwendung. Integration mit dem eigenen RZ Jenseits der Vorteile stellt sich die Frage, wie viel Aufwand es kostet, eine PaaS-Umgebung auf der eigenen Infrastruktur aufzusetzen. Generell gilt, je weiter die Infrastruktur virtualisiert und auf Cloud-Lösungen getrimmt ist, desto einfacher ist das Aufstellen einer PaaS-Umgebung. Meist übernimmt der PaaS-Anbieter diesen Prozess in enger Kooperation mit dem IT-Leiter, CIO oder CTO. Sollte bereits ein eigenes IaaS-Angebot (Infrastructure as a Servivce) bestehen, kann ein kompetenter PaaS-Anbieter nach der Bereitstellung eines Zugangs zur Infrastruktur in wenigen Tagen einen Showcase der PaaS-Lösung auf der IaaS-Lösung als Konzeptnachweis vorzeigen. Daraus erfährt der Infrastrukturanbieter, dass die PaaS-Umgebung tatsächlich auf der hauseigenen Infrastruktur läuft, und kann erste Performance-Tests unternehmen, um sie mit der bisherigen Installation zu vergleichen. Im Falle einer nur schwach automatisierten Infrastruktur, bei der wesentliche Komponenten wie ein API (Application Programming Interface) fehlen, steigt der Aufwand deutlich. Hier müssen unternehmensinterne IT-Professionals den Prozess der PaaS-Aufstellung wesentlich stärker unterstützen. Bestehende Angebote wie zum Beispiel Datenbanken kann ein PaaS-Anbieter in den meisten Fällen problemlos integrieren, gegebenenfalls stellt er sie aber auch selbst bereit. Integration im Entwicklungsprozess Derzeit etabliert sich die Buildpack-API-Architektur als Quasi-Standard. Ein Buildpack ist eine standardisierte Reihe von Skripten, welche die Vorbereitung und das Deployment von Anwendungen in verschiedenen Sprachen und Frameworks automatisiert. Plattformen, die darauf beruhen, können Applikationen in praktisch allen Sprachen zugänglich machen. Denn die Buildpack-APIv stellt sicher, dass sich die PaaS-Plattform an das Ökosystem und die Funktionsweise der Programmiersprache anpasst. Entwickler sind es meist gewohnt, in einer bestimmten Umgebung zu arbeiten. Auf einer PaaS-Plattform arbeiten sie in ihrem gewohnten Entwicklungsumfeld, die Plattform übersetzt dies in ein Format, welches dies ausführen kann. Dem Benutzer verschafft dies den entscheidenden Vorteil, den PaaS-Anbieter wechseln und die gewohnten Anwendungen umziehen zu können. Die meisten Anwendungen - beispielsweise basierend auf Java, Ruby, Python, Node.js oder PHP - lassen sich problemlos auf eine PaaS-Umgebung portieren. Viele der Frameworks sind bereits entsprechend angepasst, in anderen Fällen genügt meist eine einfache Modifikation der Konfiguration. Ältere Anwendungen erfordern hingegen üblicherweise Anpassungen an die PaaS-Umgebung, um von der gebotenen Performance-Optimierung, der Ausfallsicherheit und der horizontalen Skalierbarkeit zu profitieren. Anwendungen, die persisente Daten in zentralen Asset-Stores ablegen, sind per se für verteilte Architekturen und horizontale Skalierbarkeit ausgelegt und deshalb gut für eine Migration in eine PaaS-Umgebung geeignet. Normalerweise stellt eine PaaS-Umgebung jeder Anwendung die benötigten Konfigurationsparameter zur Verfügung. Diese Autokonfiguration muss nicht zwingend implementiert sein, sie vereinfacht jedoch den Prozess und verhindert Fehler. Für den Umzug der Anwendungen stellen PaaS-Anbieter die benötigten Informationen bereit. Dokumentationen und Workshops zu den notwendigen Anpassungen sind meistens umfangreich vorhanden. Will man komplexere Systeme auf eine PaaS-Umgebung umziehen, kann kompetenter Rat von spezialisierten Cloud-Consultants notwendig sein. Auswahl eines PaaS-Providers Viele Cloud-Service-Provider erweitern derzeit ihr Angebot um PaaS. Dabei ist es nicht ganz einfach, in kurzer Zeit das notwendige Know-how aufzubauen und Fachleute für den Support aufzustocken. Provider nutzen deshalb vielfach die Angebote spezialisierter PaaS-Anbieter und binden diese in das eigene Portfolio ein. Eine solche Symbiose ist für den Provider und den Endkunden durchaus sinnvoll. Zum einen kann der Provider so seinen Kunden die gesamte Bandbreite an Cloud-Services bieten. Zum anderen erspart sich der Endkunde den Auswahlprozess und die Anbindung an einen weiteren Techniklieferanten. Ein wichtiges Kriterium für einen PaaS-Provider ist die Unterstützung mehrerer Sprachen. Dies gibt dem Entwicklungsteam die Möglichkeit, sich in jedem speziellen Fall für die optimale Sprache oder das passende Framework zu entscheiden. Ermöglicht das Buildpack-System dies durch offene Standards, lässt sich somit die Abhängigkeit von einem einzelnen Anbieter (Vendor Lock-in) vermeiden. Mindestens ebenso ausschlaggebend für den praktischen Einsatz ist der fachliche Support. Dieser wird technisch anspruchsvolle Fragen zu beantworten haben und muss deshalb entsprechend qualifiziert sein. Denn hier geht es nicht mehr nur um das Einrichten von Servern, worauf sich sonst übliche Anfragen bei typischen IaaS-Anbietern beziehen. Einige Provider haben ihr PaaS-Angebot mittels vieler spezialisierter Partner mit großen Add-on-Marktplätzen ausgebaut. Dies hat Vorteile für den Kunden, denn es verhindert - genau wie die Buildpack-Technik - eine allzu große Abhängigkeit von einem Anbieter. In den Marktplätzen finden sich meist mehrere Anbieter für jede einzelne Technik. Fazit PaaS ist eine sinnvolle Ergänzung des eigenen Rechenzentrums, um Entwicklungsprozesse für Applikationen zu beschleunigen und die Auslastung der Infrastrukturressourcen zu erhöhen. Dies entlastet auch IT-Verantwortliche: Sie müssen solche Umgebungen nicht länger eigenhändig für die Entwicklung, das Testing und das Deployment bereitstellen und pflegen. Die Migration vorhandener Anwendungen auf eine PaaS-Umgebung kann je nach Komplexität mit geringen bis mäßigen Anpassungen erfolgen. Für die Integration in das eigene Rechenzentrum gilt generell: Je weiter die Infrastruktur virtualisiert und auf Cloud-Lösungen getrimmt ist, desto einfacher ist die Einführung von PaaS. Eine auf offenen Standards basierende PaaS-Umgebung verhindert die Abhängigkeit von einem Anbieter. Insgesamt lassen sich die Innovations- und Deployment-Zyklen deutlich verkürzen.