Cloud Computing Teil 2 (Infrastructure/Platform/Software as a Service, Serverless und Edge Computing) – Anwendungsentwickler-Podcast #119
IT-Berufe-Podcast - En podcast af Stefan Macke - Mandage
Kategorier:
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) de...