Die Abkürzung PaaS, kurz für Platform as a Service, beschreibt die mittlere Schicht der Cloud-Servicemodelle. Hauptnutzen ist dabei insbesondere das Vereinfachen beim Entwickeln und Bereitstellen von Applikationen sowie eine höhere Effizienz. Hierbei muss der User die Softwareentwicklung zwar selbst in die Hand nehmen. Gleichzeitig bedeutet dies aber auch für ihn, dass PaaS Elemente wie Laufzeitumgebung oder Betriebssystem bereits mitbringt. Dennoch fallen auch hier alle wichtigen Verantwortlichkeiten zu Lasten des Anbieters.

Vor- und Nachteile von PaaS

Gleichzeitg ergeben sich auch bei diesem Servicemodell einige erwähnenswerte Vor- und Nachteile. Bei PaaS stechen dabei insbesondere diese Parameter hervor:

Vorteile

  • schnellere und wenige komplizierte Entwicklung und Auslieferung der Software
  • Entwicklung, Testphasen und Operieren auf einer einheitlichen Plattform möglich
  • Softwareentwicklungslebenszyklus leicht zu verwalten
  • viele Funktionalitäten stehen direkt zur Verfügung, z.B. Authentifizierung, Sicherheitsfeatures, Datenbankmanagementsystem, Userverzeichnisse und Registrierung, Monitoring etc.

Dem gegenüber stehen aber auch einige Nachteile:

Nachteile

  • Hohe Abhängigkeit vom Cloud-Anbieter, insbesondere hinsichtlich des Vendor-Lock-In (dt.: Schwierigkeit des Anbieterwechsels)
  • Komponenten können beim Anbieterwechsel nicht einfach mitgenommen werden
  • Schnelllebiger Markt, d. h. viele Innovationen & Shut-downs bei Funktionen
  • Ständige Preisänderungen, d.h. schwer kalkulierbare laufende Kosten

Softwareentwicklung in der Cloud

Im Bereich des Servicemodells von PaaS gibt es einige wesentliche Grundsätze bei der Softwareentwicklung. Auf die Konzepte von Microservices, Containern und Orchestrierung möchte ich an dieser Stelle näher eingehen

Microservices

Microservices spielen insbesondere im Zusammenhang mit moderner IT-Architektur eine Rolle und sorgen für die Modularisierung von Software. Dabei geht es um das Zusammenspiel vieler kleiner Microservices, die jeweils ein Aufgabenmodul bearbeiten und anschließend in einen Container verpacken. Untereinander können die einzelnen Microservices dabei auf Basis eines gemeinsamen Netzwerks kommunizieren.

Microservices werden häufig genutzt um komplexe Software in kleine Teile herunter zu brechen und dadurch verständlicher zu machen sowie auch die Möglichkeit der Erweiterung zu erleichtern. Dies ist daher möglich, dass die Applikationen innerhalb durch den gesamten Vorgang modularer und damit unabhängig voneinander skalierbar gemacht werden.

Beispiel für Microservices:

Sie wollen sich einen Tee zubereiten. Sie brechen diese Aufgaben in die Microservices Teebeutel bereitstellen, Wasser kochen, Wasser in Tasse füllen und Teebeutel in Tasse geben, herunter.

Container

Ein weiteres Element von PaaS stellen unter anderem auch Container dar. Ein solcher Container entspricht dabei einer Art skalierbaren Box rund um die eigene Applikation und ihren Abhängigkeiten, in der z.B. ein Microservice untergebracht wird (vgl. Abb. 1). Vollkommen unabhängig von ihrer Umgebung ist sie dabei extra kleingehalten und beinhaltet nur die allernötigsten Features um die Applikation zuverlässig betreiben zu können. Ein bekanntes beispiel für Container ist die Open-Source-Lösung „Docker“.

Abb. 1: Nutzung von Containern und Microservices
(Quelle: Lindner et al. 2020)

Mehrwerte von Containern

  • Nutzbar auf jeder Umgebung und in jeder Cloud
  • Leichte Skalierbarkeit
  • Bei hohem Ressourcenverbrauch (bspw. Traffic) können mehrere Container gleichzeitig agieren und die Last verteilen
  • Images können, unabhängig von der Hardware, von der Entwicklungsumgebung zur Testumgebung bis hin zur Produktion weitergegeben werden
  • Container sind klein und können damit deutlich schneller starten als großmaschige Betriebssysteme

Funktionsweise von Containern

Jeder Container basiert auf einem Image. Ein Image beschreibt dabei eine Blaupause, aus dem die Container erschaffen werden. Images sind dabei meist an einem zentralen Punkt gespeichert und können von allen Umgebungen aus genutzt werden.

Das einzelne Image besteht dabei zunächst aus einer großen Schicht, genannt Kernel, auf dem die verschiedenen Container laufen können. Darauf aufbauend können schließlich Images in Container in Betrieb genommen werden. In Abb. 2 kann man so beispielsweise am rechten Stapel ein Base Image erkennen (hier: BusyBox), welchem die Python-Laufzeitumgebung hinzugefügt wird, um daraus dann ein Container erstellen zu können. Andererseits gibt es aber auch, wie links, die Möglichkeit, dass ein Image auf einem Betriebssystem (hier: Debian) basiert, welchem in diesem Beispiel die zwei Schichten Apache“ sowie „PHP“ zugeordnet werden.

Abb. 2: Abbildung eines Images (Quelle: Lindner et al. 2020)

Durch diese Verfahren sowie das beliebige Hinzufügen und Ändern von Schichten können Images spezialisiert und in vielen verschiedenen Variationen dargestellt werden.

Orchestrierung

Die im Abschnitt zuvor genannten Container gilt es darüber hinaus aber auch, mittels geeigneter Software zur Orchestrierung, richtig zu verwalten. Eine solche Software dient dabei dazu, das Zusammenspiel der einzelnen Container wie ein Dirigent zu überwachen und in Einklang miteinander zu bringen. Also beispielsweise die Abfolge der Microservices genau zu bestimmen. Ein bekanntes Beispiel für eine solche Software ist das Open-Source-Projekt „Kubernetes“ von Google.

Dabei stellt Google den Nutzern eine portable und unendlich erweiterbare Plattform zur Verwaltung von Services, die in Containern ausgeliefert werden, zur Verfügung. Mehrwert ist dabei nicht nur ein deutlich besserer Betrieb, sondern auch eine erheblich leichtere Skalierbarkeit. Dies wiederum führt dazu, dass sich sowohl Automatisierung als auch Konfigurationen enorm vereinfachen.

Mehrwert und Funktionsweise von Kubernetes

Zusätzlich bietet Kubernetes die Möglichkeit, dass der Nutzer den gewünschten Zustand der Applikation lediglich angeben muss und die Software sich anschließend selbstständig um die zeitgerechte Realisierung in der passenden Version kümmert.

Die kleinste Einheit in Kubernetes wird dabei durch den sogenannten „Pod“ beschrieben. Dieser entspricht dabei einem laufenden Prozess in einem Server und kann dabei nur einen oder auch mehrere gleichgestellte Container beinhalten. Jeder Pod hat dabei eine einzigartige IP-Adresse, ein Set an bereitgestellten Netzwerkports sowie einen eigenen, für Container gemeinsam nutzbaren, Festplattenspeicher. Diese Elemente bedingen zudem die Möglichkeit, dass die einzelnen Container über die gemeinsame Umgebung kommunizieren können.

Bei steigender Userzahl kann die Anzahl der Pods nicht nur einfach erhöht werden, sondern dies kann gleichzeitig auch ganz automatisch geschehen. Darüber hinaus kann das Programm, durch die Umleitung von Traffic auf verschiedenen Pods, Deployments ohne Ausfallzeit durchführen. So können die Pods stets auf dem aktuellsten Stand gehalten werden (vgl. Abb. 3).

Abb. 3: Kubernetes und Docker-Container
(Quelle: Lindner et al. 2020)

Fazit

Abschließend lässt sich erkennen, dass PaaS insbesondere im Bereich der Entwicklung von Applikationen ein sinnvolles Servicemodell darstellt. Nicht nur ermöglicht es Entwicklungszeiten deutlich zu beschleunigen. Gleichzeitig kann auch die Komplexität von Serverbetrieb und Skalierung deutlich reduziert werden.

User sollten bei der Nutzung von PaaS hinsichtlich einer einwandfreien monolithischen Anwendung stets kleine Aufgabenpakete für Microservices schnüren.

PaaS bietet sich damit vor allem für Cloud-Erfahrene an, da es nicht nur vergleichsweise niedrige Kosten, sondern auch ein schnelles Entwicklungspotenzial bieten kann. Gleichzeitig sollten aber auch die Nachteile wie Vendor-Lock-In und die Datensicherheit betrachtet werden. Dies kann beispielsweise im Bereich von Finanzen einen wesentlichen Faktor bei der Entscheidung für dieses Cloud-Servicemodell darstellen.

Tipp: Lesen Sie mein neues Buch: Der Weg in die Cloud bei Springer Gabler oder buchen Sie mich für einen Vortrag.

Quelle

Lindner, D., Niebler, P., & Wenzel, M. (2020). Der Weg in die Cloud – Ein Leitfaden für Unternehmer und Entscheider. Heidelberg: Springer Gabler.

https://pixabay.com/de/photos/fotografie-lebensstil-experimentelle-731891/

Genderhinweis: Ich habe zur leichteren Lesbarkeit die männliche Form verwendet. Sofern keine explizite Unterscheidung getroffen wird, sind daher stets sowohl Frauen, Diverse als auch Männer sowie Menschen jeder Herkunft und Nation gemeint. Lesen Sie mehr dazu.

Falls es noch Fragen gibt, können Sie mich gerne anrufen. Hierzu einfach im Buchungssystem nach einen freien Termin schauen. Ich nehme mir jeden Monat einige Stunden Zeit um mit Lesern zu interagieren.

Helfen Sie meinem Blog, vernetzen Sie sich oder arbeiten Sie mit mir

Sie haben eigene, interessante Gedanken rund um die Themenwelt des Blogs und möchten diese in einem Gastartikel auf meinem Blog teilen? – Aber gerne! Sie können dadurch Kunden und Fachkräfte ansprechen.

Ich suche aktuell außerdem Werbepartner für Bannerwerbung für meinen Blog. Sollte es für Sie spannend sein Fachkräfte oder Kunden auf Ihre Seite zu leiten, dann bekommen Sie mehr Informationen hier.

Vernetzen Sie sich in jedem Fall auf Xing oder LinkedIn oder kontaktieren Sie mich direkt für einen Austausch, wenn Sie gleich mit mir ins Gespräch kommen wollen. Werfen Sie auch einen Blick in meine Buchvorschläge zur Digitalisierung, vielleicht wollen Sie mir auch ein Buch empfehlen?

Ich arbeite gerne mit Unternehmen zusammen. Sie können mich ebenfalls gerne bezüglich folgender Punkte anfragen:



Bildquelle: pixabay.com

Avatar
Autor

Ich blogge über den Einfluss der Digitalisierung auf unsere Arbeitswelt. Hierzu gebe ich Inhalte aus der Wissenschaft praxisnah wieder und zeige hilfreiche Tipps aus meinen Berufsalltag. Ich bin selbst Führungskraft in einem KMU und Ich habe berufsgeleitend an der Universität Erlangen-Nürnberg am Lehrstuhl für IT-Management meine Doktorarbeit geschrieben.

Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen