Sergey Nivens - stock.adobe.com
IaaS vs. PaaS: Unterschiede und Vorteile
Ob IaaS oder PaaS die geeignete Lösung ist, sollten Unternehmen im Vorfeld einer Cloud-Migration klären. Dieser Artikel erläutert die Unterschiede und stellt einige Angebote vor.
IaaS und PaaS sind zwei der ältesten und am häufigsten verwendeten Bezeichnungen für bestimmte Cloud-Computing-Servicemodelle. Es handelt sich dabei um ähnliche, aber dennoch grundlegend verschiedene Ansätze.
Unternehmen müssen diese Unterschiede verstehen, um den richtigen Cloud-Service für ihre konkreten Anwendungsfälle zu wählen. Dieser Artikel erläutert die Vor- und Nachteile von IaaS im Vergleich zu PaaS und gibt einen Überblick über die wichtigsten IaaS- und PaaS-Angebote von AWS, Microsoft Azure und Google Cloud Platform.
IaaS und PaaS definiert
Infrastructure as a Service (IaaS) bietet einen On-Demand-Zugang zu einer virtualisierten IT-Infrastruktur über das Internet. Typischerweise bietet IaaS nur Zugang zu den Kerninfrastrukturkomponenten – Computing, Netzwerk und Storage. Benutzer installieren und verwalten die Software, die sie auf ihrer Cloud-basierten Infrastruktur ausführen möchten.
Die Cloud-Anbieter warten und überwachen die physische Infrastruktur, auf der IaaS bereitgestellt wird. Die Verantwortung für die Sicherung und Überwachung der Workloads, die auf dieser Plattform ausgeführt werden, liegt jedoch bei den Nutzern. Der Hauptwert von IaaS besteht also lediglich in der Vermeidung des Aufwands, den die Anschaffung, Einrichtung und Verwaltung eines physischen Servers bedeutet.
Ursprünglich war IaaS das zentrale Geschäftsmodell großer Public Clouds wie AWS, die Mitte der 2000er Jahre Hosting-Dienste für Datenbanken und virtuelle Maschinen (VMs) herausbrachten. Erst später kamen Angebote für Services hinzu, die es Unternehmen erlaubten, sich mehr auf die Entwicklung als auf die Verwaltung ihrer Cloud-Anwendungen zu konzentrieren.
Platform as a Service (PaaS) bietet ebenfalls eine Infrastruktur zum Hosten von Anwendungen an, aber zusätzlich dazu Software-Tools, die Kunden bei der Entwicklung und Bereitstellung dieser Anwendungen unterstützen. PaaS vereinfacht die Einrichtung und Verwaltung von Hardware und Software.
PaaS ist weniger flexibel als IaaS und bietet in der Regel nur ein eingeschränktes Portfolio an Tools für die Entwicklung oder Bereitstellung von Anwendungen. Sie sind kein universeller Ersatz für die gesamte IT-Infrastruktur und den Softwareentwicklungs-Workflow eines Unternehmens.
Eingeläutet durch Angebote wie das von Heroku, wurden PaaS-Angebote Mitte der 2000er Jahre populär, zur gleichen Zeit, als IaaS entstand. PaaS entwickelte sich unabhängig von IaaS. In den meisten Fällen nahmen die großen IaaS-Anbieter zu dieser Zeit PaaS nicht in ihre Cloud-Dienste mit auf und die PaaS-Anbieter boten neben PaaS keine eigenen IaaS-Dienste an.
Wo die Grenzen zwischen IaaS und PaaS verschwimmen
Viele frühe PaaS-Anbieter schränkten ein, welche Technologien sie unterstützten, und ihre Software-Tools waren nur mit ihren eigenen Hosting-Plattformen kompatibel. Es war schwierig, von einem PaaS-Angebot zu einem anderen zu migrieren oder eine PaaS-basierte Entwicklungspipeline so anzupassen, dass sie stattdessen auf einem generischen IaaS lief.
Da Kunden zunehmend versuchten, Cloud Lock-ins zu vermeiden, weiteten PaaS-Anbieter jedoch die Kompatibilität sukzessive aus. Open-Source-Angebote, beispielsweise Docker-Container, die mit Kubernetes automatisiert werden, ersetzten einige proprietäre Werkzeuge.
Infolgedessen fügten Cloud-Computing-Anbieter, die ursprünglich auf IaaS spezialisiert waren, PaaS-Angebote hinzu und erhöhten die Kompatibilität mit ihren jeweiligen IaaS-Angeboten. Beispielsweise können einige Versionen von AWS CodePipeline, einem Continuous-Delivery-Service, der Teil eines PaaS-Frameworks in der AWS-Cloud ist, Anwendungen auf virtuellen Maschinen oder Containern bereitstellen, die auf dem IaaS von AWS laufen.
Diese Integration von PaaS in IaaS und umgekehrt hat die Unterschiede zwischen den beiden Systemen etwas verwischt. Vereinfacht ausgedrückt, ist IaaS ein Cloud-Service, der streng auf die Infrastruktur beschränkt ist. Wenn der Dienst Software-Tools mit der Infrastruktur koppelt, dann ist es ein PaaS.
IaaS-Plattformen enthalten jedoch einige vorkonfigurierte Softwareumgebungen. So kann eine Cloud-basierte VM mit einem Betriebssystem vorinstalliert sein. Diese Software-Stacks sind jedoch generisch, und die Benutzer müssen mehr Zeit in deren Anpassung investieren. IaaS bietet keine vollständige Umgebung zur Entwicklung oder Bereitstellung von Anwendungen, wie es bei PaaS der Fall wäre.
Wann ist IaaS und wann PaaS besser geeignet?
Durch die Kenntnis der dargelegten Vorteile und Unterschiede von IaaS und PaaS ist es für Unternehmen leichter einzuschätzen, welches der beiden für bestimmte Workloads besser geeignet ist.
IaaS ist demnach die beste Option für Unternehmen, die über die Ressourcen verfügen, um Anwendungen selbstständig zu entwickeln, zu implementieren und zu verwalten. IaaS ist auch dann vorzuziehen, wenn ein Benutzer Komponenten benötigt, die nicht von einem PaaS-Angebot abgedeckt werden, wie zum Beispiel ein bestimmtes Entwicklerwerkzeug oder ein maßgeschneidertes Betriebssystem.
Der häufigste Anwendungsfall für IaaS ist, wenn eine Organisation bereits über die Anwendung oder über die internen Ressourcen zur Entwicklung der Anwendung verfügt und einfach nur eine Infrastruktur benötigt, um sie zu hosten. Ein Einzelhändler, der einen Online-Marktplatz aufgebaut hat, könnte sich zum Beispiel an einen IaaS-Anbieter wenden, um die zugehörigen Workloads zu hosten. Ein anderes Unternehmen, könnte sich für ein IaaS-Hosting-Produkt entscheiden, um sein betriebseigenes Gehaltsabrechnungssystem in die Cloud zu migrieren.
PaaS ist die bessere Wahl für Unternehmen, die über weniger Ressourcen zur Entwicklung und Verwaltung von Anwendungen verfügen. PaaS macht Entwickler nicht völlig überflüssig, aber es rationalisiert die Entwicklungs- und Bereitstellungsvorgänge und bündelt sie mit der Hosting-Infrastruktur. Aus diesem Grund kann PaaS attraktiver für KMUs sein, für die Anwendungsentwicklung eher mühselig ist, so dass sie diese schnell wieder vom Tisch haben wollen.
In der Regel kostet IaaS weniger als PaaS für Workloads mit vergleichbarem Ressourcenaufwand, aber mit einem IaaS müssen möglicherweise Software-Tools aus anderen Quellen bezahlt werden. Mitunter kann das teurer werden, als im Paket mit PaaS. Es gibt auch noch andere Kostenfaktoren, einschließlich möglicher Verwaltungskosten für die Wartung der Infrastruktur.
Cloud-IaaS und PaaS-Dienste im Vergleich
Heute haben die großen Cloud-Computing-Anbieter – AWS, Microsoft und Google – sowohl IaaS als auch PaaS im Portfolio. Sie unterscheiden sich jedoch darin, wie sie diese PaaS-bezogenen Cloud-Dienste organisieren.
AWS bietet kein PaaS im herkömmlichen Sinne an, aber macht es den Kunden leicht, verschiedene AWS-Produkte zu integrieren, um ein auf ihre Bedürfnisse zugeschnittenes PaaS zu schaffen. Im Gegensatz dazu haben Azure und Google Cloud Platform für ihr End-to-End-PaaS eine Sammlungen von Tools und Diensten gebündelt. Sie bieten jedoch innerhalb dieser Servicepakete jeweils unterschiedliche Software-Tools und Hosting-Varianten an.
AWS IaaS- und PaaS-Angebote
Auf AWS ist das primäre IaaS für das Hosting von virtuellen Maschinen Amazon EC2. AWS bietet unter den großen Cloud-Anbietern die größte Bandbreite an Instanztypen mit einer Reihe von Allzweck-VMs sowie auf Arbeitsspeicher, Compute und Storage zugeschnittene Instanzen.
Benutzer kombinieren EC2 oft mit einem oder mehreren Datenspeicherdiensten von AWS, um eine Anwendung und die für den Betrieb erforderlichen Daten zu hosten. AWS bietet mehrere Speicheroptionen, darunter
-
Amazon S3
-
Amazon Elastic Block Store
-
Amazon Elastic File System
Obwohl die Amazon-Cloud-Services kein traditionelles PaaS sind, bietet AWS mehrere Dienste an, die von den Kunden leicht zu einem PaaS kombiniert werden können. Zum Beispiel:
-
AWS Cloud9: Diese Cloud-basierte integrierte Entwicklungsumgebung wird zur Entwicklung von Anwendungen verwendet.
-
AWS CodePipeline: Entwickler können dieses Tool zur Erstellung und Bereitstellung von Anwendungen verwenden. Es unterstützt Bereitstellung auf einer Vielzahl von AWS-Hosting-Optionen, wie zum Beispiel virtuelle Maschinen mit EC2 oder Container auf dem Amazon Elastic Container Service.
-
AWS CodeDeploy: Mit diesem Bereitstellungsdienst können Unternehmen die Bereitstellung für verschiedene AWS-Computerdienste automatisieren.
-
AWS Elastic Beanstalk: Entwickler verwenden dieses Tool zum Hochladen von Code für Webanwendungen und -dienste. AWS übernimmt die Bereitstellung, Provisionierung und das Load Balancing.
Im Vergleich zu den anderen großen Cloud-Anbietern weist AWS die geringste Anbindung der verschiedenen PaaS-bezogenen Dienste untereinander auf. Um PaaS-Funktionen bereitzustellen, müssen die Benutzer mehrere Dienste miteinander kombinieren, um eine vollständige Pipeline für die Entwicklung und Bereitstellung von Anwendungen aufzubauen. Dieser Ansatz spricht Organisationen an, die es vorziehen, sich ihre Werkzeuge auszusuchen. Das bedeutet aber, dass sie sich mit mehreren AWS-Angeboten vertraut machen und selbst deren Integration sicherstellen müssen.
Die Verteilung von Verantwortung im Management von geschäftlichen IT-Strukturen unterscheiden sich, je nachdem, ob die Lösung On-Premises, als IaaS, PaaS oder SaaS bereitgestellt wird.
Microsoft IaaS- und PaaS-Angebote
Azure Virtual Machines ist Microsofts wichtigstes Angebot für das Hosten von VMs in der Cloud. Es gibt rechenoptimierte, speicheroptimierte, Bursting-fähige und allgemein einsetzbare VM-Typen. Azure bietet für die Datenspeicherung Azure Storage und Azure Databases. Die Speicherangebote sind in Unterkategorien unterteilt, darunter
-
Azure Disc Storage
-
Azure File Storage
-
Azure Blob Storage
-
Azure Queue Storage
Die PaaS-Angebote von Azure sind in einer Dienstleistungskategorie namens Azure App Service gruppiert, die Hosting und Tools zur Rationalisierung der Anwendungsentwicklung und -bereitstellung unter Verwendung einer Vielzahl von Sprachen und Frameworks bietet. Der App Service bietet auch Flexibilität für Organisationen, für die es wichtig ist, die Art und Weise, wie ihr PaaS läuft, anpassen zu können. Diese Tools sind im App Service enthalten:
-
Azure Web Apps
-
Azure Web Apps for Containers
-
Azure API Apps
Von allen Cloud-Anbietern kommt Azure wohl am ehesten über den App Service einer PaaS-Lösung aus einem Guss nahe. Daher ist Azure eine gute Wahl für Unternehmen, die eine einfache Möglichkeit suchen, die Tools für den Betrieb eines PaaS einzurichten.
Google IaaS- und PaaS-Angebote
Wie AWS und Azure verfügt Google über ein Compute IaaS-Angebot. Es heißt Google Compute Engine heißt und stellt vordefinierte und benutzerdefinierte Maschinentypen zur Verfügung. Google bietet auch Speicherdienste an, zum Beispiel:
-
Google Cloud Storage
-
Google Cloud Filestore
-
Google Persistent Disk
Googles PaaS-Plattform, die App Engine, ähnelt dem Azure App Service insofern, als sie die Entwicklung und Bereitstellung von Anwendungen unterstützt, die in einer Vielzahl von Sprachen und Frameworks geschrieben wurden. Sie bietet außerdem viele verschiedene Bereitstellungs-Tools und -Methoden, darunter
-
Eine Standardumgebung für Sandbox-Bereitstellungen, bestimmte spezifische Quellcodes, kostengünstige Anwendungen und Skalierungsanforderungen mit kurzfristigen, hohen Spitzenwerten.
-
Eine flexible Umgebung für containerisierte Anwendungen, die auf der Compute Engine laufen oder Anwendungen, die auf das Compute-Engine-Netzwerk angewiesen sind, Anwendungen mit stetigem Datenverkehr, benutzerdefinierten Laufzeiten und Anwendungen, die auf Frameworks mit nativem Code angewiesen sind.
Entwickler können auch beide Umgebungen in der App Engine nach Bedarf kombinieren.
Die App Engine ist eher auf die Linux-basierte Entwicklung ausgerichtet, während der Azure App Service sich eher an Benutzer mit Windows-basierten Frameworks und Services richtet. Ein Unternehmen, das seine Anwendungen zum Beispiel in .NET erstellt, wird wohl den App Service bevorzugen, während App Engine sich an IT-Shops wendet, die Unix-Werkzeuge verwenden und Anwendungen mit Docker-Containern bereitstellen möchten – die ebenfalls unter Windows laufen, aber in Linux-basierten Umgebungen eher zu Hause sind.