Freigeben über


Container-Orchestrierung für Microservices

Azure Kubernetes Service (AKS)
Azure Service Fabric
Azure Container Instances

Microservices-Architekturen verpacken und stellen in der Regel jede Microservice-Instanz in einem einzigen Container bereit. Viele Instanzen der Microservices können ausgeführt werden, jeweils in einem separaten Container. Container sind leicht und kurzlebig, wodurch sie leicht zu erstellen und zu zerstören sind, aber schwierig zu koordinieren und zu kommunizieren.

In diesem Artikel werden die Herausforderungen beim Ausführen einer containerisierten Microservices-Architektur im Produktionsmaßstab und die Unterstützung der Container-Orchestrierung erläutert. Der Artikel enthält mehrere Azure-Container-Orchestrierungsoptionen.

Architektur für containerisierte Microservices

In diesem einfachen containerisierten Azure Kubernetes Service (AKS)-Cluster:

  • Eine Microservice A-Instanz wird in Knoten 1 ausgeführt, eine weitere Instanz in Knoten 2 und eine dritte Instanz in Knoten 3.
  • Eine Instanz von Microservice B wird in Node 1 und eine andere Instanz in Node 3 ausgeführt.
  • Containerisierte Reverseproxyserver werden in Knoten 1 und 2 ausgeführt, um Datenverkehr zu verteilen.

Konzeptionelles Diagramm einer einfachen containerisierten Microservices-Architektur.

Um den Cluster zu verwalten, muss ein DevOps-Team:

  • Führen Sie in jedem Knoten mehrere Containerinstanzen aus.
  • Lastenausgleich des Datenverkehrs zwischen den Instanzen.
  • Verwalten der Kommunikation zwischen abhängigen Instanzen in separaten Knoten.
  • Behalten Sie den gewünschten AKS-Clusterstatus bei.

Mit der Container-Orchestrierung kann das DevOps-Team den gewünschten Zustand des Clusters als Konfiguration darstellen. Ein Container-Orchestrierungsmodul erzwingt die gewünschte Konfiguration und automatisiert alle Verwaltungsaufgaben.

Erwägen Sie die Containerisierung einer einfachen dreistufigen Webanwendung:

  • Ein Container hostt die Front-End-Komponente.
  • Ein anderer Container hostt die mittlere Ebene oder DIE REST-API-Ebene.
  • Die mittlere Ebene kommuniziert mit einer global verteilten Datenbank.

Das Ausführen dieser Container auf einem einzelnen Entwicklungscomputer ist möglicherweise nicht zu schwierig. Das Ausführen der Anwendung im Hochverfügbarkeitsmodus in einem Produktionscluster wird jedoch schnell schwierig. Container-Orchestrierung ist für große und dynamische Produktionsumgebungen von entscheidender Bedeutung.

Vorteile der Container-Orchestrierung

Das folgende Beispiel zeigt, wie die Container-Orchestrierung bei der Verwaltung der Clusterbereitstellung, des Netzwerks und der Skalierung helfen kann.

Diagramm eines Beispiel-Microservices-Clusters mit Container-Orchestratorszenarien.

Der Container-Orchestrator:

  • Skaliert automatisch die Anzahl der Microservice-Instanzen basierend auf Datenverkehr oder Ressourcenauslastung. Im Beispiel fügt der Orchestrator automatisch eine weitere Microservice A-Instanz als Reaktion auf erhöhten Datenverkehr hinzu.

  • Verwaltet die Container, um den konfigurierten gewünschten Zustand widerzuspiegeln. Im Beispiel ist Microservice B so konfiguriert, dass zwei Instanzen vorhanden sind. Eine Instanz ist fehlerhaft geworden, sodass der Orchestrator den gewünschten Zustand erhält, indem eine andere Instanz erstellt wird.

  • Umschließt die Container für jeden Microservice in einer einfachen Serviceebene. Die Dienstebene:

    • Abstrahiert Komplexitäten wie IP-Adresse, Port und Anzahl von Instanzen.
    • Lastenausgleich des Datenverkehrs zwischen Microservice-Instanzen.
    • Unterstützt eine einfache Kommunikation zwischen abhängigen Microservice-Instanzen.

Container-Orchestratoren bieten außerdem Flexibilität und Datenverkehrskontrolle für:

  • Veröffentlichen Sie neue Versionen, oder führen Sie einen Rollback auf alte Versionen von Microservices oder Gruppen von Microservices ohne Ausfallzeiten durch.
  • Aktivieren Sie paralleles Testen verschiedener Microservice-Versionen.

Auswählen eines Azure-Container-Orchestrators

Hier sind einige Optionen für die Implementierung von Microservices-Container-Orchestrierung in Azure:

  • Azure Kubernetes Service (AKS) ist ein vollständig verwalteter Kubernetes Container-Orchestrierungsdienst in Azure, der die Bereitstellung und Verwaltung von containerisierten Anwendungen vereinfacht. AKS bietet eine flexible Bereitstellung, schnelle End-to-End-Bereitstellung sowie erweiterte Identitäts- und Zugriffsverwaltung.

  • Azure Service Fabric ist ein Container-Orchestrator zum Bereitstellen und Verwalten von Microservices auf einem Cluster von Computern. Die einfache Service Fabric-Laufzeit unterstützt das Erstellen zustandsloser und zustandsloser Microservices.

    Ein key Service Fabric Differentiator ist seine robuste Unterstützung für die Erstellung zustandsbehafteter Dienste. Sie können das integrierte Programmiermodell für zustandsbehaftete Dienste verwenden oder in einer beliebigen Sprache oder code geschriebene zustandsbehaftete containerisierte Dienste ausführen.

  • Azure Container Instances (ACI) ist die schnellste und einfachste Möglichkeit, einen Container in Azure auszuführen. Mit ACI müssen Sie keine virtuellen Computer verwalten oder Dienste auf höherer Ebene anpassen.

    Für einfache Orchestrierungsszenarien können Sie Docker Compose- verwenden, um eine Multicontaineranwendung lokal zu definieren und auszuführen. Stellen Sie dann die Docker-Container als ACI-Containergruppe in einer verwalteten, serverlosen Azure-Umgebung bereit. Für vollständige Container-Orchestrierungsszenarien kann ACI in AKS integriert werden, um virtuelle Knoten für die AKS-Orchestrierung zu erstellen.

  • Azure Spring Apps ist ein unternehmensbereiter, vollständig verwalteter Dienst für Spring Boot-Apps. Mit Spring Apps können Sie sich auf das Erstellen und Ausführen von Apps konzentrieren, ohne die Infrastruktur verwalten zu müssen. Spring Apps verfügt über integrierte Lebenszyklus- und Orchestrierungsverwaltung, einfache Überwachung und vollständige Integration in Azure.

  • Azure Red Hat OpenShift (ARO) unterstützt die Bereitstellung vollständig verwalteter OpenShift--Cluster in Azure. Das Ausführen von Kubernetes-Produktionscontainern erfordert eine Integration mit Frameworks und Tools wie Imageregistrierungen, Speicherverwaltung, Überwachung und DevOps. ARO erweitert Kubernetes durch die Kombination dieser Komponenten in eine einzelne Containerplattform als Dienst (PaaS).

Beitragende

Dieser Artikel wird von Microsoft verwaltet. Sie wurde ursprünglich von den folgenden Mitwirkenden verfasst.

Hauptautor:

Um nicht öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte