Platform as a Service

Wie Platform as a Service (PaaS) moderne Agile- und DevOps-Teams stärkt

Kev Zettler Kev Zettler

Zusammenfassung: Platform as a Service (PaaS) ist eine auf IaaS basierende Cloud-Infrastruktur, die Ressourcen zum Erstellen von Tools und Anwendungen auf Benutzerebene bereitstellt. Sie bietet die zugrunde liegende Infrastruktur, einschließlich Rechen-, Netzwerk- und Speicherressourcen sowie Entwicklungstools, Datenbankverwaltungssysteme und Middleware.

Moderne Softwareentwicklerteams haben sofort Zugriff auf alle Ressourcen, die zur Unterstützung des gesamten Anwendungslebenszyklus benötigt werden, z. B. zum Entwerfen, Entwickeln, Testen, Bereitstellen und Hosten von Anwendungen. Dies alles kann mit Platform as a Service (PaaS) direkt in der Cloud erfolgen. Teams haben auf Abruf Zugriff auf die benötigten Ressourcen, ohne dass eine komplexe lokale Infrastruktur erworben und gewartet werden muss.

PaaS ist eine primäre Stufe moderner Cloud-Infrastrukturen. Der Basis-Stack ist Infrastructure as a Service (IaaS) und stellt Rechen-, Netzwerk- und Speicherressourcen bereit. PaaS befindet sich in der Mitte des Stacks zwischen IaaS und Software as a Service (SaaS). PaaS ist abhängig von IaaS, ermöglicht aber auch SaaS.

Was ist Platform as a Service?

Diagramm: Platform as a Service

PaaS ist eine Cloud-Infrastrukturschicht, die Ressourcen zum Erstellen von Tools und Anwendungen auf Benutzerebene bereitstellt. Wie IaaS umfassen diese Ressourcen Server, Speicher und Netzwerke. PaaS umfasst auch Entwicklungstools, Datenbankverwaltungssysteme, Middleware, E-Mail- oder Benachrichtigungssysteme und mehr.

Da PaaS eine cloudbasierte Infrastruktur ist, können Unternehmen die Kosten und die Komplexität des Kaufs und der Verwaltung von Infrastrukturressourcen einschließlich Softwarelizenzen, Anwendungsinfrastruktur und Entwicklungstools vermeiden.

"Plattform" in PaaS bezieht sich auf ein Programmiersprachen-Ökosystem bzw. einen "Technologie-Stack". Zu den beliebten sprachbasierten Anwendungstechnologie-Stacks gehören unter anderem Ruby on Rails, Django Python, Node.js MEAN Stack und Java SpringMVC. Diese Beispiele für Sprach-Stacks stützen sich auf ein angehängtes Datenbanksystem.

Vorteile von Platform as a Service

Genau wie andere Cloud-Services stellt PaaS On-Demand-Ressourcen bereit, die nach Bedarf skaliert werden können. Früher mussten die Teams ihre eigene Hardware kaufen und dann die Server, Datenbanken, Firewalls und alle anderen Komponenten selbst konfigurieren. Dies bedeutete auch, dass die Teams ihre individuelle Infrastruktur pflegen, skalieren und überwachen mussten. PaaS bietet auch noch einige weitere Vorteile.

Möglichkeit zu agilen und DevOps-Verfahren

PaaS ermöglicht schnelleres Programmieren, Testen und Bereitstellen – einige der wichtigsten Verfahren von agilen Teams und DevOps-Teams. Außerdem ergänzt PaaS einen CI/CD-Release-Workflow direkt und ermöglicht einen vollständigen DevOps-Release-Zyklus. In einem Softwarelebenszyklus aus Erstellen, Testen, Bereitstellen, Verwalten und Aktualisieren übernimmt PaaS die Bereitstellungsphase.

Schnellere Markteinführung

Durch die Verwendung von Platform as a Service können sich Entwickler ausschließlich auf den Code konzentrieren, anstatt eine Infrastruktur und Plattformen zu erstellen, zu konfigurieren und bereitzustellen oder automatisch skalierbare Funktionen zu entwickeln. Dies verkürzt die Entwicklungszeit bei neuen Projekten erheblich. Außerdem bietet PaaS Zugriff auf Tools, Vorlagen und Code-Bibliotheken, die die Entwicklungszeit verkürzen und Prozesse vereinfachen können.

Skalieren nach Bedarf

PaaS-Hosts bieten im Allgemeinen Funktionen zur elastischen Skalierung, mit denen Teams in Spitzenzeiten schnell Kapazität hinzufügen und bei Bedarf wieder herunterskalieren können. Die Skalierung wird vom PaaS-Anbieter automatisch vorgenommen.

Kostengünstige Entwicklung

PaaS ermöglicht es Teams, Entwicklungskapazitäten hinzuzufügen, ohne dass zusätzliche Mitarbeiter erforderlich sind, was die Entwicklungskosten senken kann. Unternehmen müssen keine zugrunde liegenden Entwicklungsinfrastrukturen mehr installieren und verwalten.

Platform as a Service bietet hilfreiche Dashboards zur Analyse und Verwaltung der Infrastrukturkosten. Diese Kostenanalysetools helfen Teams dabei, Bereiche mit unerwarteten oder verschwenderischen Ausgaben zu überprüfen. Darüber hinaus können Teams mithilfe dieser Tools die Kosten ihrer Deployments optimieren. Ohne diese Kosteneinblicke kann es zu einem unerwarteten Anstieg der Infrastrukturkosten kommen.

Unterstützung verteilter Entwicklerteams

Da Platform as a Service ein Cloud-Service ist, wird die Zusammenarbeit verteilter Teams unterstützt. Anbieter von Platform as a Service verfügen über global verteilte Hardware, was bedeutet, dass auf Anwendungen, die für PaaS bereitgestellt werden, zu geringeren Kosten und von jedem Standort aus zugegriffen werden kann.

Sicherheit und Zugangskontrolle

Die meisten PaaS-Anbieter verfügen über granulare Sicherheits- und Zugriffskontrolltools, mit denen Teams den Zugriff auf PaaS-Ressourcen schnell konfigurieren können. Dies ist für die Zugriffsebenen von Sicherheitsteams sowohl des Unternehmens als auch der Kunden von Bedeutung. Die Teams können sich darauf verlassen, dass ihre Infrastruktur geschlossen ist, um Datenverletzungen oder andere unerwünschte Sicherheitsausfallszenarien zu verhindern.

Anwendungsfälle für Platform as a Service

PaaS wird verwendet, um gebrauchsfertige ausführbare Dateien für Anwendungscode einschließlich vollständiger SaaS-Webanwendungen wie CRMs, Dashboards, Chatrooms und mehr bereitzustellen. Die ausführbaren PaaS-Dateien enthalten auch Backend-APIs oder Microservices. Zusätzlich zum Anwendungscode können Tools wie Load Balancer, Benachrichtigungs-Pipelines und Delayed-Job-Systeme bereitgestellt werden.

API-Entwicklung und -Management

APIs sind ein wesentlicher Bestandteil jeder modernen verteilten Anwendung, und die von PaaS bereitgestellten integrierten Frameworks vereinfachen die API-Entwicklung und -Verwaltung erheblich. APIs werden häufig verwendet, um externen Systemen die Verbindung mit internen Anwendungsressourcen zu ermöglichen oder die verschiedenen Komponenten in einer Microservice-Anwendungsarchitektur miteinander zu verbinden.

Mikroservices

PaaS ist eine Ergänzung zu Microservices und eine große Hilfe beim Deployment. PaaS macht es einfach, mehrere Microservice-Anwendungen bereitzustellen und sie für die Kommunikation miteinander zu konfigurieren. Die meisten PaaS-Anbieter verfügen über Dashboards für Benutzeroberflächen, die eine visuelle Beschreibung des aktuellen Deployment bieten. Dies ermöglicht es Teams, das Layout ihres Live-Microservice-Deployment besser zu sehen und zu erfassen.

Mehrphasige Umgebungen

PaaS kann schnell mehrphasige Umgebungen wie Entwicklung, Staging und Produktion bereitstellen. Dies ermöglicht Teams eine zusätzliche Qualitätssicherung, da sie das korrekte Anwendungsverhalten in mehreren Phasen überprüfen können. Wenn sich die Anwendung im Staging wie erwartet verhält, ist das anschließende Deployment in der Produktionsumgebung geradezu trivial.

Datenbank-Hosting

Die meisten Anwendungen hängen von einer Art beständigem Datenspeicher ab. Da dies so üblich ist, bieten PaaS-Anbieter Datenbank-Deployment und -verwaltung als Kernfunktionalität an. Die Teams können das Hosting der PaaS-Anwendung umgehen und stattdessen PaaS ausschließlich für den Datenbankzugriff verwenden. Dieses Muster ist so üblich, dass einige PaaS-Anbieter spezifische Abrechnungspläne ausschließlich für die Datenbankfunktion anbieten.

Geschäftsanalytik

Die meisten PaaS-Angebote erleichtern Entwicklern das Leben erheblich, indem sie Anwendungen und Frameworks in die Durchführung von Geschäftsanalysen einbeziehen. Diese Lösungen machen es für Anwendungsentwickler wesentlich einfacher, Benutzern alle Daten und Metriken zur Verfügung zu stellen, die sie benötigen, um fundierte Geschäftsentscheidungen zu treffen.

Kommunikation

Kommunikationsfähigkeit ist für jede moderne Anwendung von wesentlicher Bedeutung, und PaaS bietet Kommunikationstools und Frameworks zur Unterstützung von Technologien wie SMS, E-Mail, Sprache usw., die es Entwicklern erleichtern, ihren Anwendungen Kommunikationsfunktionen hinzuzufügen.

Interne Tools und private Dashboards

Interne Tools sind perfekte Kandidaten für PaaS-Deployments, da sie keine besonderen einmaligen Infrastrukturabhängigkeiten erfordern. Interne Tools fassen interne Metriken in Übersichten zusammen und benötigen keine erweiterte, elastische Skalierung, da auf sie von einer Untergruppe interner Stakeholder zugegriffen wird. Trotzdem bietet PaaS standardmäßig eine elastische Skalierung.

Fazit

PaaS stellt Infrastruktur- und Entwicklungsressourcen für kleine und große Entwicklerteams gleichermaßen bereit. Teams können jederzeit auf die Ressourcen zugreifen, die sie benötigen, und entsprechend skalieren. PaaS ermöglicht eine schnellere Ausführung und häufigere Software-Releases und wird dadurch zu einer bevorzugten Technologie für Agile- und DevOps-Teams.

Bist du bereit, PaaS in deinen DevOps-Workflow zu integrieren? Erste Schritte mit DevOps