Service Fabric und Container

Einführung

Azure Service Fabric ist eine Plattform für verteilte Systeme, die das Packen, Bereitstellen und Verwalten skalierbarer und zuverlässiger Microservices und Container vereinfacht.

Service Fabric ist der Containerorchestrator von Microsoft, der Microservices für einen Cluster von Computern bereitstellt. Service Fabric profitiert von den umfangreichen Erfahrungen, die im Zuge der Ausführung zahlloser Dienste bei Microsoft gesammelt wurden.

Microservices können auf vielerlei Arten entwickelt werden – von der Nutzung von Service Fabric-Programmiermodellen, ASP:NET Core, bis zur Bereitstellung von jedem Code. Auch wenn Sie lediglich Container bereitstellen und verwalten möchten, ist Service Fabric eine gute Wahl.

Standardmäßig werden diese Dienste von Service Fabric als Prozesse bereitgestellt und aktiviert. Prozesse ermöglichen die schnellste Aktivierung und Nutzung von Ressourcen in einem Cluster mit der höchsten Dichte. Service Fabric kann Dienste auch in Containerimages bereitstellen. Sie können in derselben Anwendung auch Dienste in Prozessen und Dienste in Containern mischen.

Wenn Sie direkt loslegen und Container in Service Fabric ausprobieren möchten, sehen Sie sich eine Schnellstartanleitung, ein Tutorial oder ein Beispiel an:

Schnellstart: Bereitstellen von Linux-Containern in Service Fabric
Schnellstart: Bereitstellen von Windows-Containern in Service Fabric
Tutorial: Bereitstellen einer .NET-App in einem Windows-Container in Azure Service Fabric
Service Fabric-Containerbeispiele

Was sind Container?

Mithilfe von Containern lassen sich Anwendungen zuverlässig in verschiedenen Computingumgebungen ausführen, da sie eine unveränderliche Umgebung für die Anwendungsausführung bereitstellen. Container umschließen eine Anwendung und alle ihre Abhängigkeiten (etwa Bibliotheken und Konfigurationsdateien) in einer eigenen isolierten Box, die alle für die Ausführung der Software im Container erforderlichen Komponenten enthält. Unabhängig vom Ausführungsort des Containers verfügt die Anwendung darin stets über alle für die Ausführung erforderlichen Komponenten, etwa die richtigen Versionen der abhängigen Bibliotheken, Konfigurationsdateien usw.

Container werden direkt oberhalb des Kernels ausgeführt und verfügen über eine isolierte Ansicht des Dateisystems und anderer Ressourcen. Eine Anwendung in einem Container verfügt über keine Informationen zu anderen Anwendungen oder Prozessen außerhalb ihres Containers. Jede Anwendung und ihre Laufzeit, Abhängigkeiten und Systembibliotheken werden in einem Container mit privatem Vollzugriff auf die eigene isolierte Containersicht des Betriebssystems ausgeführt. Die Verwendung von Containern in Service Fabric erleichtert nicht nur die Bereitstellung aller Anwendungsabhängigkeiten, die für die Ausführung in verschiedenen Computingumgebungen erforderlich sind, sondern bietet darüber hinaus Sicherheit und Ressourcenisolierung. (Ohne Container werden Dienste in einem Prozess ausgeführt.)

Im Vergleich zu virtuellen Computern haben Container 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 ist ihr Start deutlich schneller und erfolgt üblicherweise innerhalb weniger 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.
  • Ressourcenkontrolle: Ein Container kann die physischen Ressourcen beschränken, die er auf seinem Host verbrauchen kann.

Service Fabric-Unterstützung für Container

Service Fabric unterstützt die Bereitstellung von Docker-Containern in Linux- und Windows Server-Containern unter Windows Server 2016 und höher zusammen mit der Unterstützung für den Hyper-V-Isolationsmodus.

Mit ServiceFabric kompatible Containerruntimes:

  • Linux: Docker
  • Windows:
    • Windows Server 2022: Mirantis Container Runtime
    • Windows Server 2019/2016: DockerEE

Docker-Container unter Linux

Docker bietet APIs zum Erstellen und Verwalten von Containern oberhalb von Linux-Kernelcontainern. Docker Hub stellt ein zentrales Repository zum Speichern und Abrufen von Containerimages bereit. Ein Linux-basiertes Tutorial finden Sie unter Erstellen Ihrer ersten Service Fabric-Containeranwendung unter Linux.

Windows Server-Container

Unter Windows Server 2016 und höher werden zwei verschiedene Arten von Containern bereitgestellt, die sich durch den Isolationsgrad unterscheiden. Windows Server-Container und Docker-Container ähneln sich, da beide über eine Namespace- und Dateisystemisolation verfügen, den Kernel aber gemeinsam mit dem Host nutzen, auf dem sie ausgeführt werden. Unter Linux wurde diese Isolation üblicherweise mit „cgroups“ und Namespaces erzielt. Windows Server-Container verhalten sich ähnlich.

Windows-Container mit Hyper-V-Unterstützung bieten mehr Isolation und Sicherheit, da kein Container den Betriebssystemkernel mit anderen Containern oder mit dem Host gemeinsam verwendet. Aufgrund dieses höheren Grads an Sicherheitsisolation sind für Hyper-V aktivierte Container für potenziell kritischere Szenarios mit mehreren Mandanten geeignet. Ein Windows-basiertes Tutorial finden Sie unter Erstellen Ihrer ersten Service Fabric-Containeranwendung unter Windows.

In der folgenden Abbildung sind die unterschiedlichen Arten der Virtualisierung und Isolationsstufen dargestellt, die verfügbar sind. Service Fabric-Plattform

Szenarien für die Verwendung von Containern

In den folgenden typischen Beispielen ist ein Container eine gute Wahl:

  • IIS-Lift und -Shift: Sie können eine vorhandene ASP.NET MVC-App in einem Container platzieren statt sie zu ASP.NET Core zu migrieren. Diese ASP.NET MVC-Apps sind von Internetinformationsdiensten (Internet Information Services, IIS) abhängig. Sie können diese Anwendungen in Containerimages aus dem vorab erstellten IIS-Image verpacken und mit Service Fabric bereitstellen. Informationen zu Windows-Containern finden Sie unter Container Images on Windows Server (Containerimages unter Windows Server).

  • Mischen von Containern und Service Fabric-Microservices: Verwenden Sie ein vorhandenes Containerimage für einen Teil Ihrer Anwendung. Beispielsweise können Sie den NGINX-Container für das Web-Front-End Ihrer Anwendung und zustandsbehaftete Dienste für die rechenintensiveren Back-End-Vorgänge verwenden.

  • Reduzieren der Auswirkungen der Beeinträchtigung durch andere Dienste („Noisy Neighbors): Sie können die Funktion zur Ressourcenkontrolle für Container verwenden, um die Ressourcen einzuschränken, die ein Dienst auf einem Host verwendet. Wenn Dienste eine große Menge von Ressourcen nutzen und die Leistung anderer Dienste beeinträchtigen (z.B. ein Abfragevorgang mit langer Ausführungsdauer), können Sie diese Dienste in Containern mit Ressourcenkontrolle anordnen.

Hinweis

Ein Service Fabric-Cluster ist standardmäßig ein einzelner Mandant, und gehostete Anwendungen werden als vertrauenswürdig eingestuft. Wenn Sie erwägen, nicht vertrauenswürdige Anwendungen zu hosten, finden Sie weitere Informationen unter Hosting nicht vertrauenswürdiger Anwendungen in einem Service Fabric Cluster.

Service Fabric stellt ein Anwendungsmodell bereit, in dem ein Container einen Anwendungshost darstellt, in dem mehrere Dienstreplikate angeordnet werden. Service Fabric unterstützt darüber hinaus das Szenario einer ausführbaren Gastanwendungsdatei, bei dem Sie nicht die integrierten Service Fabric-Programmiermodelle verwenden, sondern stattdessen eine vorhandene in einer beliebigen Sprache oder einem beliebigen Framework geschriebene Anwendung in einem Container packen. Dieses Szenario ist der gängigste Anwendungsfall für Container.

Sie können Service Fabric-Dienste auch in einem Container ausführen. Die Unterstützung für das Ausführen von Service Fabric-Diensten innerhalb von Containern ist derzeit begrenzt.

Service Fabric stellt mehrere Containerfunktionen für die Erstellung von Anwendungen bereit, die sich aus Microservices in Containern zusammensetzen, etwa:

  • Bereitstellung und Aktivierung des Containerimage
  • Ressourcenkontrolle einschließlich des standardmäßigen Festlegens von Ressourcenwerten auf Azure-Clustern.
  • Repositoryauthentifizierung
  • Containerport zum Hosten der Portzuordnung
  • Container-zu-Container-Ermittlung und -Kommunikation
  • Möglichkeit zum Konfigurieren und Festlegen von Umgebungsvariablen
  • Möglichkeit zum Festlegen von Sicherheitsanmeldeinformationen für den Container.
  • Auswahl verschiedener Netzwerkmodi für Container.

Unter Azure für Container finden Sie eine umfassende Übersicht über die Containerunterstützung in Azure, etwa Informationen zum Erstellen eines Kubernetes-Clusters mit Azure Kubernetes Service und einer privaten Docker-Registrierung in Azure Container Registry und vieles mehr.

Nächste Schritte

In diesem Artikel haben Sie mehr über die Unterstützung erfahren, die Service Fabric für die Ausführung von Containern bietet. Als Nächstes arbeiten wir Beispiele für die einzelnen Funktionen durch, um deren Nutzung zu veranschaulichen.

Erstellen Ihrer ersten Service Fabric-Containeranwendung unter Linux
Erstellen Ihrer ersten Service Fabric-Containeranwendung unter Windows
Weitere Informationen zu Windows-Containern