Was ist ein Serverless-Microservice? | Serverless-Microservices erklärt

Microservices sind kleinere Segmente einer Anwendung, die unabhängig voneinander laufen und auf unterschiedliche Arten bereitgestellt werden können. Ein serverloser Microservice wird innerhalb einer serverlosen Architektur bereitgestellt.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Einen Serverless-Microservice definieren
  • Wie Serverless-Microservices funktionieren
  • Zwischen Microservices, Containern und Funktionen unterscheiden

Link zum Artikel kopieren

Was ist ein Microservice?

Stellen Sie sich vor, dass Sie eine Anwendung in einzelne Stücke zerteilen und als Sammlung kleinerer Teile laufen lassen, anstatt als Ganzes. Das ist im Wesentlichen das Prinzip einer Microservice-Architektur. Jedes Teil der Anwendung wird als „Microservice“ bezeichnet. Es führt nur eine Funktion aus, läuft unabhängig von den anderen Teilen der Anwendung in seiner eigenen Umgebung und speichert seine eigenen Daten. Trotz des Namens brauchen Microservices nicht klein zu sein. Das „Micro“ stammt daher, dass Microservices nur eine Funktion ausführen und Teil einer größeren Anwendung sind.

Sie können sich eine aus Microservices zusammengesetzte Anwendung wie eine Fußballmannschaft vorstellen, bei der jeder Spieler seine spezielle Rolle hat, aber alle Spieler zusammen eine Mannschaft (die komplette Anwendung) bilden, die gemeinsam auf ein Ziel hinarbeiten. Oder Sie können sich Microservices als die unterschiedlichen Systeme im menschlichen Körper (Blutkreislauf, Atmung usw.) und die Anwendung als den gesamten Körper vorstellen.

Aus Anwendersicht hat eine mit Microservices erstellte Anwendung ein einziges Interface und sollte genauso funktionieren wie eine Anwendung, die als ein Stack konzipiert wurde. Im Hintergrund verfügt aber jeder Microservice über eine eigene Datenbank und wird separat vom Rest der Anwendung ausgeführt. Darüber hinaus können Microservices innerhalb derselben Anwendung in verschiedenen Sprachen geschrieben sein und verschiedene Bibliotheken verwenden.

Monolithische Architektur vs. Microservices-Architektur

Microservices werden häufig der monolithischen Architektur gegenübergestellt. Eine monolithische Architektur ist die klassische Art, Anwendungen zu erstellen. Eine monolithische Anwendung ist ein einzelner Stack mit der Benutzeroberfläche an der Spitze, der Geschäftslogik in der Mitte und der Datenbank als Fundament Normalerweise werden monolithische Anwendungen auf einem bestimmten Server oder einer Reihe von Servern gehostet. Einer der Nachteile beim Erstellen von Anwendungen auf diese Weise besteht darin, dass bei jeder kleinen Änderung der gesamte Stack aktualisiert werden muss. Ein weiterer Nachteil ist, dass bei Fehlern in einem Teil der Anwendung die gesamte Anwendung ausfallen kann.

Vorteile von Microservices

  • Ausfallsicherheit: Da die Anwendung aufgeteilt ist, wirkt sich ein Fehler oder Absturz in einem Teil der Anwendung nicht unbedingt auch auf den Rest der Anwendung aus
  • Selektive Skalierbarkeit: Anstatt die gesamte Anwendung zu skalieren, müssen nur die besonders häufig genutzten Microservices skaliert werden
  • Einfacheres Hinzufügen oder Aktualisieren von Features: Features können einzeln eingeführt oder aktualisiert werden, ohne den ganzen Anwendungsstack zu aktualisieren
  • Flexibilität für Entwickler: Microservices können in verschiedenen Sprachen geschrieben werden, wobei jede ihre eigenen Bibliotheken verwendet

Können Microservices Teil einer Serverless-Architektur sein?

Microservices können auf verschiedenen Wegen bereitgestellt werden: Sie können Teil einer Serverless-Architektur sein, die in Containern gehostet, mit PaaS entwickelt oder theoretisch auch zum Erstellen einer lokal gehosteten Anwendung genutzt werden. Die Vorteile des Erstellens von Anwendungen aus Microservices sind aber gewiss am offensichtlichsten, wenn die Anwendungen entweder unter Verwendung von Containern oder in einer Serverless-Architektur in der Cloud gehostet werden.

Was sind Serverless-Microservices? Wie funktioniert eine Serverless-Microservices-Architektur?

Serverless-Microservices werden auf der Serverless-Infrastruktur eines Anbieters bereitgestellt und nur dann ausgeführt, wenn eine Anwendung sie benötigt. Je nach Größe des Microservices kann dieser auch in noch kleinere Funktionen unterteilt werden. Weitere Informationen zur Funktionsweise serverloser Datenverarbeitung finden Sie unter Was ist Serverless Computing?

Worin besteht der Unterschied zwischen einem Microservice und einer Serverless-Funktion?

Die Tech-Community definiert diese Unterscheidung gerade erst, aber normalerweise ist ein Microservice umfangreicher und beherrscht mehr als nur eine Funktion. Eine Funktion ist ein relativ kleines Stück Code, das als Reaktion auf ein Ereignis nur eine einzige Aktion ausführt. Abhängig davon, wie die Entwickler eine Anwendung aufgeteilt haben, kann ein Microservice aus einer Funktion (die nur eine Aktion ausführt) oder aus mehreren bestehen.

Um bei der Metapher des American Football zu bleiben, bedenken Sie alle Aufgaben eines Quarterbacks: Pässe werfen, den Ball an den Running Back übergeben und so weiter. Wenn der Quarterback ein Microservice im Team ist (der den Dienst des "Quarterbacking" bereitstellt), entspricht jede dieser kleineren Aktionen einer Funktion. Die Grenze zwischen einem Microservice und einer Funktion ist mitunter fließend. Ähnlich ist, dass es bestimmte Spieler in einem Football-Team gibt, die nur eine Aktion ausführen, wie z. B. den Kicker.

Sind Cloudflare Workers Microservices?

Cloudflare Workers sind Stücke aus JavaScript-Code, der im Cloudflare-Edge-Netzwerk gehostet und als Reaktion auf HTTP-Anfragen ausgeführt wird. Workers verhalten sich eher wie Funktionen, verfügen jedoch über die Flexibilität, auch als Microservices zu arbeiten. Cloudflare beschränkt Größe oder Art der Workers, die Entwickler erstellen und bereitstellen können, nicht.