Anzeige
Anzeige

Container sorgen auf IaaS- und PaaS-Systemen für Flexibilität: Tetris für die Cloud

Immer mehr Unternehmen setzen eigens für die Cloud konzipierte Systeme ein und richten Applikationsentwicklung und -management darauf aus. Doch welches Modell eignet sich am besten für zeitgemäße Web-Applikationen – IaaS, PaaS oder Container-Technologien? Wir stellen die Vor- und Nachteile der einzelnen Systeme vor und beschreiben, wie sie sich verbinden lassen.

7 Min.
Artikel merken
Anzeige
Anzeige

Ein uraltes System in die Cloud heben – das kommt für die Applikationsentwicklung und -Bereitstellung heutzutage nicht mehr infrage. Vielmehr müssen Programmierer Anwendungen speziell für die Wolke entwickeln. Für zeitgemäße Software-as-a-Service- und Web-Applikationen bedeutet das: Um von den Eigenschaften einer Cloud zu profitieren, müssen sie von Grund auf neu gestaltet werden. Unternehmen können dieses Vorhaben mit unterschiedlichen Systeme umsetzen.

Anzeige
Anzeige

Doch welches Service-Modell eignet sich am besten dafür – Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) oder Container-Technologien? Die drei Möglichkeiten unterscheiden sich grundlegend in ihren Charakteristika: Bei IaaS handelt es sich um die unterste Schicht des Modells. Sie bildet die Basis und stellt Dienste wie Rechenleistung, Speicherplatz und Netzwerkkapazitäten. Die mittlere Schicht beschreibt das Platform-as-a-Service-Modell – dort steht die Umgebung für die Entwicklung schon bereit. Container können auf Applikationen in beiden Modellen angewandt werden: Die Anwendung wird von ihrer jeweiligen Umgebung getrennt und lässt sich dadurch autonom betreiben – unabhängig davon, ob sie auf einer PaaS- oder IaaS-Umgebung läuft. Bei der Entwicklung geht es dementsprechend auch nicht um die Formel „IaaS versus PaaS versus Container“, sondern um die Frage, in welchem Cloud-Modell Container letztlich eingesetzt werden sollen. Wenn man von einer Formel sprechen will, dann würde sie also eher „IaaS versus PaaS plus Container“ lauten.

Schon jetzt ist zu beobachten, dass IaaS- und PaaS-Umgebungen immer stärker miteinander verschmelzen. So will IBM sein IaaS-Angebot Softlayer mit seinem PaaS-System Bluemix zusammenführen: Auf einer Plattform lassen sich dann auch Infrastruktur wie virtuelle Maschinen und Speicherplatz verwalten. Eine Strategie, die sich viele IaaS-Anbieter genauer anschauen sollten.

Anzeige
Anzeige

Bisher lassen sich im IaaS-Markt zwei Arten von Anbietern unterscheiden: Diejenigen, die nur Infrastruktur anbieten, und diejenigen, die ein Portfolio von infrastrukturnahen Plattform-Services aufbauen. Während die erste Art von Anbietern den Großteil des Marktes ausmachen, gelten letztere als erfolgreicher: Nach dem Motto „It’s the platform stupid“ konzentrieren sie sich nicht auf die reine Infrastruktur, sondern erweitern ihr Angebot um PaaS-Eigenschaften.

Anzeige
Anzeige

Ein Beispiel dafür: Amazon Web Services (AWS). Das Unternehmen bietet aktuell 70 Services, ein Großteil davon Plattform-Services. Allein 2015 hat AWS 722 neue Funktionen zu seiner Infrastrukturplattform hinzugefügt. So genannte „Serverless-Infrastructure“-Services wie AWS Lambda, Azure Functions und Google Cloud Functions stellen zudem den Programmcode bereit, ohne dass sich der Nutzer mit der darunterliegenden Infrastruktur beschäftigen muss. Alle großen IaaS- und PaaS-Anbieter haben auch Container-Technologien in ihr Portfolio aufgenommen, darunter Amazon EC2 Container Service, Microsoft Azure Container Service, Google Container Engine und Red Hat OpenShift Origin.

Applikationen zu verwalten, bedeutet bei IaaS viel Eigenleistung. Anders als bei PaaS hat der Nutzer dadurch allerdings auch mehr Kontrolle.
Applikationen zu verwalten, bedeutet bei IaaS viel Eigenleistung. Anders als bei PaaS hat der Nutzer dadurch allerdings auch mehr Kontrolle.

IaaS für mehr Kontrolle und Legacy

Der Erfolg von IaaS lässt sich an mehreren Eigenschaften festmachen: Den Entwicklern stehen umgehend Ressourcen zur Verfügung, um eine Idee umzusetzen und gegebenenfalls zu erweitern. Sollte sich die Idee nicht bewähren, lässt sich die Infrastruktur binnen weniger Minuten abschalten, ohne weitere Kosten zu verursachen. Dank eines AutoScaling-Mechanismus lässt sich die Web-Infrastruktur je nach Last und Anforderungen erweitern beziehungsweise schrumpfen. Bei IaaS kann zudem jeder auf eine vollständig automatisierte Infrastruktur zurückgreifen, um Konzepte wie „Infrastructure as Code“ zu nutzen.

Anzeige
Anzeige

Beim IaaS-Modell handelt es sich also um einen ähnlichen Ansatz wie beim Betrieb der Infrastruktur im eigenen Rechenzentrum – mit dem Unterschied, dass ausschließlich der IaaS-Anbieter Kontrolle über die physikalische Umgebung und deren Management-Software besitzt. Auf den virtuellen Maschinen lässt sich prinzipiell alles selbst installieren und zu 100 Prozent konfigurieren. Dennoch braucht ein Entwickler für jede IaaS-Umgebung ein spezielles Wissen über die Cloud-Infrastruktur, um anhand von Tools die Umgebung und Applikation zu verwalten. Für die Applikationsbereitstellung auf einer IaaS-Umgebung sind in der Regel die folgenden Schritte notwendig:

  • Bereitstellung von Rechenleistung, Speicherplatz und Netzwerk (zum Beispiel bei AWS, Azure, Rackspace, ProfitBricks)
  • Konfiguration des virtuellen Netzwerks (Einrichtung DNS, Routing etc.)
  • Sicherstellen der Sicherheit für die Infrastruktur (Isolation, Sicherheitsgruppen, Zugriffsrechte)
  • Einrichten der notwendigen Software für die Applikation (zum Beispiel JEE, Tomcat)
  • Konfiguration des Monitorings (Log-Dateien etc.)
  • Konfiguration der Automation für die Infrastruktur (Puppet, Chef, Ansible, Salt)
  • Konfiguration der Applikationsbereitstellung (zum Beispiel Jenkins)
  • Bereitstellung der Applikation
  • Sicherstellen der Skalierbarkeit und Verfügbarkeit

Anbieter wie AWS und Microsoft unterstützen mit ihren Plattform-Services die Entwicklung moderner Anwendungen. Die Umgebungen bieten aber auch bestehenden Anwendungen ein Zuhause: Dafür muss das Design der Cloud-Architektur angepasst und Themen wie das Sicherheitsmodell, Speicherplatz, DNS-Routing sowie das AutoScaling der Server berücksichtigt werden.

PaaS für Cloud-Native-Entwicklung und Convenience

Das PaaS-Modell abstrahiert die darunterliegende Infrastruktur von der Applikation. Dadurch müssen sich Entwickler nicht um den Aufbau und die Verwaltung kümmern. Stattdessen stellt eine PaaS-Umgebung eine standardisierte Plattform bereit, die zur Entwicklung, dem Test und Deployment dient. Das bedeutet zwar eine Erleichterung der Anwendungsentwicklung und des Managements, geht aber mit dem Kompromiss einher, dass die meisten PaaS-Umgebungen nur spezifische Funktionen eines Anbieters enthalten. Trotz des einfachen Entwicklungsprozesses müssen Entwickler auf andere Ressourcen und Tools wie zum Beispiel externe APIs und Microservices, Middleware und native APIs zurückgreifen. Für die Applikationsbereitstellung auf einer PaaS-Umgebung sind die folgenden Schritte notwendig:

Anzeige
Anzeige
  • Anpassen des Programmcodes für die PaaS-Umgebung
  • Einrichten der Regeln zur Skalierung
  • Konfiguration der Applikationsbereitstellung (zum Beispiel Jenkins)
  • Bereitstellung der Applikation
  • PaaS-Umgebung sorgt für Skalierbarkeit und Verfügbarkeit

Für Altsysteme kommt PaaS zwar weniger infrage, für neue cloudbasierte Applikationen kann die Umgebung aber Vorteile bieten – vor allem bei der Skalierbarkeit und dem Application Lifecycle Management (ALM). So lässt sich die Anzahl von Application Workers mit nur einem Befehl erhöhen beziehungsweise minimieren. Bei IaaS gibt es dafür nur wenige Möglichkeiten. Wer den IaaS-Weg beschreitet, muss sich selbst um eine Lösung für das Management seiner Applikation kümmern – von der Infrastruktur über Änderungen bis hin zur Skalierung der Instanzen.

PaaS-Umgebungen bieten hingegen eine einheitliche Schnittstelle, mit der sich die Applikation verwalten lässt. Die PaaS-Umgebung ist dabei als Blackbox implementiert und übernimmt die Aufgaben automatisch. So lassen sich zum Beispiel mit einem Befehl vollständige Umgebungen replizieren oder Klone von kompletten Produktivsystemen innerhalb von ein paar Minuten erzeugen. Bei PaaS haben die meisten Anbieter zudem einen Marktplatz, mit dem externe Services genutzt werden können. Dazu gehören beispielsweise Caches, Proxies, Mail-Gateways oder Datenbanken.

Fünf Schritte und fertig: Bei PaaS muss sich der Nutzer nicht um die Verwaltung der Infrastruktur kümmern, sondern kann auf eine standardisierte Plattform zurückgreifen.
Fünf Schritte und fertig: Bei PaaS muss sich der Nutzer nicht um die Verwaltung der Infrastruktur kümmern, sondern kann auf eine standardisierte Plattform zurückgreifen.

Container für eine bessere Portabilität

Mit Containern lassen sich Software-Stacks überall einsetzen. Heißt konkret: Man kann komplett auf andere Infrastrukturen umziehen und das System einfach mitnehmen. Ein Großteil traditioneller PaaS-Umgebungen setzt auf die Technologie, damit mehrere Kunden auf einer Infrastruktur laufen können. In der Fachsprache nennt sich das Multi-Tenancy. Dafür nutzen die Anbieter in den meisten Fällen Web-Container für eine bestimmte Programmiersprache wie Java, Rails, Ruby, Python, Django oder NodeJS, um darin den Programmcode zu speichern.

Anzeige
Anzeige

Technologien wie Docker oder LXC kommen zum Einsatz, um die Container zu verwalten und sorgen dafür, dass sie komplett voneinander isoliert sind. Diese Form der Architektur bietet sich für Applikationen an, die aus einem Frontend und entsprechenden Datenbanken im Backend bestehen. Container lassen sich aber auch für jede Art von Applikation wie Microservices, Big Data, Analytics und auch Altsystem-Anwendungen einsetzen. PaaS-Lösungen wie Cloud Foundry haben frühzeitig begonnen, Container-Technologien wie Docker zu unterstützen.

Auf IaaS-Umgebungen kann es helfen, Container gemeinsam mit Orchestration-Lösungen wie Kubernetes (Google GCP), Heat (OpenStack) oder Cloudify (Multi-Cloud: OpenStack, VMware, AWS) einzusetzen. Sie unterstützen beim automatisierten Verpacken, Bereitstellen und Verwalten von Anwendungen auf IaaS-Umgebungen. Die Kombination aus Containern und der automatischen Koordination macht die Infrastrukturebenen zudem flexibler, weil eine Abstraktionsschicht zwischen der Applikation und der darunterliegenden Infrastruktur eingezogen wird.

Welches System ist am besten geeignet? Das kommt ganz auf den Einzelfall an. Während bei IaaS der Kunde mehr Gestaltungsmöglichkeiten hat, verwaltet bei PaaS eher der Anbieter.
Welches System ist am besten geeignet? Das kommt ganz auf den Einzelfall an. Während bei IaaS der Kunde mehr Gestaltungsmöglichkeiten hat, verwaltet bei PaaS eher der Anbieter.

Da IaaS-Umgebungen typischerweise anhand von Skripten automatisiert werden, können Admins besser nachvollziehen, welche Schritte wann genau vorgesehen sind. Dadurch ist es einfacher, Fehler zu identifizieren oder ein Skript zu teilen oder zu vervielfachen. Die IaaS-Umgebung lässt sich dadurch deutlich besser kontrollieren als eine PaaS-Lösung. Allerdings funktioniert die auf IaaS implementierte Anwendung nur eingeschränkt auf anderen Plattformen und ist sehr komplex, da das Sytem von vielen externen Punkten abhängt.

Anzeige
Anzeige

An dieser Stelle kommt die Kombination von Containern und Automatisierung ins Spiel: Container erlauben einen höheren Kontrollgrad und eine bessere Portabilität, die auf IaaS implementierte Anwendung kann also auch besser auf anderen Plattformen laufen. Die Automation kommt im besten Fall nur dann zum Einsatz, um die Abhängigkeiten zwischen einzelnen Services und Ebenen zu handhaben und für die notwendige Skalierbarkeit und Ausfallsicherheit zu sorgen.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige