Gajus - stock.adobe.com
Wie sich IaaS und PaaS für Entwickler unterscheiden
Bevor sie sich für IaaS oder PaaS entscheiden, sollten Unternehmen die Unterschiede kennen. Ein Vergleich beider Cloud-Umgebungen aus Entwicklungsperspektive.
Traditionell werden Organisationen zwei Cloud-Optionen für die Entwicklung präsentiert: Infrastructure as a Service (IaaS) und Platform as a Service (PaaS).
Sie unterscheiden sich deutlich in dem, was sie Entwicklern bieten. Daher ist es wichtig, die Unterschiede zwischen beiden Ansätzen zu verstehen.
Dieser Artikel befasst sich mit den Hauptunterschieden zwischen IaaS und PaaS, was sie Entwicklern in Bezug auf Microservices-Entwicklungsressourcen bieten und warum Unternehmen nicht unbedingt davon ausgehen sollten, dass sie eine Alles-oder-Nichts-Wahl treffen müssen, wenn es um IaaS oder PaaS geht.
IaaS versus PaaS: Die Unterschiede
IaaS kann man als Build-it-yourself-Ansatz bezeichnen. Durch die Arbeit mit einem IaaS-Angebot, wie Amazon Web Services (AWS) oder Google Compute Engine (GCE), haben Entwickler und Mitarbeiter im Bereich der Applikationsverwaltung Zugang zu einem integrierten Toolset und anderen Ressourcen, die bei der Entwicklung und Verwaltung von Anwendungen helfen.
„IaaS ist sozusagen Low-Level; ich habe alle Ressourcen zur Verfügung – Rechenressourcen, Storage und Netzwerk – und baue sie selbst zusammen“, erklärt Randy Shoup, VP of Engineering beim Online-Abonnement und -Shopping-Service Stitch Fix, der stark in die Entwicklung von Mikroservices investiert. „Also, statt das Auto zu bekommen, hol' ich mir die Teile des Autos und baue es selbst zusammen.“
IaaS stellt die Tools und Ressourcen zur Verfügung, die für die Entwicklung benötigt werden, aber die Organisation ist für die Bereitstellung und Verwaltung ihrer eigenen Entwicklungsplattform verantwortlich. Das bedeutet, dass Entwickler ihre eigenen Ausführungsprozesse orchestrieren, ihre eigenen Datenservices verwalten und das Betriebssystem pflegen müssen.
Für einige Teams bedeutet dies mehr Flexibilität beim Hinzufügen von individuellen Funktionen und dem Optimieren von Anwendungen und Diensten für maximale Leistung. Es ist aber auch zeitaufwendiger, da mehr Arbeit für die Entwickler anfällt.
PaaS bietet Entwicklern hingegen das komplette Entwicklungspaket: Tooling, Support und eine vorkonfigurierte Entwicklungsplattform. PaaS kann mit der Full-Service-Tankstelle für Application Development Management verglichen werden. Beispiele für PaaS-Optionen sind die OpenShift-Plattform von Red Hat, Heroku, Microsoft Azure und die Google App Engine. Engine Yard, OpenStack und CA Technologies sind weitere Beispiele von Anbietern in diesem Bereich. PaaS-Kunden arbeiten auf einer Plattform und mit Services, die vom PaaS-Anbieter erstellt und gewartet werden.
„Bei PaaS erhält man das Auto und fährt einfach los“, sagt Shoup. „Alle Teile sind bereits für einen zusammengebaut. Sie arbeiten zusammen, und das macht es einfacher.“
Das bedeutet, dass Ausführungsservices, Datenservices und die Betriebssystemfunktionen über die Software des Herstellers abgewickelt werden. Der PaaS-Anbieter stellt außerdem eine Reihe von Entwicklungs-Tools, Frameworks und anderen Ressourcen zur Verfügung, die spezifisch mit der Plattform des Anbieters integriert sind.
PaaS-Anbieter können die Plattform zwar an die spezifischen Anforderungen eines Unternehmens anpassen, aber es kann auch Zeit in Anspruch nehmen oder es erfordern, dass die Organisation auf eine neue Version der Plattformsoftware wartet.
„Der einzige Unterschied besteht darin, ob die Entwicklungs-Tools tatsächlich in die Umgebung integriert sind oder ob man sie separat hostet“, erklärt Chris Tozzi, der DevOps-Analyst bei Fixate IO ist.
Zusammen, statt getrennt
Beide Ansätze der Anwendungsentwicklung funktionieren zwar unabhängig voneinander, doch häufig betreiben Unternehmen sowohl IaaS- als auch PaaS-Prozesse parallel oder in Verbindung miteinander.
„An diesem Punkt sind wir aktuell bei Stitch Fix“, erläutert Shoup. „Wir befinden uns in einer Übergangsphase. Wir waren komplett auf Platform as a Service und haben Heroku genutzt, und befinden uns nun auf halbem Weg zwischen diesem und dem Aufbau einer eigenen Plattform auf einer Infrastructure as a Service von Amazon Web Services.“
Shoup erklärt, dass ein Unternehmen eine Strategie verfolgen kann, bei der benutzerorientierte Aspekte einer Anwendung mithilfe eines PaaS-Systems entwickelt werden, während Backend-Funktionen mithilfe eines IaaS-Ansatzes behandelt werden.
„Man kann sich zum Beispiel durchaus vorstellen, dass alle anwenderorientierten Teile, alle anwenderorientierten Applikationen ein Standard-PaaS wie Heroku, App Engine oder Cloud Foundry nutzen“, sagt Shoup. „Werden die Backend-Services vielleicht nicht mehr gut bedient, verlagert man diese auf die Infrastruktur. Das ist eine völlig legitime Strategie, und alle modernen Anbieter von Mikroservice-Plattformen ermöglichen das.“
Shoup erklärt, dass dieser Übergang zwischen IaaS und PaaS auch innerhalb der Angebote eines Anbieters stattfindet. Da das PaaS-Angebot Heroku auf AWS basiert, haben die Benutzer theoretisch Zugriff auf dieselben AWS-Entwicklungswerkzeuge, unabhängig davon, für welche anderen Entwicklungsprojekte sie es benötigen, egal ob auf oder außerhalb der Heroku-Plattform. „Von Heroku aus haben Sie relativ bequemen Zugang zu allen AWS-Diensten“, sagt er. „Also kann man einen Fuß in beiden Welten haben.“
Einige Experten gehen davon aus, dass die Grenzen zwischen dem, was als IaaS und PaaS bezeichnet wird, verschwimmen. Neue Angebote für die Orchestrierung von Containern von großen Anbietern, zum Beispiel Amazon EC2 Container Service, können als eine Art Mittellösung zwischen IaaS und einer vollständig integrierten Entwicklungs- und Deployment-Plattform betrachtet werden.
„Die Anbieter möchten, dass man glaubt, dass es entweder das eine oder das andere ist“, ist der unabhängige Analyst George Lawton überzeugt. „Doch es ist in Wirklichkeit ein Spektrum, und sie kommen irgendwie zusammen.“
Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!