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.
Tipp: ich verschenke aktuell bis Ende Januar 5x mal mein Buch: der Weg in die Cloud. Schreiben Sie mir einfach an Cloud-Gewinnspiel@agile-unternehmen.de kurz was Sie beruflich antreibt und ich schicke Ihnen das Buch gratis mit Widmung!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“.
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.
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).
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: Seit Anfang 2022 achte ich darauf, dass ich immer genderneutrale Formulierungen verwende. Vor 2022 habe ich 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.Rechtschreibung: Ich führe diesem Blog neben dem Job und schreibe viele Artikel in Bahn/Flugzeug oder nach Feierabend. Ich möchte meine Gedanken und Ansätze als Empfehlungen gerne teilen. Es befinden sich oftmals Tippfehler in den Artikeln und ich bitte um Entschuldigung, dass ich nicht alle korrigieren kann. Aber Sie können mir helfen: Sollten Sie Fehler finden, schreiben Sie mich gerne an! Lesen Sie mehr dazu.
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.
Tipp: Ich vergebe auch über den Blog eine gratis Zertifizierung zum Digital & Agile Practioner!
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:
- Sehen Sie übersichtlich alle Möglichkeiten zur Zusammenarbeit
- Halten von Vorträgen zu Arbeit, Führung und Agilität
- Veröffentlichung von Gastartikeln
- Content Marketing & Texterstellung
- Workshops und Seminare
- Softwareentwicklung für Unternehmen
- Whitepaper für B2B Leads
- IT-Administation AWS, Kubernetes, Ansible, Cloud und Terraform
- Public Relations (PR) für Unternehmen
- Influencer Marketing
- Whitepaper für B2B Leads
Bildquelle: pixabay.com