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.
Podcast: Play in new window | Download (Duration: 39:46 — 19.1MB)
Abonnieren: Apple Podcasts | Spotify | RSS
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).
Kurz angemerkt:
In der letzten Episode des „Talking Kotlin“ Podcast mit Hadi Hariri
http://talkingkotlin.com/Going-serverless-with-marcos-placona/
geht es um’s Thema „Going Serverless“, mit Marcos Placona, Google Developer Expert (GDE) @TWILIO.
Zwar ist „Talking Kotlin“ ein Podcast, der sich diesen Themen aus der Perspektive von Kotlin Developern widmet, allerdings ist ganz vieles in dieser Episode so allgemeinverständlich bzw. generisch, dass es IMHO prima zum aktuellen Thema „Cloud Computing“ dieses feinen Podcasts passt. 😉