Was ist Azure Service Fabric?
Zu Beginn finden Sie hier einige Definitionen sowie einen kurzen Überblick über Azure Service Fabric. Dieser Überblick sollte Ihnen helfen, zu entscheiden, ob Service Fabric für Ihre verteilte Computinglösung geeignet ist.
Was ist ein Container?
Ein Container ist eine atomare Einheit von Software, die eine Anwendung und alle ihre Abhängigkeiten (z. B. Bibliotheken und Konfigurationsdateien) in eine eigene isolierte Umgebung einbindet, die alles enthält, was zur Ausführung der Software in dieser Umgebung erforderlich ist. Ein Container wird direkt über dem Kernel ausgeführt und verfügt über eine isolierte Ansicht des Dateisystems und anderer Ressourcen. Die Anwendung innerhalb des Containers verfügt über keine Informationen zu anderen Anwendungen oder Prozessen außerhalb ihres Containers.
Gründe für die Verwendung von Containern
Das Containermodell bietet die folgenden Vorteile:
Geringe Größe: Für Container werden nur ein Speicherbereich und Ebenen und Updates verwendet, um die Effizienz zu steigern.
Schnell: Container müssen nicht ein gesamtes Betriebssystem starten, daher können sie schneller starten, normalerweise in Sekunden.
Portabilität: Ein in einem Container enthaltenes Anwendungsimage kann für die Ausführung in der Cloud oder lokal, auf virtuellen Computern oder direkt auf physischen Computern portiert werden.
Ressourcengovernance: Ein Container kann die physischen Ressourcen beschränken, die er auf seinem Host nutzen kann.
Wie werden Container verwaltet?
Containerorchestrierung ist ein allgemeiner Begriff für eine Software, die Administratoren bei der Verwaltung von Umgebungen mit Containern unterstützt. Ein Administrator gibt einen gewünschten Zustand der Umgebung ein, z. B. fünf Instanzen eines bestimmten Diensts, die ausgeführt werden. Anschließend versucht der Orchestrator, die Umgebung mit dem gewünschten Zustand abzugleichen. Sobald dieser gewünschte Zustand erreicht ist, versucht der Orchestrator, diesen Zustand beizubehalten. Wenn einer der Dienste fehlschlägt, versucht der Orchestrator, eine neue Kopie bereitzustellen.
Die meisten Orchestratoren können mehr als nur die anfängliche Bereitstellung und Fehlerfälle verarbeiten. Sie können auch Upgrades durchführen und sich um Ressourcenverbrauch und Governance kümmern.
Bei der Containerorchestrierung geht es im Wesentlichen darum, einen gewünschten Konfigurationszustand in der Umgebung zu erreichen und zu erhalten.
Der Clusterressourcen-Manager ist die Systemkomponente, durch die Orchestrierung in Azure Service Fabric erfolgt.
Was ist ein Microservice?
Microserviceanwendungen und Microservicearchitektur beziehen sich auf kleine, unabhängige, lose gekoppelte Dienste, die zusammenarbeiten, um ein Ergebnis zu erzielen.
Die Dienste können vollständig unabhängig voneinander entwickelt werden, indem verschiedene Technologiestapel, Bibliotheken und Frameworks verwendet werden. Die Dienste können unabhängig voneinander bereitgestellt werden, sodass eine Komponente der Architektur aktualisiert werden kann, ohne die gesamte Anwendung erneut bereitstellen zu müssen. Die Dienste sind dafür verantwortlich, ihre eigenen Daten zu speichern. Die Dienste kommunizieren über genau definierte APIs und kennen die interne Implementierung des jeweils anderen nicht.
Warum sollten Microservices verwendet werden?
Das Microservicemodell bietet die folgenden Vorteile:
Agilität: Microservices werden unabhängig voneinander bereitgestellt, wodurch die Komplexität der Veröffentlichung von Features reduziert wird. Sie können einen Dienst aktualisieren, ohne die gesamte Anwendung neu bereitzustellen.
Fehlerisolation: Wenn ein einzelner Microservice ausfällt, hat dies nicht den Ausfall der gesamten Anwendung zur Folge, vorausgesetzt, die Upstream-Microservices sind für eine ordnungsgemäße Behandlung von Ausfällen konzipiert.
Skalierbarkeit: Dienste können unabhängig voneinander skaliert werden. Dadurch lassen sich Subsysteme erweitern, die mehr Ressourcen benötigen, ohne die gesamte Anwendung zu skalieren. Sie können erkennen, wie gut dies mit dem Container- und Containerorchestrierungsmodell zusammenpasst.
Datenisolation: Schemaupdates sind einfacher, da nur ein einzelner Microservice betroffen ist.
Was sind zustandslose und zustandsbehaftete Dienste?
Ein zustandsloser Dienst ist ein Dienst, in dem jede Anforderung und Antwort isoliert verstanden werden kann. Sie können sich einen einfachen Rechnerdienst vorstellen, bei dem Sie eine auszuführende Berechnung senden (z. B. 2+2) und eine einzige Antwort (4) erhalten. Wenn Sie eine weitere Berechnung für dieses Ergebnis ausführen möchten (z. B. 4 x 2), würden Sie eine Anforderung manuell senden, um 4 x 2 zu berechnen und den Wert 8 zu empfangen. Der Dienst würde jedoch nicht wissen, dass Sie das Ergebnis der anfänglichen Berechnung verwendet haben.
Ein zustandsbehafteter Dienst ist ein Dienst, bei dem jede Anforderung und Antwort in einen Verlauf von Transaktionen passt, über die der Dienst Informationen besitzt und auf die er verweisen kann. Verwenden wir das Rechnerdienstbeispiel erneut, aber dieses Mal mit einer zustandsbehafteten Version. Sie fordern die Ausführung der Berechnung 2+2 an und erhalten 4. Dieses Mal fordern Sie den Dienst an, das vorherige Ergebnis zu verwenden und mit 2 zu multiplizieren (angenommen, die Syntax sieht wie „Antwort x 2“ aus). Sie erhalten 8 als Antwort, wie bereits im ersten Beispiel. Dieses Mal hatte der Rechnerdienst jedoch die Information, dass das Ergebnis der vorherigen Transaktion (Antwort) 4 war.
Warum sollten zustandslose und zustandsbehaftete Dienste verwendet werden?
Ihre Lösung kann zustandslose Dienste, zustandsbehaftete Dienste oder beides nutzen.
Ihre Wahl hängt von den Anforderungen Ihrer Anwendung ab. Wenn der Status eines Diensts zwischen Sitzungen persistent sein soll, dann benötigen Sie zustandsbehaftete Dienste. Wenn Ihre Dienste den Zustand nicht speichern müssen oder für die Speicherung des Zustands auf externen Speicher zurückgreifen können, können Sie zustandslose Dienste verwenden.
Mit der Microservicearchitektur können Sie zustandslose und zustandsbehaftete Dienste kombinieren. Microservices sind unabhängig und können völlig unterschiedliche Technologiestapel nutzen, sodass Sie einige Ihrer Dienste so konzipieren können, dass sie einen gespeicherten Zustand benötigen, andere hingegen nicht.
Was ist Azure Service Fabric?
Azure Service Fabric verwaltet Ihr verteiltes Computingsystem und macht es einfach, containerisierte Anwendungen bereitzustellen und zu verwalten, Microservicearchitekturen zu implementieren und neben zustandslosen auch robuste zustandsbehaftete Dienste zu nutzen. Service Fabric bietet Entwicklungs- und Betriebstools, Unterstützung für verschiedene Programmiermodelle, Containerorchestrierung, Clusterintegrität und -überwachung, automatische Skalierung und vieles mehr.
Service Fabric bietet abhängig von Ihrer Präferenz zwei verschiedene Clustermodelle. Das Standardclustermodell erfordert, dass Sie alle zugrunde liegenden Ressourcen Ihres Clusters verwalten. Das verwaltete Clustermodell abstrahiert diese Ressourcen, und Azure verwaltet sie.
Sie können Ihren Cluster im Azure-Portal erstellen oder Azure Resource Manager-Vorlagen verwenden.