Auch genannt: PaaS
Platform as a Service (PaaS) ist ein Cloud-Service-Modell für die Entwicklung und den Betrieb eigener Anwendungen. Ein Anbieter stellt dafür eine Ausführungsumgebung bereit, auf der Teams selbst entwickelte oder erworbene Anwendungen bereitstellen können. Nach der NIST-Definition gehören dazu Programmiersprachen, Bibliotheken, Dienste und Werkzeuge, die der Anbieter unterstützt. Die Anwenderseite steuert die bereitgestellten Anwendungen und gegebenenfalls Einstellungen der Hosting-Umgebung, nicht aber die darunterliegenden Netze, Server, Betriebssysteme oder Speicher.NIST: Platform as a Service (PaaS)
PaaS verschiebt die Verantwortungsgrenze also zwischen Infrastruktur und Anwendung. Entwickelnde müssen nicht jedes Betriebssystem installieren oder Hardware warten, behalten aber Verantwortung für ihren Code, ihre Daten und für die Konfigurationen, die ihnen die Plattform zugänglich macht. Welche Aufgaben konkret beim Anbieter und welche beim Kunden liegen, steht nicht allein im Kürzel PaaS: Das jeweilige Produkt, der Vertrag und die gewählten Dienste bestimmen die Grenze genauer.
Eine PaaS bündelt Bausteine, die Anwendungen zum Bauen und Ausführen benötigen. Dazu können Rechenressourcen, Netzwerk und Speicher sowie Betriebssysteme, Middleware, Frameworks, Entwicklungswerkzeuge und Schnittstellen gehören. Google beschreibt solche Bestandteile als Infrastruktur, Middleware und Zugänge über grafische Oberfläche, Kommandozeile oder API.Google Cloud: What is Platform as a Service?
Für das Deployment liefert ein Team üblicherweise Programmcode oder ein vorbereitetes Anwendungsartefakt an die Plattform. Diese ordnet es einer Laufzeit zu, startet Instanzen und stellt die Anwendung über eine konfigurierte Adresse oder Schnittstelle bereit. Die konkrete Technik unterscheidet sich: Manche Plattformen erwarten Quellcode, andere ein Container-Image oder ein Paket. PaaS ist daher kein einzelnes Dateiformat und auch keine bestimmte Programmiersprache, sondern ein Bereitstellungsmodell mit vorgegebenen Plattformbausteinen.
Die Plattform nimmt Entwicklungsarbeit nicht vollständig ab. Eine Anwendung braucht weiterhin Abhängigkeiten, Umgebungsvariablen, Datenzugriffe und Fehlerbehandlung. Bei Änderungen muss das Team testen, ob Code und Konfiguration zur angebotenen Laufzeit passen. Gerade weil die Plattform Teile der Umgebung standardisiert, ist es sinnvoll, Einstellungen und Schnittstellen nachvollziehbar zu versionieren.
Der Anbieter betreibt bei PaaS die darunterliegende Infrastruktur und die Plattformsoftware. Das reduziert den Verwaltungsaufwand für Komponenten wie Serverbetriebssystem, Laufzeitbasis oder ausgewählte Middleware. Nach der NIST-Abgrenzung kontrolliert der Nutzer die bereitgestellten Anwendungen und möglicherweise Einstellungen der Anwendungs-Hosting-Umgebung; die grundlegende Cloud-Infrastruktur bleibt außerhalb seiner Steuerung.NIST: Platform as a Service (PaaS)
Aus dieser Teilung folgt keine pauschale Sicherheitsgarantie. Der Anbieter kann beispielsweise die Plattform absichern und aktualisieren, während das Entwicklungsteam Zugangsdaten, Anwendungslogik, Rollen und die korrekte Verarbeitung seiner Daten gestalten muss. Auch Backup-, Protokollierungs- oder Verschlüsselungsfunktionen können je nach Dienst unterschiedlich konfiguriert sein. Vor dem Einsatz sollte deshalb dokumentiert werden, welche Einstellungen verfügbar sind und wer sie pflegt.
Ein kleines Team entwickelt eine Web-Anwendung zur Terminverwaltung. Es speichert den Code in einem Repository und hinterlegt für den Betrieb benötigte Konfigurationswerte, etwa die Verbindungsdaten zu einem getrennten Datendienst. Beim Deployment übergibt es der PaaS den Code oder ein Build-Artefakt und legt fest, welche Laufzeit und welche Startanweisung gelten sollen.
Die Plattform stellt die Anwendung in ihrer Hosting-Umgebung bereit und kann die dafür vorgesehenen Ressourcen verwalten. Die Entwickler konzentrieren sich auf Formulare, Berechtigungen und die Regeln für Terminbuchungen, statt eine virtuelle Maschine mit Betriebssystem selbst zu administrieren. Wenn mehr Anfragen verarbeitet werden sollen, bieten viele Plattformen Mechanismen zum Anpassen der Kapazität; ob, wann und zu welchen Bedingungen das geschieht, hängt jedoch vom konkreten Angebot ab.Google Cloud: What is Platform as a Service?
Das Beispiel macht auch die Grenze sichtbar: Ein erfolgreicher PaaS-Start ersetzt weder Tests noch ein Konzept für Datenzugriffe. Das Team muss prüfen, ob die Anwendung bei fehlerhaften Eingaben korrekt reagiert, ob Berechtigungen passen und wie Daten gesichert werden. PaaS vereinfacht das Bereitstellen einer Anwendung, nicht automatisch deren fachliche Qualität oder Compliance.
Infrastructure as a Service (IaaS) stellt vor allem grundlegende Rechen-, Speicher-, Netzwerk- und Virtualisierungsressourcen bereit. Dort verwaltet die Kundenseite nach der Google-Übersicht weiterhin virtuelle Maschinen, Betriebssysteme, Middleware, Anwendungen und Daten. Bei PaaS übernimmt der Anbieter zusätzlich die Entwicklungs- und Hosting-Plattform; die Kundenseite arbeitet näher an der Anwendung.Google Cloud: What is Platform as a Service?
Software as a Service (SaaS) liegt auf der anderen Seite der Skala. Dabei stellt der Anbieter eine fertige Anwendung bereit und betreibt den gesamten Anwendungs-Stack. Die Nutzenden greifen auf die Software zu und konfigurieren sie innerhalb der vorgesehenen Möglichkeiten, entwickeln aber normalerweise nicht die zugrunde liegende Anwendung auf der Plattform. Die drei Begriffe beschreiben somit keine Qualitätsstufen, sondern unterschiedliche Verantwortungsgrenzen.
PaaS ist nicht gleichbedeutend mit „Cloud“: Cloud Computing umfasst nach NIST mehrere Service- und Bereitstellungsmodelle. Container können auf einer PaaS bereitgestellt werden, sind aber selbst ein Verpackungs- und Ausführungsformat. Serverless ist ebenfalls nicht automatisch ein Synonym; es bezeichnet je nach Angebot ein anderes Ausführungs- und Abrechnungsmodell. Entscheidend für die Einordnung ist stets, wer welche Schichten der Anwendung und ihrer Umgebung betreibt und kontrolliert.