Hor - stock.adobe.com
Open-Source-PaaS: sechs Optionen im Vergleich
Open-Source-PaaS ist eine gute Option für Entwickler, die die Kontrolle über das Hosting und eine vereinfachte Anwendungsbereitstellung wünschen. Welche Angebote existieren?
Platform as a Service (PaaS) ist ein Hosting-Modell, das den Großteil der zugrunde liegenden Infrastruktur abstrahiert, die für die Bereitstellung einer Cloud-Software erforderlich ist. PaaS-Tools stehen eine Stufe unter Software as a Service (SaaS) und reduzieren den Overhead, der für die Bereitstellung von Anwendungsabhängigkeiten (zum Beispiel Datenbanken) erforderlich ist.
Platform as a Service ist bei Entwicklern beliebt, da es die Markteinführungszeit der meisten Produkte verkürzt und die Bereitstellungsprozesse vereinfacht, die in Cloud-Umgebungen, welche üblicherweise als Infrastructure as a Service (IaaS) bezeichnet werden, traditionell komplexer sind.
Obwohl die Benutzerfreundlichkeit ein Schwerpunkt von PaaS ist, gibt es auch einige Nachteile. Zum einen ist die Bindung an einen bestimmten Anbieter ein Problem. Die von den meisten Cloud-Anbietern angebotene virtualisierte Infrastruktur kann bei Bedarf problemlos zu anderen Anbietern verschoben werden. Doch PaaS-Bereitstellungen sind spezialisiert und im Allgemeinen nicht reproduzierbar. Der Wechsel von einem Anbieter zu einem anderen ist mit hohem Aufwand verbunden.
An dieser Stelle kommt Open-Source-PaaS ins Spiel. Open-Source-PaaS macht zwar die Verwaltung von Servern nicht überflüssig, vereinfacht aber den Prozess der Anwendungsbereitstellung und -verwaltung. Die Benutzer haben mehr Kontrolle darüber, wo und wie sie ihre Anwendungen hosten, während gleichzeitig der Aufwand für die Markteinführung reduziert wird.
Sechs Open-Source-PaaS
Es gibt eine Reihe von Open-Source-PaaS-Optionen auf dem Markt, jede mit eigenen Besonderheiten. Die unten aufgeführten Plattformen sind sechs der beliebtesten Projekte, mit denen Entwicklungsteams die Komplexität der Infrastrukturverwaltung abstrahieren und gleichzeitig die Möglichkeiten der Cloud nutzen.
1. CapRover
CapRover ist eine kostenlose und quelloffene PaaS-Lösung, die im Jahr 2017 veröffentlicht wurde. CapRover wurde mit TypeScript entwickelt und ist einfach zu bedienen, weil es nur wenige Befehle benötigt. Da es auf Docker basiert, kann fast jede Anwendung mit minimalem Aufwand auf CapRover bereitgestellt werden – dank des CapRover-eigenen Captain-Definition-Dateiformats. In dieser Datei sind alle Ressourcen und Abhängigkeiten aufgeführt, die für die erfolgreiche Ausführung der zugrunde liegenden Anwendung erforderlich sind.
CapRover zeichnet sich auch durch seinen integrierten Marktplatz für One-Click-Anwendungen aus. Dies macht den Einsatz gängiger Technologien wie WordPress und MySQL einfach, was die Gesamtkomplexität des Einsatzes einer Anwendung in CapRover reduziert.
Wichtige Merkmale
- automatische Bereitstellung von SSL-Zertifikaten von Let's Encrypt
- lokaler Client mit Befehlszeilenschnittstelle (Command Line Interface, CLI) für die Automatisierung
- webbasierte grafische Benutzeroberfläche
- unterstützt alle Docker-basierten Anwendungen
- integrierter Marktplatz für die Bereitstellung anderer Open-Source-Anwendungen
2. Cloud Foundry
Cloud Foundry ist eine leistungsstarke Plattform, welche die Skalierbarkeit von Kubernetes nutzt, um eine einfache und dennoch leistungsfähige PaaS-Option zu schaffen. Cloud Foundry wird mit BOSH bereitgestellt, einer eigenen plattformübergreifenden Anwendung für die Bereitstellung und Verwaltung von Cloud-Software, und bietet Entwickler-Tools, die den Overhead bei der Bereitstellung von Software in einem Kubernetes-Cluster reduzieren, ohne die Qualität oder Geschwindigkeit zu beeinträchtigen.
Cloud Foundry ist ein einfacheres Tool als CapRover und wird hauptsächlich über eine benutzerdefinierte CLI verwaltet. Es verfolgt einen modularen Ansatz für seinen eigenen Service-Marktplatz, der mit Funktionen wie Log-Streaming und Single-Sign-On-Unterstützung erweitert werden kann. Besonders interessant ist, dass er auch die Kommunikation mit APIs von Drittanbietern wie GitHub und AWS vermitteln kann.
Wichtige Merkmale
- CLI-Client zur Integration in bestehende Build-Tools
- flexible Infrastrukturunterstützung durch BOSH-Stammzellen
- Unterstützung für die meisten wichtigen Programmiersprachen und benutzerdefinierte Buildpacks
- integrierter Service-Marktplatz
3. Dokku
Dokku ist eine Headless-PaaS-Lösung, die sich durch ein einfaches Profil und Benutzerfreundlichkeit auszeichnet. Da es sich um eine reine CLI-Implementierung handelt, ist die Benutzerfreundlichkeit von Dokku stark von Herokus eigenem Tooling inspiriert. Das PaaS zeichnet sich vor allem durch seine Plug-In-Architektur aus.
Da Dokku vollständig als eine Sammlung gut strukturierter Plug-ins aufgebaut ist, kann es leicht erweitert werden, um Abhängigkeiten innerhalb eines einzelnen Anwendungs-Repositorys zu installieren – wie Datenbanken und Caching-Dienste – und um gleichzeitig zusätzliche Funktionen wie die Registrierung von Let's Encrypt SSL-Zertifikaten und sogar automatische Slack-Benachrichtigungen zu unterstützen.
Wichtige Merkmale
- CLI-Client zur Integration in bestehende Build-Tools
- Git-Push-basierte Bereitstellungsstrategie à la Heroku
- umfangreiche Plug-In-Architektur
- integrierte Docker-Unterstützung für die erweiterte Nutzung
4. OKD
OKD ist der Open-Source-Kern des kommerziellen PaaS-Tool OpenShift von Red Hat und eine erweiterte Kubernetes-Distribution, die für entwicklerzentrierte Funktionen wie kontinuierliche Entwicklung und mandantenfähige Bereitstellung optimiert ist. OKD ist für die Ausführung beliebiger Kubernetes-Workloads konzipiert und wurde für Teams entwickelt.
Mit einer Webkonsole und einer CLI schafft OKD einen zentralen Knotenpunkt für die Verwaltung vom zugrunde liegenden Technologie-Stack bis hin zum Team und der Organisation. Obwohl OKD betont, dass es sich nicht um einen Fork von Kubernetes handelt, sondern um eine Schwester von Kubernetes, hat man sich bei den Funktionen, die zusätzlich zu Kubernetes angeboten werden, viele Gedanken gemacht.
Wichtige Merkmale
- native Unterstützung für Lightweight Directory Access Protocol (LDAP), Active Directory und OAuth
- Multi-Tenancy-Unterstützung
- automatisierte Git-basierte Deployment-Hooks
- CLI- und GUI-Schnittstellen für die Erstellung und Überwachung von Anwendungen
5. Porter
Porter ist eine Kubernetes-basierte PaaS, die 2020 mit dem Ziel auf den Markt kam, Heroku auf den bevorzugten Cloud-Anbieter eines Entwicklers zu übertragen. Porter ist eine Open-Source-Plattform mit Self-Hosting-Fähigkeiten und ein durchdachtes Tool mit einem gut gestalteten Dashboard.
Was Porter besonders interessant macht, ist sein Monetarisierungsmodell, das dem traditionellen Weg eines Open-Source-Kerns folgt. Anstatt die gesamte Infrastruktur selbst zu betreiben, stellt Porter automatisch ein Kubernetes-Cluster beim bevorzugten Cloud-Provider des Nutzers bereit und gibt ihm so die volle Kontrolle über die zugrunde liegende Infrastruktur – und Porter abstrahiert die gesamte Kubernetes-Komplexität, um die Einführung zu erleichtern.
Wichtige Merkmale
- CLI- und GUI-Schnittstellen für die Bereitstellung und Verwaltung von Anwendungen
- integrierte Unterstützung für AWS, Google Cloud Platform und Digital Ocean
- integrierter Marktplatz für Add-ons wie Datenbanken und Caching-Dienste, die mit einem Klick hinzugefügt werden können
- native Unterstützung für Docker und Buildpacks
6. Rancher
Obwohl Rancher sich selbst eher als Kubernetes as a Service denn als PaaS bezeichnet, verdient es aufgrund seiner Historie einen Platz auf dieser Liste. Rancher bietet eine breite Palette an Funktionen für die Bereitstellung und Verwaltung von Kubernetes-Clustern in einer Reihe von Cloud- und virtualisierten Umgebungen, einschließlich VMware vSphere, und wurde entwickelt, um die Bereitstellung und Verwaltung von Kubernetes-Clustern zu unterstützen.
Ähnlich wie die anderen PaaS-Tools bietet Rancher eine Fülle von zusätzlichen Funktionen für die Verwaltung von Benutzern, Clustern und Organisationen an einem zentralen Ort. Obwohl sein CLI-Tool als Erweiterung des bestehenden kubectl-Tool fungiert, bietet seine grafische Benutzeroberfläche einige hervorragende Hilfsfunktionen für die Bereitstellung und Verwaltung von Cloud-Anwendungen.
Wichtige Merkmale
- einfache Docker-basierte Bereitstellung
- Multi-Cloud-Unterstützung durch Verwaltung mehrerer Kubernetes-Cluster
- CLI- und GUI-Schnittstellen für die Verwaltung von Anwendungen