Microservices-Orchestrierung ist die automatische Koordination verteilter Microservices, die als zusammenhängendes Anwendungssystem zusammenarbeiten. Sie kümmert sich um Serviceinteraktionen, Abhängigkeitsmanagement, Fehlertoleranz, Fehlerbehebung und End-to-End-Bereitstellung.
Stellen Sie sich einen Dirigenten in einem Sinfonieorchester vor, der jeden Musiker anweist, zur richtigen Zeit zu spielen. Ebenso kann durch Orchestrierung sichergestellt werden, dass jeder Microservice seine spezifische Funktion bei Bedarf ausführt, um ein nahtloses Erfahrung zu bieten. Ohne diese Koordination würde es Chaos geben: Dienste rufen sich gegenseitig wahllos auf, Arbeitsabläufe werden unterbrochen, wenn Komponenten ausfallen, und es fehlt an Einblick in die Vorgänge in den verschiedenen IT-Infrastrukturen.
Unternehmen benötigen Orchestrierung, da moderne Anwendungen komplex sind und aus Hunderten von Einzeldiensten bestehen. Die Microservices-Orchestrierung fungiert als das System, das diese unabhängigen Dienste in gut koordinierte Anwendungen umwandelt und gleichzeitig die Vorteile der Skalierbarkeit und Flexibilität einer verteilten Architektur beibehält.
Laut einem Bericht von Research Nester wurde der Markt für die Orchestrierung von Microservices im Jahr 2024 auf 4,7 Milliarden US-Dollar geschätzt und wird im Jahr 2032 voraussichtlich 72,3 Milliarden US-Dollar erreichen. Diese Studie zeigt eine durchschnittliche jährliche Wachstumsrate (CAGR) von 23,4 % für den Forecasting-Zeitraum.1
Die stetige Expansion des Marktes wird durch das Wachstum von Anwendungen bei globalen Technologieunternehmen wie Google und Amazon sowie durch die steigende Nachfrage von E-Commerce, Fintech und Streaming-Diensten vorangetrieben.
Große Streaming-Dienste wie Netflix und Hulu sind Beispiele für einen klassischen Anwendungsfall. Sie verlassen sich auf die Orchestrierung, um Hunderte von Microservices zu koordinieren, die alles von der Benutzerauthentifizierung und Inhaltsempfehlungen bis hin zu Video Streaming und Abrechnung abwickeln. Alle müssen zusammenarbeiten, um Millionen personalisierter Seherlebnisse gleichzeitig zu liefern.
Branchen-Newsletter
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und darüber hinaus auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.
Microservices sind kleine, unabhängige und selbstenthaltene Software-Komponenten, die zusammen eine vollständige Anwendung bilden. Sie ermöglichen es Unternehmen, Anwendungen effizienter zu entwickeln, bereitzustellen und zu skalieren.
Im Gegensatz zu herkömmlichen monolithischen Anwendungengliedert die cloudnative Microservices-Architektur Anwendungen in kleinere, fokussierte Dienste auf, die bestimmte Geschäftsfunktionen übernehmen. Jeder Microservice wird unabhängig ausgeführt, kommuniziert über Programmierschnittstellen (APIs) und kann separat entwickelt, bereitgestellt und skaliert werden.
Nehmen wir zum Beispiel eine Mitfahr-App wie Uber oder Lyft. Wenn die Anwendung eine Fahranfrage verarbeitet, ruft der Orchestrator den Standortdienst auf, um Treiber zu finden, startet den Abgleichsalgorithmus und berechnet die Preisgestaltung. Der Orchestrator sendet außerdem in einer koordinierten Abfolge Benachrichtigungen an Fahrgäste und Fahrer.
Dieser Ansatz ermöglicht es Unternehmen, flexiblere, skalierbare Systeme aufzubauen, die sich schnell an veränderte Geschäftsanforderungen anpassen. Technologie-Unternehmen wie Netflix, Amazon und Uber leisteten Pionierarbeit bei Microservices, um umfangreiche und schnelle Softwareentwicklung zu bewältigen. Laut einer IBM-Umfrage von 2021 haben 85 % der Unternehmen Microservices eingeführt oder planen deren Einführung, was ihre wachsende Bedeutung unterstreicht.
Ein Microservice-Orchestrierungs-Framework verwendet ein zentralisiertes Workflow-Managementsystem, das Geschäftsprozesse durch synchrone Serviceaufrufe verteilt. Der Orchestrator verwaltet Workflow-Definitionen, versteht Service-Abhängigkeiten und kann sicherstellen, dass Microservices in der richtigen Reihenfolge ausgeführt werden.
Wenn beispielsweise ein E-Commerce-Unternehmen wie Amazon eine Kundenbestellung bearbeitet, ruft der Orchestrator den Bestandsservice auf, um die Verfügbarkeit zu prüfen, startet die Zahlungsabwicklung, arrangiert den Versand und sendet Kundenbenachrichtigungen. Der Orchestrator erledigt all diese Aufgaben in einer koordinierten Abfolge.
Diese Koordination stützt sich auf Schlüsseltechnologien wie Docker für die Containerisierung von Anwendungen und Container-Orchestrierungsplattformen wie Kubernetes für die Verwaltung der Containerbereitstellung, Skalierung und Serviceerkennung. Diese Tools ermöglichen eine dynamische Kommunikation der Services bei gleichzeitiger Optimierung der Ressourcenzuordnung in der gesamten Infrastruktur. Der Orchestrator überwacht kontinuierlich jeden Schritt im Prozessfluss, sodass er bei Problemen fehlgeschlagene Vorgänge erneut versuchen, problematische Änderungen rückgängig machen oder Administratoren benachrichtigen kann, um die Systemzuverlässigkeit aufrechtzuerhalten.
Die Orchestrierung von Microservices bietet die folgenden Hauptvorteile:
Eine erfolgreiche Orchestrierung stützt sich auf bewährte Entwurfsmuster für Microservices, die häufige Herausforderungen für verteilte Systeme angehen. Hier sind einige der wichtigsten Beispiele:
Ein Saga-Muster verwaltet verteilte Transaktionen, indem es sie in umkehrbare Schritte aufteilt. Wenn ein Schritt fehlschlägt, führt die Saga kompensierende Aktionen durch, um vorherige Vorgänge rückgängig zu machen und die Datenkonsistenz zwischen den Diensten aufrechtzuerhalten.
Wenn beispielsweise auf einer E-Commerce-Website eine Zahlung beim Bezahlvorgang fehlschlägt, hebt Saga die Bestandssperre auf und stellt den Warenkorb wieder her.
Ein Trennschalter verhindert kaskadenartige Ausfälle, indem er Aufrufe an nachgelagerte Services überwacht und Anfragen stoppt, wenn Ausfälle erkannt werden.
Wenn beispielsweise ein Produktempfehlungsdienst ausfällt, blockiert der Trennschalter automatisch Anfragen an ihn und zeigt stattdessen zuvor zwischengespeicherte Empfehlungen an.
Ein Erneut-versuchen- und Timeout-Muster behandelt automatisch vorübergehende Dienstausfälle, indem es auf fehlgeschlagene Anfragen mit intelligentem Timing wartet und sie erneut wiederholt.
Wenn beispielsweise ein Zahlungsdienst vorübergehend nicht verfügbar ist, wartet das System und versucht es erneut.
Beim Aufbau verteilter Systeme müssen DevOps-Teams und Entwickler entscheiden, ob Dienste zentral koordiniert werden sollen oder ob sie sich selbst koordinieren sollen. Diese Entscheidung beeinflusst die Art und Weise, wie Microservices kommunizieren, wie Teams die Komplexität verwalten und wie Systeme im Laufe der Zeit skalieren.
Teams entscheiden sich für Orchestrierung, wenn sie explizite Workflow-Steuerung, zentralisierte Governance und strikte Datenkonsistenz benötigen. Es ist besonders wertvoll in den Bereichen Finanzen, Gesundheitswesen und Logistik, wo die Einhaltung gesetzlicher Vorschriften und Überprüfbarkeit unerlässlich ist.
Teams entscheiden sich für eine Choreografie, wenn Skalierbarkeit, Belastbarkeit und Serviceautonomie Priorität haben. Sie eignet sich gut für ereignisgesteuerte Architekturen, Echtzeitsysteme und Massenverarbeitung (z. B. Content-Plattformen und Internet der Dinge (IoT)-Systeme).
Die meisten erfolgreichen Microservices-Architekturen verfolgen einen hybriden Ansatz. Dieser Ansatz kann die Orchestrierung kritischer Workflows bedeuten, die eine strenge Kontrolle und Choreografie für lose gekoppelte Interaktionen erfordern, die von einem unabhängigen Vorteil profitieren.
Die moderne Orchestrierung stützt sich auf mehrere Kategorien von Tools, die zusammenarbeiten, um die Lebenszyklen von Microservices zu verwalten – von der Bereitstellung und Skalierung bis hin zu Kommunikation und Überwachung. Jede als Nächstes vorgestellte Kategorie spielt eine bestimmte Rolle bei der effektiven Orchestrierung in Microservices:
Container-Orchestrierungsplattformen automatisieren die Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen. Sie stellen die grundlegende Ebene für die Orchestrierung von Microservices dar, indem sie die Diensterkennung, den Lastenausgleich, die Auto-Scaling und die fortlaufenden Bereitstellungen handhaben.
Große Cloud-Provider bieten verwaltete Orchestrierungsdienste an, darunter Amazon ECS und EKS von AWS, Google GKE, Microsoft AKS und IBM Cloud Kubernetes Service.
Service Meshes übernehmen die Service-to-Service-Kommunikation, die Sicherheit und die Beobachtbarkeit, ohne dass Änderungen am Anwendungscode erforderlich sind. Sie bieten automatischen Lastausgleich, Verbindungsunterbrechung, Timeouts und umfassende Telemetrie über Microservice-Interaktionen.
Istio– ein konfigurierbaresOpen-Source-Servicenetz – legt transparente Schichten über bestehende Anwendungen an und bietet erweiterte Funktionen für das Datenverkehrsmanagement und die Durchsetzung von Richtlinien. Es funktioniert gut mit Kubernetes und vielen anderen Service-Mesh-ähnlichen Technologien.
Linkerd, das ebenfalls Open Source ist, konzentriert sich auf Einfachheit und Leistung und bietet wesentliche Service-Mesh-Funktionen mit minimalem betrieblichen Aufwand.
Serverlose Plattformen ermöglichen ereignisgesteuerte Microservice, die je nach Bedarf automatisch skaliert werden. Sie bieten eine automatische Skalierung von null bis zu Tausenden von Instanzen und ein integriertes Datenverkehrsmanagement für sichere Bereitstellungen.
Knative läuft auf Kubernetes, um serverlose Funktionen für containerisierte Workloads bereitzustellen, eine automatische Skalierung und eine vereinfachte Bereitstellung zu ermöglichen.
API Gateways bieten einen einheitlichen Einstiegspunkt für Microservices, die Authentifizierung, Ratenbegrenzung, Transformation und Protokollierung verarbeiten. Sie sind unerlässlich für die Orchestrierung von Interaktionen zwischen externen Kunden und internen Diensten.
Es stehen zahlreiche API-Gateway-Lösungen zur Verfügung, die von Open-Source-Optionen wie Kong bis hin zu Cloud-verwalteten Services von großen Anbietern reichen.
Service-Discovery-Tools ermöglichen es Microservices, dynamisch miteinander zu finden und miteinander zu kommunizieren, wodurch fest codierte Abhängigkeiten beseitigt werden. Sie kümmern sich um die Serviceregistrierung, die Zustandsprüfung und die Koordinierung des Lastausgleichs.
Zu den beliebten Lösungen gehören etcd for Kubernetes-Umgebungen und cloudnative Optionen wie Amazon Web Services (AWS) Cloud-Map.
Workflow- und Orchestrierungs-Engines koordinieren komplexe mehrstufige Prozesse über mehrere Microservices hinweg im Laufe der Zeit. Diese Plattformen bieten eine visuelle Definition des Workflows, automatische Fehlerbehandlung und eine integrierte Logik zum Erneut versuchen für die Verwaltung verteilter Geschäftsprozesse.
Netflix Conductor übernimmt die Workflow-Orchestrierung, die speziell für Microservices-Umgebungen entwickelt wurde. Camunda Zeebe bietet Unternehmensklasse Prozessorchestrierung durch Verwendung von Business Process Model and Notation (BPMN) für die visuelle Workflow-Definition und ein umfassendes Prozessmanagement.
Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).
Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.
1. Globale Marktgröße und Anteil von Microservices, Research Nester, 2024