Was ist die serverlose Datenverarbeitung?

Serverless Computing ist ein Anwendungsentwicklungsmodell, mit dem Sie Anwendungen auf einer verwalteten Serverinfrastruktur von Drittanbietern erstellen und bereitstellen können. Alle Anwendungen benötigen Server, um ausgeführt zu werden. Beim Serverless-Modell hingegen übernimmt ein Cloud-Anbieter die Routinearbeit. Er stellt die zugrunde liegende Infrastruktur bereit, skaliert und wartet sie. Der Cloud-Anbieter übernimmt verschiedene Aufgaben wie Betriebssystemverwaltung, Sicherheitspatches, Dateisystem- und Kapazitätsmanagement, Lastausgleich, Überwachung und Protokollierung. Dadurch können sich Ihre Entwickler auf das Anwendungsdesign konzentrieren und dennoch von den Vorteilen einer kostengünstigen, effizienten und hochgradig skalierbaren Serverinfrastruktur profitieren.

Warum ist Serverless Computing wichtig?

In den Anfängen des Internets musste jeder, der eine Webanwendung betreiben wollte, physische Server kaufen und warten. Unternehmen lagerten ihre physischen Servergeräte in der Regel in On-Premises-Rechenzentren oder Co-Location-Einrichtungen. Dies konnte teuer werden, da die meisten Anwendungen nur einen sehr kleinen Teil der Server-Hardware-Ressourcen beanspruchten.

Das Cloud-Computing-Modell löste dieses Problem zunächst, indem es Kunden ermöglichte, virtuelle Server oder Instances auf der Hardware von Cloud-Anbietern zu erstellen. Die Kunden mussten jedoch weiterhin ihre virtuellen Server bereitstellen, konfigurieren, aktualisieren und skalieren.

Als Reaktion auf diese Probleme begannen Cloud-Anbieter, Serverless-Technologien anzubieten, um die Agilität zu erhöhen und die Kosten noch weiter zu optimieren. Mit Serverless Computing können Ihre Entwickler Code ausführen, Daten verwalten und Anwendungen integrieren, ohne sich um die Verwaltung der Infrastruktur kümmern zu müssen.

Die Einführung von Serverless bietet mehrere Vorteile, die wir im Folgenden erläutern werden.

Erhöhte Produktivität der Entwicklerproduktivität

Ihre Entwicklungsteams können sich auf die Erstellung von Anwendungen konzentrieren, anstatt sie zu konfigurieren. Geringere Betriebskosten bedeuten, dass Ihre Anwendungen schneller auf den Markt kommen. Ihre Entwickler können auf Kundenfeedback reagieren und häufig Änderungen am Anwendungscode veröffentlichen.

Effiziente Skalierbarkeit

Cloud-Anbieter bieten in ihren Serverless-Umgebungen ein Auto-Scaling-Feature. Ihre Serverless-Anwendungen skalieren automatisch von Null bis zum Spitzenbedarf. Ihre Entwickler müssen beim Schreiben des Codes nicht über die Verwendung nachdenken.

Geringere Kosten

Sie zahlen nur für die CPU, den Speicher und andere Rechenressourcen, die benötigt werden, wenn Ihr Code ausgeführt wird. Sie zahlen nicht für ungenutzte Ressourcen. Dieses Pay-for-Value-Abrechnungsmodell gewährleistet eine optimale Ressourcennutzung und verhindert eine Verschwendung durch Überversorgung.

Was sind die Anwendungsfälle für Serverless Computing?

Es gibt viele Anwendungen und Systeme, bei denen Serverless Computing nützlich sein kann.

Zustandslose Anwendungsentwicklung

Die Serverless-Architektur ist ideal für asynchrone, zustandslose Anwendungen, die keine Client-Daten zwischen den Sitzungen speichern. Beispiele für Serverless-Anwendungen sind Chatbots, Aufgabenplaner und IoT-Anwendungen. Coca-Cola nutzte beispielsweise AWS, um innerhalb von nur 100 Tagen eine mobile Ausgieß-App für seinen berührungslosen Getränkespender zu entwickeln. Coca-Cola verwendete Serverless-Bausteine wie AWS Lambda.

Batch-Verarbeitung

Batch-Verarbeitungsanwendungen führen regelmäßig umfangreiche, sich wiederholende Datenaufträge wie Backups, Filtern und Sortieren aus. Die Stapelverarbeitung eignet sich gut für Serverless-Umgebungen, die bei Bedarf massiv skaliert werden und bei Nichtnutzung keine Kosten verursachen.

Liberty Mutual nutzte beispielsweise AWS, um seine verschiedenen globalen Geschäftsbereiche in einem zentralisierten System namens Financial Central Services (FCS) zu konsolidieren. Es verwendete AWS Step Functions, um eine Serverless-Anwendung zu erstellen, die 100 Millionen Transaktionen in einem Lauf am Ende jedes Monats verarbeiten kann.

Datenanalyse in Echtzeitdaten

Serverless Computing ist ideal für Echtzeit-Streaming-Engines, um die Reaktionsfähigkeit der Kunden zu verbessern. Serverless-Apps können große Mengen an Streaming-Daten aus Hunderttausenden von Quellen verarbeiten und dabei niedrige Latenzzeiten und hohe Bandbreiten nutzen. So können Sie innerhalb von Sekunden statt von Minuten Erkenntnisse gewinnen.

So nutzt Genentech beispielsweise die Serverless-Funktionalität von AWS für die Analyse klinischer Daten. Forscher können jetzt Aufgaben in wenigen Stunden erledigen, für die sie früher Wochen gebraucht hätten.

Automatisierung von Geschäftsprozessen

Sie können den Serverless-Ansatz nutzen, um mühsame und zeitaufwändige Geschäftsprozesse zu automatisieren. Ihre Entwickler können sich auf die Übersetzung von Geschäftslogik in Anwendungscode konzentrieren, ohne Server verwalten zu müssen.

Taco Bell hat beispielsweise AWS verwendet, um Serverless-Anwendungen zur Durchführung von Geschäftslogik und Datentransformationen zu erstellen. Diese lieferten in Echtzeit Menü- und Restaurantinformationen an die Lieferpartner von Taco Bell. Serverless-Investitionen halfen der Marke, sich schnell auf die Nachfrage der Verbraucher nach Lieferungen während der COVID-19-Pandemie einzustellen.

Wie funktioniert eine Serverless-Architektur?

Jede Anwendung hat zwei große Funktionsbereiche - das Frontend und das Backend. Das Frontend umfasst alles, womit Ihre Endbenutzer interagieren, z. B. das visuelle Layout, die Schaltflanken und den Anzeigetext. Das Backend enthält Funktionen, auf die Ihre Benutzer nicht zugreifen können, wie Datenspeicherung und -verarbeitung.

Stellen Sie sich zum Beispiel eine Flugbuchungs-App auf Ihrem Mobilgerät vor. Das Frontend ist Ihre Anwendungsoberfläche, in der Sie Daten auswählen und eine Liste der verfügbaren Flüge anfordern können. Ihre Anfrage geht an das Backend, das in der Datenbank nachschaut und Informationen über alle verfügbaren Flüge in dem von Ihnen gewählten Zeitraum zurückgibt. Das folgende Diagramm zeigt die traditionelle Architektur.

Diagramm eines traditionellen Webanwendungsrahmens

Bei der Serverless-Architektur stellen die Entwickler den Backend-Code in der von den Cloud-Anbietern bereitgestellten Cloud-Infrastruktur bereit. Der Schlüssel zu Serverless-Anwendungen ist die ereignisgesteuerte Architektur - ein modernes Architekturmuster, das aus kleinen, entkoppelten Services besteht, die Ereignisse veröffentlichen, verbrauchen oder weiterleiten. Ereignisse sind Nachrichten, die zwischen Services gesendet werden.

Diese Architektur erleichtert die Skalierung, Aktualisierung und unabhängige Bereitstellung einzelner Komponenten eines Systems. Das folgende Diagramm zeigt einen ereignisgesteuerten Serverless-Microservice.

Ereignisgesteuertes Serverless-Microservice-Diagramm

Im Folgenden geben wir einen Überblick über die Funktionsweise der Serverless-Architektur.

Funktionen

Funktionen sind kleine, diskrete Codeeinheiten, die eine einzelne Aufgabe ausführen. Eine Funktion benötigt Rechenressourcen wie CPU und Arbeitsspeicher, um ausgeführt zu werden. Der Cloud-Anbieter weist diese Ressourcen nur bei Bedarf zu. Sie schafft eine temporäre Umgebung für die Ausführung der Serverless-Funktion.

Bestimmte Ereignisse können die Codeeinheit auslösen oder ausführen. Beispielsweise könnte ein Ereignis ausgelöst werden, wenn ein Benutzer eine Schaltfläche in einer Anwendung auswählt. Die Anfrage würde eine Funktion auslösen, die die Datenbank liest und die relevanten Informationen an den Benutzer zurückgibt.

Skalieren von Anfragen

Je mehr Anfragen eine Funktion erhält, desto mehr Ressourcen benötigt sie zur Ausführung. Die Serverless-Plattform überwacht die Last und weist Cloud-Ressourcen in nahezu unbegrenztem Umfang zu. Eine einzige Serverless-Funktion kann somit eine oder eine Million Anfragen ohne Codeänderungen verarbeiten.

Sobald eine Funktion keine Anfragen mehr erhält, schaltet der Cloud-Anbieter die zugehörige Infrastruktur ab, um Kosten zu sparen. Sie weist Ressourcen nur bei Bedarf zu. Wenn keine Nutzung erfolgt, kann die Umgebung auf Null skaliert werden.

Welche Arten von Serverless-Architekturen gibt es?

In einer Serverless-Architektur verwaltet der Cloud-Anbieter mehrere kleine und große Backend-Aufgaben für Ihre Anwendung. Sie können benutzerdefinierten Code bereitstellen. Der Cloud-Anbieter weist Ressourcen dynamisch zu, wenn Ihr Code ausgeführt wird. Die Cloud-Plattform bietet möglicherweise auch Backend-Funktionen, die Sie direkt verwenden können, ohne Code von Grund auf neu schreiben zu müssen.

Im Folgenden erläutern wir beide Arten von Serverless-Architekturen.

Function as a service

Function as a Service (FaaS) ist eine Serverless-Architektur, mit der Entwickler benutzerdefinierte Backend-Funktionen schreiben und den Funktionscode direkt in der Cloud-Infrastruktur bereitstellen können. Wenn eine Funktion aufgerufen wird, führt der Cloud-Anbieter die Funktion auf einem vorhandenen aktiven Server aus oder richtet bei Bedarf einen neuen Server ein. Solche Funktionen werden als Serverless-Funktionen bezeichnet, da ihr Ausführungsprozess von den Entwicklern abstrahiert wird. Entwickler können Code schreiben und bereitstellen, ohne sich Gedanken darüber machen zu müssen, wie und wo er ausgeführt wird.

Backend as a service

Backend as a Service (BaaS) ermöglicht Entwicklern den Zugriff auf Backend-Funktionen mithilfe einer API. APIs sind Mechanismen, die es zwei Software-Komponenten ermöglichen, über eine Reihe von Definitionen und Protokollen miteinander zu kommunizieren.

In ihrer Serverless-Umgebung bieten Cloud-Anbieter einen API-basierten Zugang zu zusätzlicher Verschlüsselung, Authentifizierung und Datenbanken mit Cloud-Zugriff. Sie können auch Zugriff auf andere Dienste und Anwendungen von Drittanbietern bieten. Diese Serverless-Funktionen sind vorformuliert und können direkt im Code aufgerufen werden.

Was ist die Serverless-First-Strategie?

Serverless-Architekturen zeichnen sich durch die folgenden Grundsätze aus:

  • Keine Serververwaltung
  • Kostenpflichtige Dienstleistungen
  • Fortlaufende Skalierung
  • Integrierte Fehlertoleranz

Eine Serverless-First-Strategie priorisiert diese Grundsätze in den Anwendungen, dem Betrieb und den Entwicklungszyklen eines Unternehmens. Ein Serverless-Entwickler oder ein Serverless-First-Unternehmen arbeitet in erster Linie nach diesen Grundsätzen.

Serverless Computing ist jedoch nicht für jeden Workload geeignet. Sie können Nicht-Serverless-Technologien als unterstützende Architektur nach Bedarf einbinden.

Was genau ist eine Serverless-Architektur?

Die meisten Cloud-Anbieter verwenden ein gemeinsames Sicherheitsmodell. Der Cloud-Anbieter ist für die Sicherheit der Cloud verantwortlich, während die Kunden für die Sicherheit in der Cloud verantwortlich sind.

Serverless verwaltet der Cloud-Anbieter viele zusätzliche Infrastrukturebenen, darunter Betriebssysteme und Netzwerke. Kunden müssen die Grundsätze der geringsten Berechtigung und die bewährten Methoden zur Sicherung einer Serverless-Anwendung befolgen.

In AWS-FaaS-Lösungen wie AWS Lambda können Sie beispielsweise jede Ressource mit granularen Berechtigungen sichern, indem Sie bekannte Tools wie AWS IAM Identity Center verwenden. Dies kann Ihnen helfen, eine robuste Sicherheitslage für Ihre Serverless- Anwendungen zu schaffen.

Wie kann AWS Ihre Anforderungen an eine Serverless-Datenverarbeitung unterstützen?

Amazon Web Services (AWS) verfügt über zahlreiche Angebote zur Unterstützung des Serverless-Computings.

Serverless in AWS beschreibt Technologien, mit denen Sie Code ausführen, Daten verwalten und Anwendungen integrieren können, ohne Server zu verwalten. Mit der Serverless-Technologie von AWS erhalten Sie Auto Scaling, integrierte Hochverfügbarkeit und ein nutzungsabhängiges Abrechnungsperiode zur Steigerung der Agilität und Optimierung der Kosten. Bei diesen Technologien brauchen Sie sich auch nicht mehr um Infrastrukturverwaltungsaufgaben wie die Kapazitätsbereitstellung und Patches zu kümmern, sodass Sie sich darauf konzentrieren können, nur Code zu schreiben, der für Ihre Kunden nützlich ist. 

Serverless-Anwendungen beginnen mit AWS Lambda, einem ereignisgesteuerten Rechenservice, der nativ in mehr als 200 AWS-Services integriert ist. Wir haben auch eine große Anzahl zusätzlicher unterstützender Services, wie diese:

Beginnen Sie mit Serverless in AWS, indem Sie noch heute ein Konto erstellen.

Nächste Schritte in AWS

Ein kostenloses Konto erstellen

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren 
Mit der Entwicklung in der Konsole starten

Starten Sie mit der Entwicklung in der AWS-Managementkonsole.

Anmelden