Nach der Einleitung ins Thema Cloud Computing beim letzten Mal geht es heute um die zentralen "Buzzwords" XaaS, Serverless und Edge Computing in der einhundertneunzehnten Episode des Anwendungsentwickler-Podcasts.
Inhalt
Infrastructure as a Service (IaaS)
Um den Wartungsaufwand für den Endkunden zu reduzieren, kamen IaaS-Anbieter wie Amazon EC2 oder Microsoft Azure auf die Idee, komplette VMs inkl. Betriebssystemen anzubieten.
Vorteile
Sehr leicht zu skalieren.
Wenig/kein Wartungsaufwand.
Kann komplett ohne eigene Hardware in der Cloud betrieben werden.
Geringe Anfangsinvestition.
Nachteile
Abhängigkeit vom konkreten Anbieter.
Nicht offline nutzbar.
Betriebssystem ist ggfs. vorgegeben bzw. nicht alle Betriebssysteme möglich.
Beispiele: Amazon Web Services, Microsoft Azure
Platform as a Service (PaaS)
In vielen Fällen liefert die eigene Konfiguration der Infrastruktur keinen Mehrwert für den Endkunden oder die Entwickler der Anwendung. Wer einfach nur die Plattform zur Ausführung seiner Anwendung braucht, und sich nicht um die Technik darunter kümmern will, der kann sich direkt die nötige Plattform mieten.
Vorteile
Sehr einfach skalierbar.
Keinerlei Administration des Betriebssystems nötig.
Fokus auf die Entwicklung der eigentlichen Anwendung möglich.
Nachteile
Anwendung muss Architekturkonzept der Plattform unterstützen.
Es können nur die angebotenen Infrastruktur-Dienste verwendet werden.
Beispiele: Microsoft Azure, Amazon Elastic Beanstalk.
Container
Um die Konfiguration der Laufzeitumgebung und auch der verschiedenen Komponenten wie Datenbank, Messaging usw. zu vereinfachen, kann man Container-Dienste wie Docker nutzen.
Vorteile
Beschreibung der Laufzeitumgebung als ausführbare Datei (Infrastructure as Code).
Komplett automatisierbar.
Sehr einfach skalierbar.
Nachteile
Initial hoher Aufwand.
Nicht für alle Anwendungen geeignet.
Beispiele: Docker.
Software as a Service (SaaS)
Wer auch die Anwendung selbst nicht mehr entwickeln will, kann sich fertige Applikationen mieten.
Vorteile
Einfaches Abrechnungsmodell.
Keinerlei Administration mehr nötig.
Fokus auf die Fachlickeit.
Nachteile
Kaum Möglichkeiten der individuellen Anpassung.
Starke Bindung an den SaaS-Anbieter.
Ggfs. Datenschutz-Probleme.
Beispiele: Google Docs, Office 365, Gmail, Salesforce.
Function as a Service (FaaS, Serverless Computing)
Wer seine eigene Anwendung aus kleinen funktionalen Bausteinen erstellen möchte, die individuell skalierbar sind, ist mit einem FaaS-Anbieter gut bedient.
Vorteile
Sogar einzelne Teile der Anwendung sind individuell skalierbar.
Neue Anwendungsfälle können schnell aus bestehenden Diensten zusammengebaut werden.
Transparente Abrechnung nach konkreter Nutzung.
Nachteile
Sehr starke Abhängigkeit vom FaaS-Anbieter.
Evtl. komplizierte Architektur.
Beispiele: Amazon Lambda, Azure Functions.
Edge Computing
Gerade das aktuell stark wachsende Internet der Dinge produziert eine enorme Menge an Daten. Wenn diese komplett in die Cloud transferiert werden müssten, um dort verarbeitet zu werden, würde es schnell zu Latenzproblemen kommen. Daher wandert die (Vor-)Verarbeitung dieser Datenströme zurück ins eigene Netz. Die Daten werden "am Rand" (=Edge) des Netzwerkes aggregiert und erst danach in die Cloud geladen (z.B. zur dauerhaften Speicherung oder als Datenbasis für Anwendungen).
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
Edge Computing
Läutet Fog Computing das Ende der Cloud ein?
Amazon Elastic Beanstalk Tutorial – The ULTIMATE Guide
Serverless FaaS with AWS Lambda and Java
Serverlos durch die Nacht: Wie gehen Funktionen ohne Server?