DE112021006130T5 - Automatisierte orchestrierung von containern durch bewerten von mikrodiensten - Google Patents

Automatisierte orchestrierung von containern durch bewerten von mikrodiensten Download PDF

Info

Publication number
DE112021006130T5
DE112021006130T5 DE112021006130.5T DE112021006130T DE112021006130T5 DE 112021006130 T5 DE112021006130 T5 DE 112021006130T5 DE 112021006130 T DE112021006130 T DE 112021006130T DE 112021006130 T5 DE112021006130 T5 DE 112021006130T5
Authority
DE
Germany
Prior art keywords
containers
computer
microservice
microservices
computing nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021006130.5T
Other languages
English (en)
Inventor
Sreenivasa Rao Pamidala
Jayachandu Bandlamudi
Ghandi Sivakumar
Ernese Norelus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021006130T5 publication Critical patent/DE112021006130T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Abstract

Bereitgestellt wird ein Durchführen einer Container-Skalierung und Migration für Mikrodienste auf Container-Grundlage. Ein erster Satz von Merkmalen wird aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten extrahiert. Eine Anzahl von Containern, die an einem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten erforderlich sind, wird durch Verwenden eines trainierten Prognosemodells und des ersten Satzes von Merkmalen vorhergesagt, die aus jedem jeweiligen Mikrodienst extrahiert wurden. Eine Skalierungsbezeichnung und ein Skalierungswert werden jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage einer vorhergesagten Änderung in einer aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst entsprechen, gemäß der Anzahl von Containern zugewiesen, die an dem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst erforderlich sind. Die aktuelle Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, wird auf Grundlage der Skalierungsbezeichnung und des Skalierungswerts angepasst, die jedem jeweiligen Mikrodienst zugewiesen sind.

Description

  • HINTERGRUND
  • 1. Gebiet:
  • Diese Offenbarung betrifft allgemein Mikrodienste auf Container-Grundlage und insbesondere ein automatisches Orchestrieren von Containern für Mikrodienste durch Bewerten von knoteninternen Merkmalen und Merkmalen zwischen den Knoten der Mikrodienste und anschließendes Bewerten von Ergebnissen der Container-Orchestrierung.
  • 2. Beschreibung des einschlägigen Stands der Technik:
  • Container-Plattformen werden heute verwendet, um Anwendungen so zu paketieren, dass sie auf einen bestimmten Satz von Ressourcen auf einem Betriebssystem einer Host-Maschine zugreifen können. In Mikrodienst-Architekturen werden Anwendungen ferner in verschiedene diskrete Dienste aufgeteilt, die jeweils in einem separaten Container gepackt sind. Der Vorteil besteht darin, dass Container skalierbar und temporär sind. Mit anderen Worten, Instanzen von Anwendungen oder Diensten, die in Containern gehostet werden, kommen und gehen je nach Bedarf.
  • Die Skalierbarkeit ist jedoch eine betriebliche Herausforderung. Bei der Container-Orchestrierung geht es vor allem um ein Verwalten der Lebenszyklen der Container, insbesondere in großen dynamischen Umgebungen. Die Container-Orchestrierung steuert ein Automatisieren vieler Aufgaben, wie zum Beispiel Bereitstellen und Nutzen von Containern, Hinzufügen oder Entfernen von Containern, um die Anwendungslast gleichmäßig über die Host-Infrastruktur zu verteilen, Migrieren von Containern von einem Host zu einem anderen, wenn in einem Host eine Ressourcenknappheit vorliegt, Zuweisen von Ressourcen zwischen Containern und dergleichen.
  • Sobald es an der Zeit ist, einen neuen Container in einem Cluster einzusetzen, plant das Container-Orchestrierungswerkzeug den Einsatz und sucht nach dem geeignetsten Host, um den Container auf Grundlage von vordefinierten Einschränkungen zu platzieren, wie zum Beispiel Verfügbarkeit von Prozessor, Arbeitsspeicher, Speicher, Netzwerkressourcen oder dergleichen. Container können auch gemäß einer Nähe zu anderen Hosts platziert werden.
  • Ein Cluster ist ein Satz von Knoten mit mindestens einem Controller-Knoten und mehreren Worker-Knoten, die physische oder virtuelle Maschinen sein können. Jeder Knoten hat seine eigene Betriebssystemumgebung. Der Controller verwaltet die knotenübergreifende Planung und den knotenübergreifenden Einsatz von Anwendungsinstanzen, und der vollständige Satz von Diensten, die der Controller-Knoten ausführt, ist als der Steuerungsbereich bekannt. Die Planungsfunktion weist Knoten abhängig von der Ressource und definierten Richtlinieneinschränkungen zu Pods zu. Ein Pod ist die grundlegende Planungseinheit, die aus einem oder mehreren Containern besteht, die sich garantiert gemeinsam auf der Host-Maschine befinden und fähig sind, Ressourcen gemeinsam zu nutzen. Jedem Pod ist eine eindeutige IP-Adresse in dem Cluster zugewiesen, wodurch der Anwendung ein konfliktfreies Verwenden von Anschlüssen ermöglicht wird.
  • Ein Container-Orchestrierungswerkzeug, wie zum Beispiel Kubernetes, Docker Swarm oder dergleichen, ist eine Komponente zum automatischen Einsetzen, Skalieren und Verwalten von containerisierten Anwendungen über Cluster von Knoten. Das Container-Orchestrierungswerkzeug gruppiert Container, aus denen eine Anwendung besteht, für eine einfachere Verwaltung und Erfassung in logische Einheiten. Eine Container-Orchestrierungsumgebung von Mehrfachclustern kann auch Cluster von containerisierten Anwendungen verwalten, die Public, Private und Hybrid Clouds umfassen können.
  • Ein Mikrodienst ist ein Satz von Pods, die zusammenarbeiten, wie zum Beispiel eine Schicht einer mehrschichtigen Anwendung. Mikrodienste sind ein architekturgebundener und organisatorischer Ansatz der Software-Entwicklung, wobei sich Software aus kleinen unabhängigen Diensten zusammensetzt, die über klar definierte Anwendungsprogrammierschnittstellen (APIs) Daten austauschen. Mikrodienst-Architekturen ermöglichen eine einfachere Skalierung und schnellere Entwicklung von Anwendungen, wodurch Innovation und eine Beschleunigung der Markteinführung von neuen Merkmalen ermöglicht wird. Mit einer Mikrodienst-Architektur wird eine Anwendung als unabhängige Komponenten aufgebaut, die jeden Anwendungsprozess als einen Dienst ausführen. Diese Dienste tauschen Daten über eine klar definierte Schnittstelle durch Verwenden von kompakten APIs aus. Die Dienste werden für Geschäftsfunktionen aufgebaut, und jeder Dienst führt eine einzelne Funktion aus. Da Dienste unabhängig voneinander ausgeführt werden, kann jeder Dienst aktualisiert, eingesetzt und skaliert werden, um den Bedarf an spezifischen Funktionen einer Anwendung zu decken.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Gemäß einer veranschaulichten Ausführungsform wird ein durch einen Computer umgesetztes Verfahren zum automatischen Durchführen einer Container-Skalierung und Migration für Mikrodienste auf Grundlage von Containern bereitgestellt. Ein Computer extrahiert einen ersten Satz von Merkmalen aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten. Der Computer sagt durch Verwenden eines trainierten Prognosemodells und des ersten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden, eine Anzahl von Containern vorher, die an einem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten erforderlich sind. Der Computer weist eine Skalierungsbezeichnung und einen Skalierungswert jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage einer vorhergesagten Änderung in einer aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst entsprechen, gemäß der Anzahl von Containern zu, die an dem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst erforderlich sind. Der Computer passt auf Grundlage der Skalierungsbezeichnung und des Skalierungswerts, die jedem jeweiligen Mikrodienst zugewiesen sind, automatisch die aktuelle Anzahl von Containern an, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen. Gemäß anderen veranschaulichten Ausführungsform werden ein Computersystem und ein Computerprogrammprodukt zum automatischen Durchführen einer Container-Skalierung und Migration für Mikrodienste auf Grundlage von Containern bereitgestellt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen, in denen veranschaulichte Ausführungsformen umgesetzt werden können;
    • 2 ist eine Darstellung eines Datenverarbeitungssystems, in dem veranschaulichte Ausführungsformen umgesetzt werden können;
    • 3 ist eine Darstellung einer Cloud-Computing-Umgebung, in der veranschaulichte Ausführungsformen umgesetzt werden können;
    • 4 ist eine Darstellung, die ein Beispiel von Abstraktionsschichten einer Cloud-Computing-Umgebung gemäß einer veranschaulichten Ausführungsform veranschaulicht;
    • 5 ist eine Darstellung, die ein Beispiel eines Container-Orchestrierungssystems gemäß einer veranschaulichten Ausführungsform veranschaulicht;
    • 6 ist eine Darstellung, die ein Beispiel einer Prognosetabelle gemäß einer veranschaulichten Ausführungsform veranschaulicht;
    • 7 ist eine Darstellung, die ein Beispiel eines Container-Migrationsprozesses gemäß einer veranschaulichten Ausführungsform veranschaulicht;
    • 8 ist eine Darstellung, die ein Beispiel einer Container-Migrationsidentifizierungstabelle gemäß einer veranschaulichten Ausführungsform veranschaulicht; und
    • 9A bis 98 sind ein Ablaufplan, der einen Prozess zum Prognostizieren von Container-Skalierung und Migration von Mikrodiensten auf Container-Grundlage gemäß einer veranschaulichten Ausführungsform veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen enthalten, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Arbeitsspeicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich als ein Schritt erreicht werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Unter folgender Bezugnahme auf die Figuren, und insbesondere unter Bezugnahme auf 1 bis 5 werden Darstellungen von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichte Ausführungsformen umgesetzt werden können. Es sollte klar sein, dass 1 bis 5 nur als Beispiele gedacht sind und durch sie keinerlei Einschränkung hinsichtlich der Umgebungen festgestellt oder impliziert werden soll, in denen verschiedene Ausführungsformen umgesetzt werden können. An den dargestellten Umgebungen können viele Modifizierungen vorgenommen werden.
  • 1 zeigt eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen, in denen veranschaulichte Ausführungsformen umgesetzt werden können. Ein Netzwerk-Datenverarbeitungssystem 100 ist ein Netzwerk von Computern, Datenverarbeitungssystemen und anderen Einheiten, in denen die veranschaulichten Ausführungsformen umgesetzt werden können. Das Netzwerk-Datenverarbeitungssystem 100 enthält ein Netzwerk 102, welches das Medium ist, das zum Bereitstellen von Datenübertragungsverbindungen zwischen den Computern, Datenverarbeitungssystemen und anderen Einheiten verwendet wird, die in dem Netzwerk-Datenverarbeitungssystem 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen umfassen, wie zum Beispiel drahtgebundene Datenübertragungsverbindungen, drahtlose Datenübertragungsverbindungen, Lichtwellenleiterkabel und dergleichen.
  • In dem dargestellten Beispiel sind ein Server 104 und ein Server 106 zusammen mit einem Speicher 108 mit dem Netzwerk 102 verbunden. Der Server 104 und der Server 106 können zum Beispiel Server-Computer mit Hochgeschwindigkeitsverbindungen zum Netzwerk 102 sein. Außerdem stellen der Server 104 und der Server 106 Container-Orchestrierungsdienste für Mikrodienste bereit, die auf Client-Datenverarbeitungsknoteneinheiten ausgeführt werden, indem knoteninterne Merkmale und Merkmale zwischen den Knoten der Mikrodienste bewertet werden, und indem anschließend Ergebnisse der Container-Orchestrierung (d.h. Hochskalieren oder Herunterskalieren von Containern in Datenverarbeitungsknoten auf Grundlage der Bewertung von knoteninternen Merkmalen und Migrieren von Containern zwischen Knoten auf Grundlage der Bewertung der Merkmale zwischen den Knoten) bewertet werden. Außerdem sollte angemerkt werden, dass der Server 104 und der Server 106 jeweils mehrere Server in einer oder mehreren Cloud-Umgebungen darstellen können. Alternativ können der Server 104 und der Server 106 jeweils ein Cluster von Servern in einem oder mehreren Rechenzentren darstellen.
  • Ein Client 110, ein Client 112 und ein Client 114 sind ebenfalls mit dem Netzwerk 102 verbunden. Die Clients 110, 112 und 114 sind Client-Datenverarbeitungsknoteneinheiten des Servers 104 und des Servers 106. In diesem Beispiel sind die Clients 110, 112 und 114 Netzwerk-Computer mit drahtgebundenen Übertragungsverbindungen zum Netzwerk 102. Es sollte jedoch angemerkt werden, dass die Clients 110, 112 und 114 andere Typen von Datenverarbeitungssystemen darstellen können, wie zum Beispiel Desktop-Computer, Laptop-Computer, Handheld-Computer, Smartphones, smarte Fahrzeuge, Smart-TVs, Smart-Geräte und dergleichen mit drahtgebundenen oder drahtlosen Datenübertragungsverbindungen zum Netzwerk 102. Ein Benutzer kann eine Client-Einheit zum Anzeigen einer Auswirkung der Container-Orchestrierung, die durch den Server 104 und den Server 106 durchgeführt wird, über ein Leistungskennzahl-Dashboard verwenden.
  • Der Speicher 108 ist eine Netzwerk-Speichereinheit, die fähig ist, jeden Datentyp in einem strukturieren Format oder einem unstrukturierten Format zu speichern. Außerdem kann der Speicher 108 eine Mehrzahl von Netzwerk-Speichereinheiten darstellen. Ferner kann der Speicher 108 Kennungen und Netzwerkadressen für eine Mehrzahl von verschiedenen Client-Datenverarbeitungsknoteneinheiten, Kennungen für eine Mehrzahl von verschiedenen Mikrodiensten, Kennungen für eine Mehrzahl von Containern, knoteninterne Merkmalsdaten, Daten von Merkmalen zwischen den Knoten, Informationen hinsichtlich einer Auswirkung von Container-Orchestrierungsoperationen, historische Mikrodienst-Arbeitslastdaten für definierte Zeiträume und dergleichen speichern. Des Weiteren kann der Speicher 108 andere Typen von Daten speichern, wie zum Beispiel Authentifizierungs- oder Anmeldedaten, die Benutzernamen, Passwörter und biometrische Daten umfassen können, die zum Beispiel Systemadministratoren und Benutzern zugehörig sind.
  • Außerdem sollte angemerkt werden, dass das Netzwerk-Datenverarbeitungssystem 100 jede Anzahl von zusätzlichen Servern, Clients, Speichereinheiten und anderen nicht gezeigten Einheiten umfassen kann. Ein in dem Netzwerk-Datenverarbeitungssystem 100 befindlicher Programmcode kann auf einem durch einen Computer lesbaren Speichermedium gespeichert werden und auf einen Computer oder eine andere Datenverarbeitungseinheit zur Verwendung heruntergeladen werden. Zum Beispiel kann der Programmcode auf einem durch einen Computer lesbaren Speichermedium auf dem Server 104 gespeichert und auf den Client 110 über das Netzwerk 102 zur Verwendung auf dem Client 110 heruntergeladen werden.
  • In dem dargestellten Beispiel kann das Netzwerk-Datenverarbeitungssystem 100 als eine Anzahl von verschiedenen Typen von Datenübertragungsnetzwerken umgesetzt werden, wie zum Beispiel ein Internet, ein Intranet, ein Weitverkehrsnetzwerk (WAN), ein lokales Netzwerk (LAN), ein Telekommunikationsnetzwerk oder jede Kombination davon. 1 ist nur als Beispiel und nicht als Architektureinschränkung für die verschiedenen veranschaulichten Ausführungsformen gedacht.
  • Wie hierin verwendet, bedeutet „eine Anzahl von“ im Zusammenhang mit Elementen eines oder mehrere der Elemente. Zum Beispiel bedeutet „eine Anzahl verschiedener Typen von Datenübertragungsnetzwerken“ einen oder mehrere verschiedene Typen von Datenübertragungsnetzwerken. Desgleichen bedeutet „ein Satz von“ bei Verwendung in Bezug auf Elemente eines oder der mehrere Elemente.
  • Ferner bedeutet der Ausdruck „mindestens einer/eine/eines von“ bei Verwendung mit einer Liste von Elementen, dass verschiedene Kombinationen von einem oder mehreren der aufgelisteten Elemente verwendet werden können und nur eines von jedem Element in der Liste erforderlich sein kann. Mit anderen Worten, „mindestens einer/eine/eines von“ bedeutet, dass jede Kombination von Elementen und Anzahl von Elementen aus der Liste verwendet werden kann, dass aber nicht alle Elemente in der Liste erforderlich sind. Das Element kann ein bestimmtes Objekt, ein Ding oder eine Kategorie sein.
  • Zum Beispiel kann „mindestens eines von Element A, Element B oder Element C“ Element A, Element A und Element B oder Element B umfassen. Dieses Beispiel kann auch Element A, Element B und Element C oder Element B und Element C umfassen. Selbstverständlich können alle Kombinationen dieser Elemente vorhanden sein. In einigen veranschaulichenden Beispielen kann „mindestens einer/eine/eines von“ zum Beispiel ohne Einschränkung zwei Elemente A; ein Element B; und zehn Elemente C; vier Elemente B und sieben Elemente C; oder andere geeignete Kombinationen sein.
  • Unter folgender Bezugnahme auf 2 wird eine Darstellung eines Datenverarbeitungssystems gemäß einer veranschaulichten Ausführungsform gezeigt. Ein Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie zum Beispiel der Server 104 in 1, in dem sich durch einen Computer lesbarer Code oder Anweisungen befinden kann bzw. können, der bzw. die Container-Orchestrierungsprozesse von veranschaulichten Ausführungsformen umsetzt bzw. umsetzen. In diesem Beispiel umfasst das Datenverarbeitungssystem 200 eine Datenübertragungsstruktur 202, die Datenübertragungen zwischen einer Prozessoreinheit 204, einem Arbeitsspeicher 206, einem permanenten Speicher 208, einer Datenübertragungseinheit 210, einer Eingabe/Ausgabe- (E/A) Einheit 212 und einer Anzeige 214 bereitstellt.
  • Die Prozessoreinheit 204 dient zum Ausführen von Anweisungen für Software-Anwendungen und Programme, die in den Arbeitsspeicher 206 geladen werden können. Die Prozessoreinheit 204 kann eine Gruppe von einem oder mehreren Hardware-Prozessoreinheiten oder ein Mehrkernprozessor sein, was von der jeweiligen Umsetzung abhängt.
  • Der Arbeitsspeicher 206 und der permanente Speicher 208 sind Beispiele für Speichereinheiten 216. Wie hierin verwendet, ist eine durch einen Computer lesbare Einheit oder ein durch einen Computer lesbares Speichermedium jedes Hardware-Element, das fähig ist, Informationen wie zum Beispiel ohne Einschränkung Daten, durch einen Computer lesbaren Programmcode in funktionaler Form und/oder andere geeignete Informationen, entweder auf einer flüchtigen Grundlage oder einer permanenten Grundlage zu speichern. Ferner schließt eine durch einen Computer lesbare Speichereinheit oder ein durch einen Computer lesbares Speichermedium ein Propagierungsmedium aus, wie beispielsweise flüchtige Signale. Der Arbeitsspeicher 206 kann beispielsweise in diesen Beispielen ein Direktzugriffsspeicher (RAM) oder jede andere geeignete flüchtige oder nicht flüchtige Speichereinheit sein, wie zum Beispiel ein Flash-Arbeitsspeicher. Der permanente Speicher 208 kann abhängig von der jeweiligen Umsetzung verschiedene Formen annehmen. Zum Beispiel kann der permanente Speicher 208 eine oder mehrere Einheiten enthalten. Zum Beispiel kann der permanente Speicher 208 eine Festplatte, eine Solid-State-Einheit, ein wiederbeschreibbares optisches Plattenlaufwerk, ein wiederbeschreibbares Magnetband oder eine beliebige Kombination des Vorgenannten sein. Die von dem permanenten Speicher 208 verwendeten Medien können entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 208 verwendet werden.
  • In diesem Beispiel speichert der permanente Speicher 208 eine Maschinenlernkomponente 218. Es sollte jedoch angemerkt werden, obwohl die Maschinenlernkomponente 218 als im permanenten Speicher 208 befindlich veranschaulicht wurde, dass in einer alternativen veranschaulichten Ausführungsform die Maschinenlernkomponente 218 eine von dem Datenverarbeitungssystem 200 separate Komponente sein kann. Zum Beispiel kann die Maschinenlernkomponente 218 eine Hardware-Komponente sein, die mit der Datenübertragungsstruktur 202 verbunden ist, oder kann eine Kombination von Hardware- und Software-Komponenten sein. In einer weiteren alternativen veranschaulichten Ausführungsform kann sich ein erster Satz von Komponenten der Maschinenlernkomponente 218 in einem Datenverarbeitungssystem 200 befinden, und ein zweiter Satz von Komponenten der Maschinenlernkomponente 218 kann sich in einem zweiten Datenverarbeitungssystem befinden, wie zum Beispiel dem Server 106 in 1.
  • Die Maschinenlernkomponente 218 steuert den Prozess eines automatischen Orchestrierens von Containern für eine Mehrzahl von verschiedenen Mikrodiensten durch Bewerten von knoteninternen Merkmalen und Merkmalen zwischen Knoten der Mehrzahl von verschiedenen Mikrodiensten und ein anschließendes Bewerten von Ergebnissen der Container-Orchestrierung. Die Maschinenlernkomponente 218 kann lernen, ohne explizit dafür programmiert zu sein. Die Maschinenlernkomponente 218 kann auf Grundlage von Trainingsdaten lernen, die in die Maschinenlernkomponente 218 eingegeben werden. Die Maschinenlernkomponente 218 kann durch Verwenden von verschiedenen Typen von Maschinenlern-Algorithmen lernen. Die verschiedenen Typen von Maschinenlern-Algorithmen umfassen mindestens überwachtes Lernen, halbüberwachtes Lernen, nicht überwachtes Lernen, Lernen von Merkmalen, Sparse Dictionary Learning, Anomalie-Erkennung, Assoziierungsregeln und/oder andere Typen von Lernalgorithmen. Beispiele für Maschinenlernmodelle umfassen ein künstliches neuronales Netzwerk, einen Entscheidungsbaum, eine Support-Vektor-Maschine, ein Bayessches Netzwerk, einen genetischen Algorithmus und andere Typen von Modellen. Diese Maschinenlernmodelle können zum Beispiel durch Verwenden von historischen Mikrodienst-Arbeitslastdaten trainiert werden.
  • Ein Mikrodienst 220 stellt eine Kennung für einen bestimmten Mikrodienst auf Container-Grundlage dar. Es sollte jedoch angemerkt werden, dass der Mikrodienst 220 Kennungen für eine Mehrzahl von verschiedenen Mikrodiensten darstellen kann, für die die Maschinenlernkomponente 218 Container-Orchestrierungsdienste durchführt, wie zum Beispiel Container-Skalierung und Migration von Containern. Der Mikrodienst 220 wird auf Containern 224 ausgeführt, die sich auf Datenverarbeitungsknoten 222 befinden. Die Container 224 stellen Kennungen für eine Mehrzahl von Containern dar, die sich auf jedem Datenverarbeitungsknoten der Datenverarbeitungsknoten 222 befinden. Die Datenverarbeitungsknoten 222 stellen Kennungen für eine Mehrzahl von Datenverarbeitungsknoten dar, wie zum Beispiel die Clients 110, 112 und 114 in 1. Die Datenverarbeitungsknoten 222 stellen die Ressourcen (z.B. Prozessoren, Arbeitsspeicher, Speicher, Netzwerkeinheiten und dergleichen) für die Container 224 bereit, um den Mikrodienst 220 auszuführen.
  • Die Maschinenlernkomponente 218 nutzt die Extraktionskomponente für Mikrodienstmerkmale 226, um Merkmale zu extrahieren (z.B. Kennzeichen, Attribute, Eigenschaften, Eigenarten, Parameter und dergleichen), die jedem jeweiligen Datenverarbeitungsknoten der Datenverarbeitungsknoten 222 entsprechen. Die extrahierten Merkmale umfassen knoteninterne Merkmale 228 und Merkmale zwischen den Knoten 230.
  • Die knoteninternen Merkmale 228 umfassen Informationen wie zum Beispiel die Anzahl von Containern, die dem Mikrodienst 220 entsprechen, der auf den Datenverarbeitungsknoten 222 während eines aktuellen Zeitraums ausgeführt wird, Nutzung und Arbeitslastkapazität der Anzahl von Containern, die dem Mikrodienst 220 entsprechen, der auf den Datenverarbeitungsknoten 222 während des aktuellen Zeitraums ausgeführt wird, die Anzahl von Containern, die dem Mikrodienst 220 entsprechen, der vorher auf den Datenverarbeitungsknoten 222 während eines vorherigen Zeitraums ausgeführt wurde, Nutzung und Arbeitslastkapazität der Anzahl von Containern, die dem Mikrodienst 220 entsprechen, der auf den Datenverarbeitungsknoten 222 während des vorherigen Zeitraums ausgeführt wurde, die Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen für den Mikrodienst 220 während des aktuellen Zeitraums, die Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen für den Mikrodienst 220 während des vorherigen Zeitraums und dergleichen. Die Merkmale zwischen den Knoten 230 umfassen Informationen wie zum Beispiel Abhängigkeiten zwischen dem Mikrodienst 220 und anderen Mikrodiensten (z.B. führt der Mikrodienst 220 Aufrufe der Anwendungsprogrammierschnittstelle an einen oder mehrere andere Mikrodienste in der Mehrzahl von verschiedenen Mikrodiensten aus), Beziehungen zwischen dem Mikrodienst 220 und anderen Mikrodiensten (z.B. verwendet der Mikrodienst 220 und verwenden ein oder mehrere Mikrodienste dieselbe Anwendung oder entspricht der Mikrodienst 220 oder entsprechen ein oder mehrere Mikrodienste derselben Anwendung), geografische Position der Container 224 (wobei z.B. die Container 224, die dem Mikrodienst 220 entsprechen, den jeder bestimmte Datenverarbeitungsknoten ausführt, geografisch positioniert sind), Netzwerkbandbreite und Latenzparameter, die jedem der Datenverarbeitungsknoten 222 entsprechen.
  • Die Maschinenlernkomponente 218 analysiert die extrahierten knoteninternen Merkmale 228 und die Merkmale zwischen den Knoten 230, um optimale Container-Orchestrierungsrichtlinien zu bestimmen und zu generieren, wie zum Beispiel Container-Skalierung (d.h. Hochskalieren oder Herunterskalieren von Containern) in Datenverarbeitungsknoten 222 und Container-Migration zwischen bestimmten Datenverarbeitungsknoten 222, um die Leistung des Mikrodienstes zu erhöhen und die Netzwerklatenz zu verringern. Die Maschinenlernkomponente 218 steuert die Orchestrierungskomponente 232, um die bestimmten optimalen Container-Orchestrierungsrichtlinien umzusetzen.
  • Ferner bestimmt die Maschinenlernkomponente 218 die Auswirkung der Container-Orchestrierung auf einen Satz von Leistungskennzahlen, wie zum Beispiel die Kosten von Container-Skalierung und Migration, Netzwerklatenz, Mikrodienstsicherheit und dergleichen. Die Maschinenlernkomponente 218 verwendet eine Leistungskennzahl-Dashboardkomponente 234, um die Ergebnisse der Auswirkung der Container-Orchestrierung auf den Satz von Leistungskennzahlen zu generieren und anzuzeigen. Die Leistungskennzahl-Dashboardkomponente 234 zeigt einem Benutzer die Ergebnisse der Auswirkung über ein Dashboard (z.B. eine interaktive grafische Benutzeroberfläche) auf einer Anzeigeeinheit an, wie beispielweise der Anzeige 214.
  • Als Ergebnis dessen arbeitet das Datenverarbeitungssystem 200 als ein Sonderzweck-Computersystem, in dem die Maschinenlernkomponente 218 in dem Datenverarbeitungssystems 200 eine automatische Orchestrierung von Containern ermöglicht, um die Mikrodienstleistung zu erhöhen und die Netzwerklatenz zur verringern. Insbesondere wandelt die Maschinenlernkomponente 218 das Datenverarbeitungssystem 200 im Vergleich zu aktuell verfügbaren Universal-Computersystemen, die keine Maschinenlernkomponente 218 haben, in ein Sonderzweck-Computersystem 218 um.
  • Die Datenübertragungseinheit 210 stellt in diesem Beispiel die Datenübertragung mit anderen Computern, Datenverarbeitungssystemen und Einheiten über ein Netzwerk bereit, wie zum Beispiel das Netzwerk 102 in 1. Die Datenübertragungseinheit 210 kann Datenübertragungen durch die Verwendung sowohl von physischen als auch drahtlosen Datenübertragungsverbindungen bereitstellen. Die physische Datenübertragungsverbindung kann zum Beispiel einen Draht, ein Kabel, einen universellen seriellen Bus oder irgendeine andere physische Technologie verwenden, um eine physische Datenübertragungsverbindung für das Datenverarbeitungssystem 200 herzustellen. Die drahtlose Datenübertragungsverbindung kann zum Beispiel Kurzwellen, Hochfrequenz, Ultrahochfrequenz, Mikrowellen, Wireless Fidelity (WLAN), Bluetooth®-Technologie, globales System für mobile Kommunikation (GSM), Codemultiplex-Mehrfachzugriff (CDMA), zweite Generation (2G), dritte Generation (3G), vierte Generation (4G), 4G Long Term Evolution (LTE), LTE Advanced, fünfte Generation (5G) oder jede andere drahtlose Datenübertragungstechnologie oder jeden anderen Standard zum Herstellen einer drahtlosen Datenübertragungsverbindung für das Datenübertragungssystem 200 verwenden.
  • Die Eingabe/Ausgabe-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Datenverarbeitungssystem 200 verbunden sein können. Zum Beispiel kann die Eingabe/Ausgabe-Einheit 212 eine Verbindung für eine Benutzereingabe über ein Tastenfeld, eine Tastatur, eine Maus, ein Mikrofon und/oder irgendeine andere geeignete Eingabeeinheit bereitstellen. Die Anzeige 214 stellt einen Mechanismus zum Anzeigen von Informationen für einen Benutzer bereit und kann Funktionen eines Berührungsbildschirms umfassen, um dem Benutzer zum Beispiel zu erlauben, über Benutzeroberflächen oder Eingabedaten Auswahlen auf dem Bildschirm zu treffen.
  • Anweisungen für das Betriebssystem, Anwendungen und/oder Programme können sich in den Speichereinheiten 216 befinden, die über die Datenübertragungsstruktur 202 in Verbindung mit der Prozessoreinheit 204 stehen. In diesem veranschaulichten Beispiel befinden sich die Anweisungen in einer funktionalen Form auf dem permanenten Speicher 208. Diese Anweisungen können zur Ausführung durch die Prozessoreinheit 204 in den Arbeitsspeicher 206 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 durch Verwenden von durch einen Computer umgesetzten Anweisungen ausgeführt werden, die sich in einem Arbeitsspeicher wie beispielsweise dem Arbeitsspeicher 206 befinden können. Diese Programmanweisungen werden als Programmcode, durch einen Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode bezeichnet, der durch einen Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Die Programmanweisungen in den verschiedenen Ausführungsformen können auf verschiedenen physischen, durch einen Computer lesbaren Speichereinheiten verkörpert sein, wie zum Beispiel auf dem Arbeitsspeicher 206 oder dem permanenten Speicher 208.
  • Ein Programmcode 236 befindet sich in einer funktionalen Form auf durch einen Computer lesbaren Medien 238, die selektiv entfernbar sind, und zur Ausführung durch die Prozessoreinheit 204 auf das Datenverarbeitungssystem 200 geladen oder übertragen werden können. Der Programmcode 236 und die durch einen Computer lesbaren Medien 238 bilden ein Computerprogrammprodukt 240. In einem Beispiel können die durch einen Computer lesbaren Medien 238 durch einen Computer lesbare Speichermedien 242 oder durch einen Computer lesbare Signalmedien 244 sein.
  • In diesen veranschaulichten Beispielen sind die durch einen Computer lesbaren Speichermedien 242 eine physische oder konkrete Speichereinheit, die zum Speichern von Programmcode 236 verwendet wird, und kein Medium, das den Programmcode 236 propagiert oder überträgt. Zum Beispiel können die durch einen Computer lesbaren Medien 242 eine optische oder Magnetplatte umfassen, die in ein Laufwerk oder eine andere Einheit eingeschoben oder eingelegt wird, das bzw. die Teil des permanenten Speichers 208 für einen Transfer auf eine Speichereinheit ist, wie beispielsweise ein Festplattenlaufwerk, das Teil des permanenten Speichers 208 ist. Die durch einen Computer lesbaren Medien 242 können auch die Form eines permanenten Speichers annehmen, wie zum Beispiel eine Festplatte, ein Thumb-Laufwerk oder ein Flash-Arbeitsspeicher, der mit dem Datenverarbeitungssystem 200 verbunden ist.
  • Alternativ kann der Programmcode 236 durch Verwenden von durch einen Computer lesbaren Signalmedien 244 zu dem Datenverarbeitungssystem 200 übertragen werden. Die durch einen Computer lesbaren Signalmedien 244 können zum Beispiel ein propagiertes Datensignal sein, das den Programmcode 236 enthält. Zum Beispiel können die durch einen Computer lesbaren Signalmedien 244 ein elektromagnetisches Signal, ein optisches Signal oder irgendein anderer geeigneter Signaltyp sein. Diese Signale können über Datenübertragungsverbindungen übertragen werden, wie zum Beispiel drahtlose Datenübertragungsverbindungen, ein optisches Lichtwellenleiterkabel, ein Koaxialkabel, ein Draht oder irgendein anderer geeigneter Typ von Datenübertragungsverbindung.
  • Ferner, wie hierin verwendet, können „durch einen Computer lesbare Medien 238“ in der Einzahl oder Mehrzahl verstanden werden. Zum Beispiel kann sich der Programmcode 236 in den durch einen Computer lesbaren Medien 238 in der Form einer einzelnen Speichereinheit oder eines einzelnen Speichersystems befinden. In einem weiteren Beispiel kann sich der Programmcode 236 in den durch einen Computer lesbaren Medien 238 befinden, die in mehreren Datenverarbeitungssysteme verteilt sind. Mit anderen Worten, einige Anweisungen im Programmcode 236 können sich in einem Datenverarbeitungssystem befinden, während sich andere Anweisungen im Programmcode 236 in einem oder mehreren anderen Datenverarbeitungssystemen befinden können. Zum Beispiel kann sich ein Abschnitt des Programmcodes 236 in den durch einen Computer lesbaren Medien 238 in einem Server-Computer befinden, während sich ein weiterer Abschnitt des Programmcodes 236 in durch einen Computer lesbaren Medien 238 befinden kann, die sich in einem Satz von Client-Computern befinden können.
  • Die verschiedenen für das Datenverarbeitungssystem 200 veranschaulichten Komponenten sind nicht als architekturbedingte Einschränkungen der Art und Weise aufzufassen, in der verschiedene Ausführungsformen umgesetzt werden können. In einigen veranschaulichten Beispielen können eine oder mehrere der Komponenten in einen Abschnitt einer weiteren Komponente integriert sein oder anderweitig einen Abschnitt davon bilden. Zum Beispiel kann der Arbeitsspeicher 206 oder können Abschnitte davon in einigen veranschaulichten Beispielen in die Prozessoreinheit 204 integriert sein. Die verschiedenen veranschaulichten Ausführungsformen können in einem Datenverarbeitungssystem umgesetzt werden, das Komponenten zusätzlich zu oder anstelle von denjenigen umfasst, die für das Datenverarbeitungssystem 200 veranschaulicht sind. Andere in 2 gezeigte Komponenten können von den gezeigten veranschaulichten Beispielen abweichen. Die verschiedenen Ausführungsformen können durch Verwenden jeder Hardware-Einheit oder jedes Systems umgesetzt werden, die bzw. das fähig ist, den Programmcode 236 auszuführen.
  • In einem weiteren Beispiel kann ein Bussystem verwendet werden, um die Datenübertragungsstruktur 202 umzusetzen, und kann aus einem oder mehreren Bussen bestehen, wie zum Beispiel einem Systembus oder einem Eingabe/Ausgabe-Bus. Selbstverständlich kann das Bussystem unter Verwendung jedes geeigneten Architekturtyps umgesetzt werden, der eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten ermöglicht, die mit dem Bussystem verbunden sind.
  • Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können veranschaulichte Ausführungsformen in Verbindung mit jedem anderen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden. Cloud Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen, wie zum Beispiel Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste, die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
  • Die Eigenschaften können zum Beispiel On-Demand Self-Service, Broad Network Access, Resource Pooling, Rapid Elasticity und Measured Service umfassen. On-Demand Self-Service ermöglicht einem Cloud-Nutzer einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher zu sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist. Broad Network Access stellt Funktionen bereit, die über ein Netzwerk verfügbar sind, und auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen, wie zum Beispiel Mobiltelefone, Laptops und PDAs unterstützen. Resource Pooling ermöglicht, die Datenverarbeitungsressourcen des Anbieters zusammenzuschließen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen, wie zum Beispiel Land, Staat oder Rechenzentrum. Rapid Elasticity stellt Funktionen bereit, die schnell und elastisch für eine schnelle Skalierung (scale out) sorgen können, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden. Measured Service ermöglicht Cloud-Systemen ein automatisches Steuern und Optimieren der Verwendung von Ressourcen, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist, wie zum Beispiel Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten. Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Dienstmodelle können zum Beispiel Software as a Service (SaaS), Platform as a Service (PaaS) und Infrastructure as a Service (laaS) umfassen. Software as a Service (SaaS) ist die für den Nutzer bereitgestellte Funktion, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen. Platform as a Service (PaaS) ist die dem Nutzer bereitgestellte Funktion, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment. Infrastructure as a Service (laaS) ist die dem Nutzer bereitgestellte Funktion, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten wie zum Beispiel Host-Firewalls.
  • Nutzungsmodelle können zum Beispiel eine Private Cloud, eine Community Cloud, eine Public Cloud und eine Hybrid Cloud umfassen. Eine Private Cloud ist eine Cloud-Infrastruktur, die ausschließlich für eine Organisation betrieben wird. Die Private Cloud kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein. Eine Community Cloud ist eine Cloud-Infrastruktur, die von mehreren Organisationen gemeinsam genutzt wird und eine bestimmte Community unterstützt, die gemeinsame Problemstellungen hat, wie zum Beispiel Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität. Die Community Cloud kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein. Eine Public Cloud ist eine Cloud-Infrastruktur, die der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt wird und einer Organisation gehört, die Cloud-Dienste verkauft. Eine Hybrid Cloud ist eine Cloud-Infrastruktur, die sich aus zwei oder mehreren Clouds zusammensetzt, wie beispielweise Private, Community und Public Clouds, die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht, wie zum Beispiel eine Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds.
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
  • Unter folgender Bezugnahme auf 3 wird eine Darstellung einer Cloud-Computing-Umgebung gezeigt, in der veranschaulichte Ausführungsformen umgesetzt werden können. In diesem veranschaulichten Beispiel umfasst eine Cloud-Computing-Umgebung 300 einen Satz von einem oder mehreren Cloud-Computing-Knoten 310, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie zum Beispiel ein Personal Digital Assistant (PDA) oder Mobiltelefon 320A, ein Desktop-Computer 320B, ein Laptop-Computer 320C und/oder ein Fahrzeug-Computersystem 320N Daten austauschen können. Die Cloud-Computing-Knoten 310 können zum Beispiel der Server 104 und der Server 106 in 1 sein. Die lokalen Datenverarbeitungseinheiten 320A bis 320N können zum Beispiel die Clients 110 bis 114 in 1 sein.
  • Die Cloud-Computing-Knoten 310 können untereinander Daten austauschen und physisch oder virtuell in einem oder mehreren Netzwerken gruppiert werden (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 300 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss, wie zum Beispiel lokale Datenverarbeitungseinheiten 320A bis 320N. Es sollte klar sein, dass die Typen von lokalen Datenverarbeitungseinheiten 320A bis 320N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 310 und die Cloud-Computing-Umgebung 300 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung zum Beispiel unter Verwendung eines Web-Browsers Daten austauschen können.
  • Unter folgender Bezugnahme auf 4 wird eine Darstellung, die Abstraktionsmodellschichten veranschaulicht, gemäß einer veranschaulichten Ausführungsform gezeigt. Der Satz von funktionalen Abstraktionsschichten, die in diesem veranschaulichten Beispiel gezeigt werden, können von einer Cloud-Computing-Umgebung wie zum Beispiel der Cloud-Computing-Umgebung 300 in 3 bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 4 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt.
  • Abstraktionsschichten einer Cloud-Computing-Umgebung 400 umfassen eine Hardware- und Software-Schicht 402, eine Virtualisierungsschicht 404, eine Verwaltungsschicht 406 und eine Arbeitslastenschicht 408. Die Hardware- und Software-Schicht 402 enthält Hardware- und Software-Komponenten der Cloud-Computing-Umgebung. Die Hardware-Komponenten können zum Beispiel Mainframes 410, Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 412, Server 414, Blade-Server 416, Speichereinheiten 418 und Netzwerke und Vernetzungskomponenten 420 umfassen. In einigen veranschaulichten Ausführungsformen können Software-Komponenten zum Beispiel Software für Netzwerk-Anwendungsserver 422 and Datenbank-Software 424 umfassen.
  • Eine Virtualisierungsschicht 404 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 426; virtueller Speicher 428; virtuelle Netzwerke 430, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 432; und virtuelle Clients 434.
  • In einem Beispiel kann eine Verwaltungsschicht 406 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 436 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 438 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 440 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 442 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung eines Service Level Agreement (SLA) (Dienstgütevereinbarung) 444 stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
  • Die Arbeitslastenschicht 408 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Beispielhafte Arbeitslasten und Funktionen, die von der Arbeitslastenschicht 408 aus bereitgestellt werden können, können Zuordnung und Navigation 446; Software-Entwicklung und Lifecycle-Management 448; Bereitstellung von virtuellem Training 450; Datenanalyseverarbeitung 452; Transaktionsverarbeitung 454 und Verwaltung von Mikrodienst-Containerorchestrierung 456 umfassen.
  • In der Datenverarbeitung liegt der Schwerpunkt heutzutage auf Cloud-Plattformen, und die meisten Entitäten, wie zum Beispiel Firmen, Geschäfte, Unternehmen, Organisationen, Einrichtungen, Behörden und dergleichen stellen ihre Angebote in der Form von Mikrodiensten auf einer Cloud-Infrastruktur bereit. Diese Angebote sind bewährte Verfahren für ein Einsetzen von Mikrodiensten, die in Containern gehostet werden. Der Einsatz wird jedoch von einem Orchestrator durchgeführt. Aktuelle Orchestratoren geben eine Einweg-Bereitstellung vor, der es an automatischer Skalierung und optimierter Nähe von Mikrodienst-Containern fehlt. Veranschaulichte Ausführungsformen nutzen eine Maschinenlernkomponente, die über Intelligenz verfügt, um den Orchestrator in Bezug auf eine automatische Skalierung und optimale Nähenzuweisung von Mikrodienst-Containern auf Grundlage eines durch einen Benutzer konfigurierbaren Kontexts zu benachrichtigen. Mit anderen Worten, die veranschaulichten Ausführungsformen stellen dem Orchestrator eine Intelligenz für eine automatische Skalierung und optimierte Migration von Containern zwischen Datenverarbeitungsknoten bereit und bewerten anschließend die Eingriffe durch automatische Container-Skalierung und Migration.
  • Aktuelle Container-Orchestrierungswerkzeuge, wie zum Beispiel Kubernetes, Docker Swarm und dergleichen werden durch statische benutzerdefinierte Richtlinien gesteuert und sind nicht intelligent genug, um effiziente Entscheidungen für eine Container-Skalierung oder eine optimale Migration von Containern zu treffen. Die veranschaulichten Ausführungsformen berücksichtigen, dass diese aktuellen Container-Orchestrierungswerkzeuge ein Hochskalieren oder Herunterskalieren von Containern während der Laufzeit durchführen, ohne mit zukünftigen Lasten zu rechnen, und keine automatisierte Migration von Containern durchführen, um die Netzwerklatenz zu verringern. Zum Lösen dieser Probleme prognostizieren veranschaulichte Ausführungsformen Container-Skalierung und optimale Container-Migration durch Verwenden von Maschinenlernen und anschließendes Bewerten dieser Eingriffe. Die Maschinenlernkomponente von veranschaulichten Ausführungsformen analysiert und bewertet knoteninterne Merkmale und Merkmale zwischen den Knoten von Mikrodiensten, um eine effiziente automatisierte Container-Orchestrierung zu bestimmen.
  • Zum Beispiel führen veranschaulichte Ausführungsformen eine synchronisierte und optimierte Orchestrierung einer automatisierten Skalierung von Containern an Datenverarbeitungsknoten über ein proaktives Prognostizieren, eine automatisierte Migration von Containern auf Grundlage einer Mikrodienst-Ähnlichkeitsanalyse und eine automatische Auswertung der Eingriffe der Maschinenlernkomponente zur Container-Skalierung und Migration durch. Veranschaulichte Ausführungsformen extrahieren und analysieren knoteninterne Merkmale und Merkmale zwischen den Knoten, die Mikrodiensten entsprechen. Veranschaulichte Ausführungsformen verwenden die extrahierten knoteninternen Merkmale zum proaktiven Prognostizieren der Anzahl von Containern (z.B. Skalierung der Anzahl von Containern), die erforderlich sind, um eine zukünftige Last von Mikrodiensten zu bewältigen. Veranschaulichte Ausführungsformen verwenden die extrahierten knoteninternen Merkmale zum Bewerten einer Ähnlichkeit zwischen Mikrodiensten, um zu identifizieren, welche Container zum Verringern der Netzwerklatenz migriert werden müssen.
  • Somit stellen die veranschaulichten Ausführungsformen eine oder mehrere technische Lösungen bereit, die ein technisches Problem mit einem automatischen Durchführen einer Container-Orchestrierung lösen, um einen prognostizierten zukünftigen Mikrodienst-Arbeitslastbedarf zu bewältigen. Dadurch stellen diese eine oder mehreren technischen Lösungen einen technischen Effekt und eine praktische Anwendung auf dem Gebiet von Mikrodiensten auf Container-Grundlage bereit.
  • Unter folgender Bezugnahme auf 5 wird eine Darstellung eines Beispiels für ein Container-Orchestrierungssystem gemäß einer veranschaulichten Ausführungsform gezeigt. Ein Container-Orchestrierungssystem 500 kann in einem Netzwerk von Datenverarbeitungssystemen umgesetzt werden, wie beispielsweise dem Netzwerk-Datenverarbeitungssystem 100 in 1. Das Container-Orchestrierungssystem 500 ist ein System aus Hardware- und Software-Komponenten zum automatischen Orchestrieren von Containern für eine Mehrzahl von verschiedenen Mikrodiensten durch Bewerten von knoteninternen Merkmalen und Merkmalen zwischen Knoten der Mehrzahl von verschiedenen Mikrodiensten und anschließendes Bewerten von Ergebnissen der Container-Orchestrierung.
  • In diesem Beispiel umfasst das Container-Orchestrierungssystem 500 eine Maschinenlernkomponente 502, eine Extraktionskomponente für Mikrodienstmerkmale 504, eine Orchestratorkomponente 506, eine Leistungskennzahl-Dashboardkomponente 508, einen Datenverarbeitungsknoten 510 und einen Datenverarbeitungsknoten 512. Es sollte jedoch angemerkt werden, dass das Container-Orchestrierungssystem 500 nur zu Beispielzwecken dienen soll und nicht als Einschränkung auf veranschaulichte Ausführungsformen gedacht ist. Mit anderen Worten, das Container-Orchestrierungssystem 500 kann mehr oder weniger Komponenten als gezeigt umfassen. Zum Beispiel kann bzw. können eine oder mehrere Komponenten zu einer Komponente kombiniert werden, eine Komponente kann in zwei oder mehr Komponenten aufgeteilt werden, nicht gezeigte Komponenten können hinzugefügt werden und dergleichen. Außerdem können der Datenverarbeitungsknoten 510 und der Datenverarbeitungsknoten 512 jeweils eine Mehrzahl von Datenverarbeitungsknoten darstellen.
  • Die Datenverarbeitungsknoten 510 und 512 sind die tatsächliche Infrastruktur, die zum Hosten von Containern 516, 518, 520, 522, 524, 526, 528 und 530 bereitgestellt wird. Der Datenverarbeitungsknoten 510 und der Datenverarbeitungsknoten 512 führen einen Mikrodienst 514 aus. Der Mikrodienst 514 ist ein Mikrodienst auf Container-Grundlage. Außerdem kann der Mikrodienst 514 einen jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten darstellen, die von der Maschinenlernkomponente 502 verwaltet werden.
  • Der Mikrodienst 514 ist ein lose verbundener Dienst mit Schwerpunkt auf einem Durchführen einer einzelnen Geschäftsaufgabe und kann sowohl horizontal als auch vertikal skaliert werden. Der Mikrodienst 514 ist auf eine Weise enthalten, dass der Mikrodienst 514 eine effiziente Berechnung in Bezug auf eine Arbeitslastverwaltung bereitstellen kann. Der Mikrodienst 514 ist außerdem fehlertolerant und selbstheilend (d.h. er führt ein Störungsmanagement durch). Außerdem ist der Mikrodienst 514 zu einer Stapel- und Echtzeitverarbeitung fähig und ist reaktionsschnell, elastisch und belastbar. Alle diese Attribute machen den Mikrodienst 514 zu einem großartigen Kandidaten für eine Portierung über Computerknoten, um in hohem Maße verfügbar zu sein.
  • In diesem Beispiel führt der Datenverarbeitungsknoten 510 einen Abschnitt des Mikrodienstes 514 durch Verwenden des Containers 516 und des Containers 518 von Pod 532 und durch Verwenden des Containers 520 und des Containers 522 von Pod 534 aus. Der Datenverarbeitungsknoten 512 führt einen anderen Abschnitt des Mikrodienstes 514 durch Verwenden des Containers 524 und des Containers 526 von Pod 536 und durch Verwenden des Containers 528 und des Containers 530 von Pod 538 aus.
  • Die Maschinenlernkomponente 502 bestimmt automatisch die Richtlinien für eine dynamische Container-Orchestrierung, die dem Mikrodienst 514 entspricht. Die Maschinenlernkomponente 502 verwendet Daten in Bezug auf knoteninterne Merkmale, wie zum Beispiel die knoteninternen Merkmale 228 in 2, um die Anzahl von Containern proaktiv zu prognostizieren (d.h. das Hochskalieren oder das Herunterskalieren der Anzahl von Containern), die in jedem Datenverarbeitungsknoten 510 und jedem Datenverarbeitungsknoten 512 für eine vorhergesagte zukünftige Arbeitslast des Mikrodienstes 514 erforderlich sind. Die Maschinenlernkomponente 502 verwendet außerdem Daten in Bezug auf Merkmale zwischen den Knoten, wie zum Beispiel die Merkmale zwischen den Knoten 230 in 2, um Container zwischen dem Datenverarbeitungsknoten 510 und dem Datenverarbeitungsknoten 512 auf Grundlage von Beziehungen und Abhängigkeiten zwischen dem Mikrodienst 514 und einem oder mehreren anderen Mikrodiensten der Mehrzahl von verschiedenen Mikrodiensten zu migrieren, um Latenz in dem Netzwerk zu reduzieren oder zu minimieren. In diesem Beispiel umfasst die Maschinenlernkomponente 502 ein Prognosemodul 549, ein Migratormodul 542 und ein Auswertemodul 544.
  • Die Maschinenlernkomponente 502 verwendet die Extraktionskomponente für Mikrodienstmerkmale 504 zum Identifizieren, Erfassen und Extrahieren der knoteninternen Merkmalsdaten und der Merkmalsdaten zwischen den Knoten, die alle erforderlichen Informationen in Bezug auf den Mikrodienst 514 darstellen. Die knoteninternen Merkmalsdaten umfassen zum Beispiel die Anzahl von Containern, die für den Mikrodienst 514 ausgeführt werden, die Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen pro definiertem Zeitintervall zum Bestimmen der Arbeitslast des Mikrodienstes 514, Nutzung und Arbeitslastkapazität jedes Containers, der dem Mikrodienst 514 pro definiertem Zeitintervall entspricht, und dergleichen. Die knoteninternen Merkmalsdaten können zum Beispiel eine Abhängigkeit zwischen dem Mikrodienst 514 und einem oder mehreren anderen Mikrodiensten, wenn der Mikrodienst 514 einen weiteren Mikrodienst aufruft, eine Beziehung zwischen dem Mikrodienst 514 und einem oder mehreren anderen Mikrodiensten, wenn dieselbe Anwendung diese bestimmten Mikrodienste verwendet, eine geografische Position der Datenverarbeitungsknoten 510 und 512, die den Containern 516 bis 530 des Mikrodienstes 514 entsprechen, eine Netzwerkbandbreite und Latenz von Verbindungen, die den Datenverarbeitungsknoten 510 und 512 entsprechen, Kosten und Konfiguration der Datenverarbeitungsknoten 510 und 512 und dergleichen umfassen.
  • Die Maschinenlernkomponente 502 verwendet ein Prognosemodul 540 zum Vorhersagen eines Hochskalierens und Herunterskalierens von Containern in den Datenverarbeitungsknoten 510 und 512 gemäß der vorhergesagten zukünftigen Arbeitslast des Mikrodienstes 514. Das Prognosemodul 540 verwendet Zeitreihen-Prognosemodelle auf Grundlage der knoteninternen Merkmalsdaten, um die Anzahl von erforderlichen Containern vorherzusagen, die der vorhergesagten zukünftigen Arbeitslast des Mikrodienstes 514 entsprechen. Zum Beispiel kann das Prognosemodul 540 einen autoregressiven integrierten gleitenden Durchschnitt (ARIMA) als Prognosemodell verwenden. ARIMA ist eine Möglichkeit zum Modellieren von Zeitreihendaten für ein Prognostizieren (d.h. zum Vorhersagen von zukünftigen Punkten in der Zeitreihe). Ein ARIMA-Modell ist ein bestimmter Typ von Regressionsmodell, in dem die abhängige Variable festgelegt wurde. Alle unabhängigen Variablen sind Nachläufe der abhängigen Variablen und/oder Nachläufe der Fehler, sodass es im Prinzip unkompliziert ist, ein ARIMA-Modell zu erweitern, um Informationen aufzunehmen, die durch führende Leistungskennzahlen oder andere exogene Variablen bereitgestellt werden. Im Wesentlichen fügt das Prognosemodul 540 einen oder mehrere Regressoren zu der folgenden Prognosegleichung hinzu: Y ^ t = μ + ϕ 1 Y t 1 θ 1 e t 1 + β ( X t ϕ 1 X t 1 )
    Figure DE112021006130T5_0001
    wobei „Yt“ gleich der Anzahl von Containern für den aktuellen Zeitraum ist, „Yt-1“ gleich der Anzahl von Containern für den vorherigen Zeitraum ist, „Xt“ gleich der Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen (API) für den aktuellen Zeitraum ist, und „Xt-1“ gleich der Anzahl von API-Anforderungen für den vorherigen Zeitraum ist. Die Prognosegleichung oben stellt die aktuelle Anzahl von Containern dar, die zum aktuellen Zeitraum „t“ erforderlich sind, der in Abhängigkeit von der Anzahl von Containern zum vorherigen Zeitraum „t-1“ und der Anzahl von API-Anforderungen zum aktuellen Zeitraum „t“ und dem vorherigen Zeitraum „t-1“ vorhergesagt wird. Diese Prognosegleichung ist eine allgemeine Ausführungsform, sodass neue Eingabeparameter, wie zum Beispiel Kapazität, Nutzung und Nachlaufwerte für vorherige Zeiträume „t-2“, „t-3“ und dergleichen leicht aufgenommen werden können. Das Prognosemodell kann durch Verwenden eines typischen Maschinenlern-Optimierungsalgorithmus (z.B. Gradientenabstieg) für eine verbesserte Vorhersagegenauigkeit und reduzierte Fehler trainiert werden.
  • Das Prognosemodul 540 sagt die Anzahl von Containern, die für den Mikrodienst 514 erforderlich sind, durch Verwenden des vorgenannten trainierten Prognosemodells vorher. Das Prognosemodul 540 identifiziert Skalierungsbezeichnungen und Skalierungswerte durch Vergleichen mit der aktuellen Anzahl von Containern. In einem veranschaulichten Beispiel ist die aktuelle Anzahl von Containern in dem Datenverarbeitungsknoten 510 gleich 4, die vorhergesagte Anzahl von Containern, die für die vorhergesagte zukünftige Arbeitslast erforderlich sind, ist gleich 7. Als Ergebnis dessen lautet die Skalierungsbezeichnung in diesem Beispiel „UP“ (Nach oben") und der Skalierungswert ist gleich 3 (d.h. die aktuelle Anzahl von 4 Containern wird hochskaliert, indem 3 neue Container hinzugefügt werden, um insgesamt 7 Container in dem Datenverarbeitungsknoten 510 zu ergeben, um eine vorhergesagte zukünftige Arbeitslast des Mikrodienstes 514 zu bewältigen). Desgleichen kann die Skalierungsbezeichnung „DOWN“ (Nach unten") lauten, und der Skalierungswert kann 1 sein (d.h. die aktuelle Anzahl von 4 Containern wird herunterskaliert, indem 1 Container entfernt wird, um insgesamt 3 Container in dem Datenverarbeitungsknoten 510 zu ergeben, um eine vorhergesagte zukünftige Arbeitslast des Mikrodienstes 514 zu bewältigen). Auf Grundlage der Skalierungsbezeichnung und des Werts entfernt die Orchestratorkomponente 506 Container oder fügt neue Container je nach Erfordernis hinzu.
  • Mit anderen Worten, wenn der prognostizierte Containerwert höher als der aktuelle Containerwert ist, ist ein Hochskalieren erforderlich. Umgekehrt, wenn der prognostizierte Containerwert niedriger als der aktuelle Containerwert ist, ist ein Herunterskalieren erforderlich. Es sollte angemerkt werden, dass das Prognosemodul 540 diesen Prognoseprozess für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten wiederholt und entsprechende Container-Skalierungsbezeichnungen und -werte zuweist. Danach sendet das Prognosemodul 540 alle Skalierungsbezeichnungen und Werte an die Orchestratorkomponente 506, die nach Bedarf unnötige Container entfernt oder neue Container generiert. Es sollte jedoch angemerkt werden, dass eine Skalierungsbezeichnung „NO“ und der Skalierungswert 0 lauten kann, wodurch angegeben wird, dass keine Änderung an der aktuellen Anzahl von Containern für einen bestimmten Datenverarbeitungsknoten erforderlich ist. Das Prognosemodul 540 berechnet auch die der Skalierung zugehörigen Kosten, die von dem Auswertemodul 544 verwendet werden.
  • Nachdem die Orchestratorkomponente 506 eine Skalierung der aktuellen Anzahl von Containern auf Grundlage der Ausgabe des Prognosemoduls 540 durchgeführt hat, verwendet die Maschinenlernkomponente 502 das Migratormodul 542 zum Optimieren der Migration von Containern zwischen Datenverarbeitungsknoten, die dem Mikrodienst 514 entsprechen, und Containern, die der Mehrzahl von anderen Mikrodiensten entsprechen. Mit anderen Worten, das Migratormodul 542 identifiziert, welche Container und wohin (z.B. zu welchen Datenverarbeitungsknoten) sie in dem Netzwerkwerk migriert werden müssen. Zum Beispiel identifiziert das Migratormodul 542 Mikrodienste mit einer Netzwerklatenz, die größer als ein definierte Netzwerklatenz-Schwellenwert ist. Das Migratormodul 542 identifiziert auch diejenigen Mikrodienste, die einander am ähnlichsten sind (z.B. diejenigen Mikrodienste, die auf Grundlage von extrahierten Merkmalsdaten zwischen den Knoten einen definierten Ähnlichkeitsgrad zueinander aufweisen). Das Migratormodul 542 weist anschließend die Orchestratorkomponente 506 an, Container, die Mikrodiensten mit dem definierten Ähnlichkeitsgrad entsprechen, auf denselben Datenverarbeitungsknoten zu migrieren, um die Netzwerklatenz zu reduzieren. Das Migratormodul 542 berechnet auch die Kosten und Mikrodienst-Sicherheit, die der Migration zugehörig sind, die ebenfalls von dem Auswertemodul 544 verwendet werden.
  • Die Orchestratorkomponente 506 definiert durch Verwenden der Container-Orchestrierungsrichtlinien, wie die Container einzusetzen, zu überwachen und zu konfigurieren sind. Während der Laufzeit nimmt die Orchestratorkomponente 506 ein Hochskalieren oder Herunterskalieren der Container auf Datenverarbeitungsknoten vor und migriert Container zwischen Datenverarbeitungsknoten auf Grundlage von Container-Orchestrierungsrichtlinien, die vom Prognosemodul 540 und dem Migratormodul 542 der Maschinenlernkomponente 502 generiert und empfangen wurden.
  • Das Auswertemodul 544 bewertet die Eingriffe von Container-Skalierung und Migration, die durch das Prognosemodul 540 und das Migratormodul 542 durchgeführt wurden. Das Auswertemodul 544 kann zum Beispiel eine kausale Inferenzkonditionierungs-Gleichung verwenden, um die Auswirkung jedes Eingriffs zu messen, wie sich zum Beispiel die Container-Skalierung auf Kosten und Netzwerklatenz ausgewirkt hat, und wie sich die Container-Migration auf Kosten, Netzwerklatenz und Mikrodienst-Sicherheit ausgewirkt hat. Zum Beispiel ist E (Leistungskennzahl/Eingriff) die Auswirkung der Leistungskennzahl (z.B. Kosten, Latenz, Sicherheit und dergleichen) mit der Bedingung, dass irgendein Typ von Eingriff durchgeführt wird (z.B. Container-Skalierung und/oder Container-Migration).
  • Das Auswertemodul 544 bewertet die Auswirkung der Leistungskennzahl des Prognosemoduls 540 durch Verwenden der folgenden beiden Gleichungen: Kosten Delta Wert = E ( Kosten / Vor der Skalierung ) E ( Kosten / Nach der Skalierung ) ; und
    Figure DE112021006130T5_0002
    Latenz Delta Wert = E ( Latez / Vor der Skalierung ) E ( Latenz / Nach der Skalierung ) ,
    Figure DE112021006130T5_0003
    wobei die Kosten- und Latenz-Deltawerte die Auswirkung einer automatisierten Container-Skalierung nach den Vorhersagen des Prognosemoduls 540 messen.
  • Das Auswertemodul 544 bewertet die Auswirkung der Leistungskennzahl des Migratormoduls 542 durch Verwenden der folgenden drei Gleichungen: Kosten Delta Wert = E ( Kosten / Vor der Migration ) E ( Kosten / Nach der Migration ) ;
    Figure DE112021006130T5_0004
    Latenz Delta Wert = E ( Latenz / Vor der Migration ) E ( Latenz / Nach der Migration ) ; und
    Figure DE112021006130T5_0005
    Sicherheit Delta Wert = E ( Sicherheit / Vor der Migration ) E ( Sicherheit / Nach  der Migration ) ,
    Figure DE112021006130T5_0006
    wobei die Kosten-, Latenz- und Sicherheits-Deltawerte die Auswirkung einer automatisierten Container-Migration nach der Mikrodienst-Ähnlichkeitsanalyse des Migratormoduls 542 messen.
  • Die Leistungskennzahl-Dashboardkomponente 508 generiert und zeigt ein Leistungskennzahl-Dashboard an, das ein Benutzer verwendet, um die durch das Auswertemodul 544 generierte Anzeige zu visualisieren (d.h. die verschiedenen Deltawerte, die jeweils dem Prognosemodul 540 und dem Migratormodul 542 entsprechen). Dadurch kann der Benutzer die Auswirkung der Eingriffe der Container-Orchestrierung des Prognosemoduls 540 und des Migratormoduls 542 in Bezug auf einen Satz von Leistungskennzahlen überwachen, wie zum Beispiel die Kosten für Container-Skalierung und Migration, Netzwerklatenz, Mikrodienst-Sicherheit und dergleichen.
  • Unter folgender Bezugnahme auf 6 wird eine Darstellung eines Beispiels für eine Prognosetabelle gemäß einer veranschaulichten Ausführungsform gezeigt. Eine Prognosetabelle 600 kann in einem Prognosemodul umgesetzt werden, wie zum Beispiel dem Prognosemodul 540 in 5. Die Prognosetabelle 600 umfasst eine X-Achsen-Zeitleiste 602 und eine Y-Achsen-Anzahl von Containern 604.
  • Die Zeitleiste 602 ist ein benutzerdefiniertes Zeitfenster und ist anpassbar. Mit anderen Worten, die Einheiten der Zeitleiste 602 können zum Beispiel Stunden, Tage, Wochen, Monate oder dergleichen sein, die von dem Benutzer abhängig davon definiert werden, für welches Zeitfenster der Benutzer ein Analysieren durch das Prognosemodul wünscht, um eine Vorhersage einer zukünftigen Mikrodienst-Arbeitslast durch Verwenden eines Zeitreihen-Prognosemodells zu treffen. Die Anzahl von Containern 604 gibt die Anzahl von Containern an, die aktuell von dem Mikrodienst bis zur Einheit „24“ der Zeitleiste 602 benötigt wird, und gibt anschließend die vorhergesagte Anzahl von Containern an, die von dem Mikrodienst benötigt wird (z.B. eine Prognose 606). Die Prognosetabelle 600 zeigt außerdem eine prognostizierte untere Konfidenzgrenze 608 und eine prognostizierte obere Konfidenzgrenze 610, die der Prognose 606 entsprechen.
  • Unter folgender Bezugnahme auf 7 wird eine Darstellung eines Beispiels für einen Container-Migrationsprozess gemäß einer veranschaulichten Ausführungsform dargestellt. Ein Container-Migrationsprozess 700 kann in einem Migrationsmodul umgesetzt werden, wie zum Beispiel dem Migrationsmodul 542 in 5. In diesem Beispiel wird der Container-Migrationsprozess 700 durch das Migrationsmodul zwischen einem Datenverarbeitungsknoten A 702 und einem Datenverarbeitungsknoten B 704 durchgeführt. Es sollte jedoch angemerkt werden, dass das Migrationsmodul den Container-Migrationsprozess 700 zwischen jeder Anzahl von Datenverarbeitungsknoten durchführen kann.
  • In diesem Beispiel umfassen der Datenverarbeitungsknoten A 702 und der Datenverarbeitungsknoten B 704 auch einen Container 710 und einen Container 712. Es sollte jedoch angemerkt werden, dass der Datenverarbeitungsknoten A 702 und der Datenverarbeitungsknoten B 704 jede Anzahl von Containern umfassen kann. Ferner wird in diesem Beispiel der Container 706 von einer Anwendung 1 714 verwendet, und die Container 708 und 712 werden von einer Anwendung 716 verwendet.
  • Ferner ist in diesem Beispiel ein Latenzengpass 718 zwischen den Containern 706 und 710 vorhanden. Dadurch bestimmt das Migrationsmodul, dass der Container 710 von dem Datenverarbeitungsknoten B 704 zu dem Datenverarbeitungsknoten A 702 migriert werden muss, um die durch den Latenzengpass 718 verursachte Netzwerklatenz zu reduzieren. Infolgedessen weist das Migrationsmodul eine Orchestratorkomponente an, wie zum Beispiel die Orchestratorkomponente 506 in 5, eine Migration 720 des Containers 710 zum Datenverarbeitungsknoten A 702 durchzuführen. Außerdem ist ein Latenzengpass 722 zwischen dem Container 708 und der Anwendung 2 716 vorhanden. Dadurch bestimmt das Migrationsmodul, dass der Container 708 von dem Datenverarbeitungsknoten A 702 zu dem Datenverarbeitungsknoten B 704 migriert werden muss, um die durch den Latenzengpass 722 verursachte Netzwerklatenz zu reduzieren. Infolgedessen weist das Migrationsmodul die Orchestratorkomponente an, eine Migration 724 des Containers 708 zum Datenverarbeitungsknoten B 704 durchzuführen
  • Unter folgender Bezugnahme auf 8 wird eine Darstellung eines Beispiels für eine Container-Migrationsidentifizierungstabelle gemäß einer veranschaulichten Ausführungsform gezeigt. Eine Container-Migrationsidentifizierungstabelle 800 kann in einem Migrationsmodul umgesetzt werden, wie zum Beispiel dem Migrationsmodul 542 in 5.
  • In diesem Beispiel umfasst die Container-Migrationsidentifizierungstabelle 800 einen Mikrodienst 802, eine Abhängigkeit 804, eine Beziehung 806, einen Datenverarbeitungsknoten 808, eine Netzwerklatenz 810 und ein Attribut für gemeinsam genutzte Daten 812. Der Mikrodienst 802 identifiziert jeden jeweiligen Mikrodienst. Die Abhängigkeit 804 identifiziert Abhängigkeiten zwischen bestimmten Mikrodiensten. Die Beziehung 806 identifiziert Beziehungen zwischen bestimmten Mikrodiensten auf Grundlage von Anwendungen. Mit anderen Worten, verschiedene Mikrodienste sind auf Anwendungsebene miteinander verbunden. Der Datenverarbeitungsknoten 808 identifiziert einen bestimmten Datenverarbeitungsknoten in dem Netzwerk, der einem bestimmten Mikrodienst zugehörig ist. Die Netzwerklatenz 810 identifiziert einen Umfang von Netzwerklatenz, der jedem bestimmten Mikrodienst zugehörig ist. Das Attribut für gemeinsam genutzte Daten 812 identifiziert Informationen, auf die von einem bestimmten Mikrodienst zugegriffen wird. Eine gemeinsame Nutzung von Daten zwischen verschiedenen Mikrodiensten wird über eine gemeinsam genutzte Datenbank berücksichtigt, die sowohl statische als auch veränderliche Daten und den Zugriff von verschiedenen Mikrodiensten enthält, der für die gemeinsam genutzte Datenbank erforderlich ist.
  • In diesem Beispiel zeigt die Container-Migrationsidentifizierungstabelle 800 drei Mikrodienste: MS-A, MS-B und MS-X. Die Container-Migrationsidentifizierungstabelle 800 zeigt auch ihre jeweiligen Abhängigkeiten, Anwendungen, ihren jeweiligen Knoten und die jeweilige Netzwerklatenz. Das Migrationsmodul verwendet die Abhängigkeit 804, Anwendungsinformationen in der Beziehung 806 und Informationen des Attributs für gemeinsam genutzte Daten 812, auf die in und außerhalb eines jeweiligen Mikrodienstes zugegriffen wird, um die Ähnlichkeit zwischen zwei Mikrodiensten zu identifizieren.
  • Das Migrationsmodul kann eine Ähnlichkeitsberechnung 814 verwenden, wie zum Beispiel eine Cosinus-Ähnlichkeit, um eine Mikrodienst-Ähnlichkeit zu bestimmen. In diesem Beispiel berechnet das Migrationsmodul die Ähnlichkeitsberechnung für einen Mikrodienst A (MS-A) und einen Mikrodienst B (MS-B) als Ähnlichkeit (MS-A, MS-B) = 0,95. Mit anderen Worten, MS-A und MS-B weisen eine Ähnlichkeit von 95 % auf, was in der Container-Migrationsidentifizierungstabelle 800 als „SIMILAR“ angegeben wird. Außerdem berechnet das Migrationsmodul die Ähnlichkeitsberechnung für MS-B und einen Mikrodienst X (MS-X) als Ähnlichkeit (MS-B, MS-X) = 0,30. Mit anderen Worten, MS-B und MS-X weisen eine Ähnlichkeit von 30 % auf. Die Container-Migrationsidentifizierungstabelle 800 gibt auch an, dass MS-A von NODE - A zu NODE - C migriert werden sollte, um die Netzwerklatenz zu reduzieren.
  • Unter folgender Bezugnahme auf 9A bis 98 wird ein Ablaufplan gezeigt, der einen Prozess zum Prognostizieren von Container-Skalierung und Migration von Mikrodiensten auf Container-Grundlage gemäß einer veranschaulichten Ausführungsform veranschaulicht. Der in 9A bis 98 gezeigte Prozess kann in einem Computer umgesetzt werden, wie zum Beispiel dem Server 104 in 1 oder dem Datenverarbeitungssystem 200 in 2. Zum Beispiel kann der in 9A bis 98 gezeigte Prozess in der Maschinenlernkomponente 218 in 2 umgesetzt werden.
  • Der Prozess beginnt, wenn der Computer ein Prognosemodell trainiert, das zum Vorhersagen einer Skalierung einer Mehrzahl von Containern verwendet wird, die jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf einer Mehrzahl von Datenverarbeitungsknoten in einem Netzwerk auf Grundlage einer historischen Anzahl von Containern ausgeführt werden, die erforderlich sind, um die Arbeitslast jedes jeweiligen Mikrodienstes während eines definierten Zeitraums zu bewältigen, um ein trainiertes Prognosemodell (in einem Schritt 902) zu bilden. Der Computer extrahiert einen ersten Satz von Merkmalen aus jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten (in einem Schritt 904). Der erste Satz von Merkmalen wird aus einer Gruppe ausgewählt, bestehend aus: einer ersten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf der Mehrzahl von Datenverarbeitungsknoten während eines aktuellen Zeitraums ausgeführt werden; mindestens einer Nutzung und/oder einer Arbeitslastkapazität der ersten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf der Mehrzahl von Datenverarbeitungsknoten während des aktuellen Zeitraums ausgeführt werden; einer zweiten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die vorher auf der Mehrzahl von Datenverarbeitungsknoten während eines vorherigen Zeitraums ausgeführt wurden; mindestens einer Nutzung und/oder einer Arbeitslastkapazität der zweiten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf der Mehrzahl von Datenverarbeitungsknoten während des vorherigen Zeitraums ausgeführt wurden; einer ersten Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen für jeden jeweiligen Mikrodienst während des aktuellen Zeitraums; und einer zweiten Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen für jeden jeweiligen Mikrodienst während des aktuellen Zeitraums.
  • Der Computer sagt durch Verwenden des trainierten Prognosemodells und des ersten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden, eine Anzahl von Containern vorher, die an einem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten erforderlich sind (in einem Schritt 906). Der Computer weist eine Skalierungsbezeichnung und einen Skalierungswert (z.B. Hochskalieren oder Herunterskalieren um einen Wert von eins, zwei, drei oder dergleichen) jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage einer vorhergesagten Änderung in einer aktuellen Anzahl von Containern zu, die jedem jeweiligen Mikrodienst entsprechen, gemäß der Anzahl von Containern, die an dem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst erforderlich sind (in einem Schritt 908). Der Computer passt auf Grundlage der Skalierungsbezeichnung und des Skalierungswerts, die jedem jeweiligen Mikrodienst zugewiesen sind, die aktuelle Anzahl von Containern automatisch an, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen (in einem Schritt 910). Ein Anpassen der aktuellen Anzahl von Containern umfasst eine oder keine Anpassung der aktuellen Anzahl von Containern, ein Generieren von einem oder mehreren zusätzlichen Containern für bestimmte Mikrodienste mit einer zugewiesenen Skalierungsbezeichnung und einem zugewiesenen Skalierungswert, die angeben, dass ein Hochskalieren an einem zukünftigen Zeitpunkt erforderlich ist, und/oder ein Entfernen von einem oder mehreren aktuellen Containern für bestimmte Mikrodienste mit einer zugewiesenen Skalierungsbezeichnung und einem zugewiesenen Skalierungswert, die angeben, dass ein Herunterskalieren an einem zukünftigen Zeitpunkt erforderlich ist.
  • Der Computer bestimmt durch Verwenden einer kausalen Inferenzkonditionierung eine erste Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf einen ersten Satz von Leistungskennzahlen von Kosten der Container-Skalierung und Netzwerklatenz in Bezug auf diejenigen Datenverarbeitungsknoten der Mehrzahl von Datenverarbeitungsknoten mit einer angepassten Anzahl von Containern hat (z.B. Datenverarbeitungsknoten mit einer hochskalierten Anzahl von Containern und Datenverarbeitungsknoten mit einer herunterskalierten Anzahl von Containern) (in einem Schritt 912). Der Computer extrahiert einen zweiten Satz von Merkmalen aus jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten (in einem Schritt 914). Der zweite Satz von Merkmalen wird aus einer Gruppe ausgewählt, bestehend aus: Informationen in Bezug auf Abhängigkeiten zwischen bestimmten Mikrodiensten (z.B. welche bestimmten Mikrodienste führen Aufrufe der Anwendungsprogrammierschnittstelle an andere Mikrodienste in der Mehrzahl von verschiedenen Mikrodiensten aus); Informationen in Bezug auf Beziehungen zwischen bestimmten Mikrodiensten (z.B. welche Anwendungen verwenden dieselben Mikrodienste); Informationen in Bezug auf eine geografische Position, die jedem Container einer Mehrzahl von Containern entspricht, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen (wobei z.B. jeder bestimmte Datenverarbeitungsknoten, der die Mehrzahl von Containern ausführt, die einem selben Mikrodienst in der Mehrzahl von verschiedenen Mikrodiensten entsprechen, geografisch positioniert ist); und Netzwerkbandbreite und Latenzparameter, die jedem jeweiligen Knoten in der Mehrzahl von Datenverarbeitungsknoten entsprechen. Der Computer bestimmt einen Grad von Mikrodienst-Ähnlichkeit zwischen bestimmten Mikrodiensten der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage des zweiten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden (in einem Schritt 916).
  • Der Computer identifiziert einen ersten Satz von Containern mit einem Netzwerklatenzwert über einem Netzwerklatenz-Schwellenwert, die auf einem ersten Satz von Datenverarbeitungsknoten in einer Mehrzahl von Datenverarbeitungsknoten ausgeführt werden (in einem Schritt 918). Der Computer bestimmt auf Grundlage des Grades von Mikrodienst-Ähnlichkeit, der zwischen den bestimmten Mikrodiensten bestimmt wurde, einen zweiten Satz von Datenverarbeitungsknoten in der Mehrzahl von Datenverarbeitungsknoten, die einen zweiten Satz von Containern ausführen, die einen Grad von Container-Ähnlichkeit über einem Container-Ähnlichkeitsschwellenwert mit dem ersten Satz von Containern mit dem Netzwerklatenzwert über dem Netzwerklatenz-Schwellenwert haben, die auf dem ersten Satz von Datenverarbeitungsknoten ausgeführt werden (in einem Schritt 920). Der Computer identifiziert bestimmte Container in dem ersten Satz von Containern und dem zweiten Satz von Containern, die einen selben Grad von Container-Ähnlichkeit gemeinsam haben (in einem Schritt 922).
  • Der Computer migriert diese bestimmten Container, die denselben Grad von Container-Ähnlichkeit gemeinsam haben, zu einem selben Datenverarbeitungsknoten, um eine Latenz eines Netzwerks zu verringern (in einem Schritt 924). Der Computer bestimmt durch Verwenden der kausalen Inferenzkonditionierung eine zweite Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf einen zweiten Satz von Leistungskennzahlen, die Netzwerklatenz und Mikrodienst-Sicherheit in Bezug auf die beiden Datenverarbeitungsknoten hat (in einem Schritt 926). Der Computer zeigt in einem Leistungskennzahl-Dashboard die erste Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf den ersten Satz von Leistungskennzahlen hatte, und die zweite Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf den zweiten Satz von Leistungskennzahlen hatte (in einem Schritt 928). Danach endet der Prozess.
  • Somit stellen die veranschaulichten Ausführungsformen der vorliegenden Erfindung ein durch einen Computer umgesetztes Verfahren, ein Computersystem und ein Computerprogrammprodukt für ein automatisches Orchestrieren von Containern durch Bewerten von knoteninternen Merkmalen und Merkmalen zwischen den Knoten von Mikrodiensten und ein anschließendes Bewerten der Ergebnisse der Container-Orchestrierung bereit. Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck einer Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.

Claims (20)

  1. Durch einen Computer umgesetztes Verfahren zum automatischen Durchführen einer Container-Skalierung und Migration für Mikrodienste auf Grundlage von Containern, wobei das durch einen Computer umgesetzte Verfahren aufweist: Extrahieren, durch einen Computer, eines ersten Satzes von Merkmalen aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten; Vorhersagen, durch den Computer, durch Verwenden eines trainierten Prognosemodells und des ersten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden, einer Anzahl von Containern, die an einem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten erforderlich sind; Zuweisen, durch den Computer, einer Skalierungsbezeichnung und eines Skalierungswerts zu jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage einer vorhergesagten Änderung in einer aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst entsprechen, gemäß der Anzahl von Containern, die an dem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst erforderlich sind; und automatisches Anpassen, durch den Computer, auf Grundlage der Skalierungsbezeichnung und des Skalierungswerts, die jedem jeweiligen Mikrodienst zugewiesen sind, der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, das ferner aufweist: Extrahieren, durch den Computer, eines zweiten Satzes von Merkmalen aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten; und Bestimmen, durch den Computer, eines Grades von Mikrodienst-Ähnlichkeit zwischen bestimmten Mikrodiensten der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage des zweiten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 2, das ferner aufweist: Identifizieren, durch den Computer, eines ersten Satzes von Containern mit einem Netzwerklatenzwert über einem Netzwerklatenz-Schwellenwert, die auf einem ersten Satz von Datenverarbeitungsknoten in einer Mehrzahl von Datenverarbeitungsknoten ausgeführt werden; und Bestimmen, durch den Computer, auf Grundlage des Grades von Mikrodienst-Ähnlichkeit, der zwischen den bestimmten Mikrodiensten bestimmt wurde, eines zweiten Satzes von Datenverarbeitungsknoten in der Mehrzahl von Datenverarbeitungsknoten, die einen zweiten Satz von Containern ausführen, die einen Grad von Container-Ähnlichkeit über einem Container-Ähnlichkeitsschwellenwert mit dem ersten Satz von Containern mit dem Netzwerklatenzwert über dem Netzwerklatenz-Schwellenwert haben, die auf dem ersten Satz von Datenverarbeitungsknoten ausgeführt werden.
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 3, das ferner aufweist: Identifizieren, durch den Computer, von bestimmten Containern in dem ersten Satz von Containern und dem zweiten Satz von Containern, die einen selben Grad von Container-Ähnlichkeit gemeinsam haben; und Migrieren, durch den Computer, dieser bestimmten Container, die denselben Grad von Container-Ähnlichkeit gemeinsam haben, zu einem selben Datenverarbeitungsknoten, um eine Latenz eines Netzwerks zu verringern,
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 4, das ferner aufweist: Bestimmen, durch den Computer, durch Verwenden einer kausalen Inferenzkonditionierung, einer ersten Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf einen ersten Satz von Leistungskennzahlen in Bezug auf diejenigen Datenverarbeitungsknoten der Mehrzahl von Datenverarbeitungsknoten mit einer angepassten Anzahl von Containern hat; Bestimmen, durch den Computer, durch Verwenden der kausalen Inferenzkonditionierung, einer zweiten Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf einen zweiten Satz von Leistungskennzahlen in Bezug auf die beiden Datenverarbeitungsknoten hat; und Anzeigen, durch den Computer, in einem Leistungskennzahl-Dashboard, der ersten Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf den ersten Satz von Leistungskennzahlen hatte, und der zweiten Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf den zweiten Satz von Leistungskennzahlen hatte.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, das ferner aufweist: Trainieren, durch den Computer, eines Prognosemodells, das zum Vorhersagen einer Skalierung einer Mehrzahl von Containern verwendet wird, die jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf einer Mehrzahl von Datenverarbeitungsknoten in einem Netzwerk auf Grundlage einer historischen Anzahl von Containern ausgeführt werden, die erforderlich sind, um die Arbeitslast jedes jeweiligen Mikrodienstes während eines definierten Zeitraums zu bewältigen, um das trainierte Prognosemodell zu bilden.
  7. Durch einen Computer umgesetztes Verfahren nach Anspruch 6, wobei das Prognosemodell ein autoregressives integriertes gleitendes Durchschnittsmodell (integrated moving average model) ist.
  8. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei der erste Satz von Merkmalen aus einer Gruppe ausgewählt wird, bestehend aus: einer ersten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf einer Mehrzahl von Datenverarbeitungsknoten während eines aktuellen Zeitraums ausgeführt werden; mindestens einer Nutzung und/oder einer Arbeitslastkapazität der ersten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf der Mehrzahl von Datenverarbeitungsknoten während des aktuellen Zeitraums ausgeführt werden; einer zweiten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die vorher auf der Mehrzahl von Datenverarbeitungsknoten während eines vorherigen Zeitraums ausgeführt wurden; mindestens einer Nutzung und/oder einer Arbeitslastkapazität der zweiten Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, die auf der Mehrzahl von Datenverarbeitungsknoten während des vorherigen Zeitraums ausgeführt werden; einer ersten Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen für jeden jeweiligen Mikrodienst während des aktuellen Zeitraums; und einer zweiten Anzahl von Anforderungen von Anwendungsprogrammierschnittstellen für jeden jeweiligen Mikrodienst während des aktuellen Zeitraums.
  9. Durch einen Computer umgesetztes Verfahren nach Anspruch 2, wobei der zweite Satz von Merkmalen aus einer Gruppe ausgewählt wird, bestehend aus: Informationen in Bezug auf Abhängigkeiten zwischen bestimmten Mikrodiensten, Informationen in Bezug auf Beziehungen zwischen bestimmten Mikrodiensten, Informationen in Bezug auf eine geografische Position, die jedem Container einer Mehrzahl von Containern entspricht, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen; und Netzwerk-Bandbreiten- und Latenz-Parameter, die jedem jeweiligen Knoten in einer Mehrzahl von Datenverarbeitungsknoten entsprechen.
  10. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei ein Anpassen der aktuellen Anzahl von Containern ein Generieren von einem oder mehreren zusätzlichen Containern für bestimmte Mikrodienste mit einer zugewiesenen Skalierungsbezeichnung und einem zugewiesenen Skalierungswert, die angeben, dass ein Hochskalieren an einem zukünftigen Zeitpunkt erforderlich ist, und/oder ein Entfernen von einem oder mehreren aktuellen Containern für bestimmte Mikrodienste mit einer zugewiesenen Skalierungsbezeichnung und einem zugewiesenen Skalierungswert umfasst, die angeben, dass ein Herunterskalieren an einem zukünftigen Zeitpunkt erforderlich ist.
  11. Computersystem zum automatischen Durchführen einer Container-Skalierung und Migration für Mikrodienste auf Grundlage von Containern, wobei das Computersystem aufweist: ein Bussystem; eine Speichereinheit, die mit dem Bussystem verbunden ist, wobei die Speichereinheit Programmanweisungen aufweist; und einen Prozessor, der mit dem Bussystem verbunden ist, wobei der Prozessor Programmanweisungen ausführt zum: Extrahieren eines ersten Satzes von Merkmalen aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten; Vorhersagen, durch Verwenden eines trainierten Prognosemodells und des ersten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden, einer Anzahl von Containern, die an einem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten erforderlich sind; Zuweisen einer Skalierungsbezeichnung und eines Skalierungswerts zu jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage einer vorhergesagten Änderung in einer aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst entsprechen, gemäß der Anzahl von Containern, die an dem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst erforderlich sind; und automatisches Anpassen, auf Grundlage der Skalierungsbezeichnung und des Skalierungswerts, die jedem jeweiligen Mikrodienst zugewiesen sind, der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen.
  12. Computersystem nach Anspruch 11, wobei der Prozessor die Programmanweisungen ferner ausführt zum: Extrahieren eines zweiten Satzes von Merkmalen aus jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten; und Bestimmen eines Grades von Mikrodienst-Ähnlichkeit zwischen bestimmten Mikrodiensten der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage des zweiten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden.
  13. Computersystem nach Anspruch 12, wobei der Prozessor die Programmanweisungen ferner ausführt zum: Identifizieren eines ersten Satzes von Containern mit einem Netzwerklatenzwert über einem Netzwerklatenz-Schwellenwert, die auf einem ersten Satz von Datenverarbeitungsknoten in einer Mehrzahl von Datenverarbeitungsknoten ausgeführt werden; und Bestimmen, auf Grundlage des Grades von Mikrodienst-Ähnlichkeit, der zwischen den bestimmten Mikrodiensten bestimmt wurde, eines zweiten Satzes von Datenverarbeitungsknoten in der Mehrzahl von Datenverarbeitungsknoten, die einen zweiten Satz von Containern ausführen, die einen Grad von Container-Ähnlichkeit über einem Container-Ähnlichkeitsschwellenwert mit dem ersten Satz von Containern haben, deren Netzwerklatenzwert über dem Netzwerklatenz-Schwellenwert liegt, die auf dem ersten Satz von Datenverarbeitungsknoten ausgeführt werden.
  14. Computersystem nach Anspruch 13, wobei der Prozessor die Programmanweisungen ferner ausführt zum: Identifizieren von bestimmten Containern in dem ersten Satz von Containern und dem zweiten Satz von Containern, die einen selben Grad von Container-Ähnlichkeit gemeinsam haben; und Migrieren dieser bestimmten Container, die denselben Grad von Container-Ähnlichkeit gemeinsam haben, zu einem selben Datenverarbeitungsknoten, um eine Latenz eines Netzwerks zu verringern.
  15. Computersystem nach Anspruch 14, wobei der Prozessor die Programmanweisungen ferner ausführt zum: Bestimmen, durch Verwenden einer kausalen Inferenzkonditionierung, einer ersten Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf einen ersten Satz von Leistungskennzahlen in Bezug auf diejenigen Datenverarbeitungsknoten der Mehrzahl von Datenverarbeitungsknoten mit einer angepassten Anzahl von Containern hat; Bestimmen, durch Verwenden der kausalen Inferenzkonditionierung, einer zweiten Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf einen zweiten Satz von Leistungskennzahlen in Bezug auf die beiden Datenverarbeitungsknoten hat; und Anzeigen, in einem Leistungskennzahl-Dashboard, der ersten Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf den ersten Satz von Leistungskennzahlen hatte, und der zweiten Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf den zweiten Satz von Leistungskennzahlen hatte.
  16. Computerprogrammprodukt zum automatischen Durchführen einer Container-Skalierung und Migration für Mikrodienste auf Grundlage von Containern, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Computer ausführbar sind, um den Computer zu veranlassen, ein Verfahren auszuführen, das aufweist: Extrahieren, durch den Computer, eines ersten Satzes von Merkmalen aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten; Vorhersagen, durch den Computer, durch Verwenden eines trainierten Prognosemodells und des ersten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden, einer Anzahl von Containern, die an einem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten erforderlich sind; Zuweisen, durch den Computer, einer Skalierungsbezeichnung und eines Skalierungswerts zu jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage einer vorhergesagten Änderung in einer aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst entsprechen, gemäß der Anzahl von Containern, die an dem zukünftigen Zeitpunkt für jeden jeweiligen Mikrodienst erforderlich sind; und automatisches Anpassen, durch den Computer, auf Grundlage der Skalierungsbezeichnung und des Skalierungswerts, die jedem jeweiligen Mikrodienst zugewiesen sind, der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen.
  17. Computerprogrammprodukt nach Anspruch 16, das ferner aufweist: Extrahieren, durch einen Computer, eines zweiten Satzes von Merkmalen aus jedem jeweiligen Mikrodienst einer Mehrzahl von verschiedenen Mikrodiensten; und Bestimmen, durch den Computer, eines Grades von Mikrodienst-Ähnlichkeit zwischen bestimmten Mikrodiensten der Mehrzahl von verschiedenen Mikrodiensten auf Grundlage des zweiten Satzes von Merkmalen, die aus jedem jeweiligen Mikrodienst extrahiert wurden.
  18. Computerprogrammprodukt nach Anspruch 17, das ferner aufweist: Identifizieren, durch den Computer, eines ersten Satzes von Containern mit einem Netzwerklatenzwert über einem Netzwerklatenz-Schwellenwert, die auf einem ersten Satz von Datenverarbeitungsknoten in einer Mehrzahl von Datenverarbeitungsknoten ausgeführt werden; und Bestimmen, durch den Computer, auf Grundlage des Grades von Mikrodienst-Ähnlichkeit, der zwischen den bestimmten Mikrodiensten bestimmt wurde, eines zweiten Satzes von Datenverarbeitungsknoten in der Mehrzahl von Datenverarbeitungsknoten, die einen zweiten Satz von Containern ausführen, die einen Grad von Container-Ähnlichkeit über einem Container-Ähnlichkeitsschwellenwert mit dem ersten Satz von Containern mit dem Netzwerklatenzwert über dem Netzwerklatenz-Schwellenwert haben, die auf dem ersten Satz von Datenverarbeitungsknoten ausgeführt werden.
  19. Computerprogrammprodukt nach Anspruch 18, das ferner aufweist: Identifizieren, durch den Computer, von bestimmten Containern in dem ersten Satz von Containern und dem zweiten Satz von Containern, die einen selben Grad von Container-Ähnlichkeit gemeinsam haben; und Migrieren, durch den Computer, dieser bestimmten Container, die denselben Grad von Container-Ähnlichkeit gemeinsam haben, zu einem selben Datenverarbeitungsknoten, um eine Latenz eines Netzwerks zu verringern,
  20. Computerprogrammprodukt nach Anspruch 19, das ferner aufweist: Bestimmen, durch den Computer, durch Verwenden einer kausalen Inferenzkonditionierung, einer ersten Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf einen ersten Satz von Leistungskennzahlen in Bezug auf diejenigen Datenverarbeitungsknoten der Mehrzahl von Datenverarbeitungsknoten mit einer angepassten Anzahl von Containern hat; Bestimmen, durch den Computer, durch Verwenden der kausalen Inferenzkonditionierung, einer zweiten Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf einen zweiten Satz von Leistungskennzahlen in Bezug auf die beiden Datenverarbeitungsknoten hat; und Anzeigen, durch den Computer, in einem Leistungskennzahl-Dashboard, der ersten Auswirkung, die ein Anpassen der aktuellen Anzahl von Containern, die jedem jeweiligen Mikrodienst der Mehrzahl von verschiedenen Mikrodiensten entsprechen, auf den ersten Satz von Leistungskennzahlen hatte, und der zweiten Auswirkung, die ein Migrieren dieser bestimmten Container zwischen zwei Datenverarbeitungsknoten auf den zweiten Satz von Leistungskennzahlen hatte.
DE112021006130.5T 2020-11-24 2021-10-21 Automatisierte orchestrierung von containern durch bewerten von mikrodiensten Pending DE112021006130T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/103,156 US11704123B2 (en) 2020-11-24 2020-11-24 Automated orchestration of containers by assessing microservices
US17/103,156 2020-11-24
PCT/CN2021/125328 WO2022111156A1 (en) 2020-11-24 2021-10-21 Automated orchestration of containers by assessing microservices

Publications (1)

Publication Number Publication Date
DE112021006130T5 true DE112021006130T5 (de) 2023-12-14

Family

ID=81658267

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021006130.5T Pending DE112021006130T5 (de) 2020-11-24 2021-10-21 Automatisierte orchestrierung von containern durch bewerten von mikrodiensten

Country Status (6)

Country Link
US (1) US11704123B2 (de)
JP (1) JP2023549655A (de)
CN (1) CN116508003A (de)
DE (1) DE112021006130T5 (de)
GB (1) GB2615040A (de)
WO (1) WO2022111156A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022028532A (ja) * 2020-08-03 2022-02-16 富士通株式会社 生成方法、および生成プログラム
US20220286499A1 (en) * 2021-03-04 2022-09-08 Electronics And Telecommunications Research Institute Apparatus and method for autoscaling service shared in cloud
US11574022B2 (en) * 2021-03-23 2023-02-07 International Business Machines Corporation Derivation of progressively variant dark data utility
US11693766B2 (en) * 2021-06-15 2023-07-04 International Business Machines Corporation Resource allocation in microservice architectures
US20220407816A1 (en) * 2021-06-21 2022-12-22 International Business Machines Corporation Service-to-service scheduling in container orchestrators
US20230032853A1 (en) * 2021-07-28 2023-02-02 Adobe Inc. Efficient adaptive allocation of resources for container-based computation via markov decision processes
US11683391B2 (en) * 2021-09-10 2023-06-20 International Business Machines Corporation Predicting microservices required for incoming requests
US20230385143A1 (en) * 2022-05-31 2023-11-30 Dell Products L.P. Microservices anomaly detection
US20240121321A1 (en) * 2022-10-05 2024-04-11 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for removing stale context in service instances in providing microservices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946527B2 (en) 2013-03-15 2018-04-17 Bmc Software, Inc. Service placement techniques for a cloud datacenter
US10540211B2 (en) 2014-11-13 2020-01-21 Telefonaktiebolaget Lm Ericsson (Publ) Elasticity for highly available applications
US9775008B2 (en) 2015-01-14 2017-09-26 Kodiak Networks, Inc. System and method for elastic scaling in a push to talk (PTT) platform using user affinity groups
CN105631196B (zh) 2015-12-22 2018-04-17 中国科学院软件研究所 一种面向微服务架构的容器级弹性资源供给***及方法
US20180004499A1 (en) * 2016-06-30 2018-01-04 Xerox Corporation Method and system for provisioning application on physical machines using operating system containers
CN106330576B (zh) 2016-11-18 2019-10-25 北京红马传媒文化发展有限公司 容器化微服务自动伸缩及迁移调度的方法、***和设备
US11284300B2 (en) * 2016-12-30 2022-03-22 Comcast Cable Communications, Llc Efficiently managing network traffic
US10608901B2 (en) 2017-07-12 2020-03-31 Cisco Technology, Inc. System and method for applying machine learning algorithms to compute health scores for workload scheduling
CN109783073B (zh) 2017-11-13 2023-05-23 中兴通讯股份有限公司 应用容器的弹缩方法及装置、微服务、存储介质
US10601679B2 (en) 2017-12-26 2020-03-24 International Business Machines Corporation Data-centric predictive container migration based on cognitive modelling
US10198250B1 (en) 2018-01-04 2019-02-05 Accenture Global Solutions Limited Partitioning based migration of systems to container and microservice based platforms
EP3522013B1 (de) 2018-02-01 2020-04-01 Siemens Aktiengesellschaft Verfahren und system zum migrieren von behältern in einer container-orchestrierungsplattform zwischen rechenknoten
US10382260B1 (en) 2018-06-07 2019-08-13 Capital One Services, Llc Utilizing maching learning to reduce cloud instances in a cloud computing environment
US11106560B2 (en) 2018-06-22 2021-08-31 EMC IP Holding Company LLC Adaptive thresholds for containers
CN108984269B (zh) 2018-07-16 2022-06-07 中山大学 基于随机回归森林模型的容器资源供给方法及***
US11121943B2 (en) 2018-12-13 2021-09-14 Sap Se Amplifying scaling elasticity of microservice meshes
US11726758B2 (en) * 2019-02-07 2023-08-15 Microsoft Technology Licensing, Llc Efficient scaling of a container-based application in a distributed computing system
CN109901922B (zh) 2019-03-05 2021-06-18 北京工业大学 一种面向多层服务的容器云资源调度优化方法
US11303534B2 (en) * 2019-12-13 2022-04-12 Hewlett Packard Enterprise Development Lp Proactively accomodating predicted future serverless workloads using a machine learning prediction model and a feedback control system
US11025495B1 (en) * 2019-12-18 2021-06-01 Vmware, Inc. Methods and apparatus to determine container priorities in virtualized computing environments
CN111130908B (zh) 2019-12-31 2022-09-06 中信百信银行股份有限公司 基于调用流量分析预测的微服务动态聚合拆分***
US11487579B2 (en) * 2020-05-05 2022-11-01 Adobe Inc. System and method for resource scaling for efficient resource management

Also Published As

Publication number Publication date
US11704123B2 (en) 2023-07-18
JP2023549655A (ja) 2023-11-29
GB202306438D0 (en) 2023-06-14
WO2022111156A1 (en) 2022-06-02
CN116508003A (zh) 2023-07-28
US20220164186A1 (en) 2022-05-26
GB2615040A (en) 2023-07-26

Similar Documents

Publication Publication Date Title
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112020000526T5 (de) System und verfahren zum inkrementellen lernen für eine objekterkennung
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112018002984T5 (de) Konformitätsbewusste Laufzeiterzeugung auf Grundlage von Anwendungsmustern und Risikobeurteilung
DE112016001902T5 (de) Schätzen von Rechenressourcen für die Ausführung von Data-Mining-Diensten
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112012000444T5 (de) Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE102021109511A1 (de) Container-as-a- service (caas)-controller für die überwachung von clustern und die implementierung von autoscaling-richtlinien
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE112020003744T5 (de) Durch dienstqualitätskriterien vorgegebenes automatisiertes betriebsdatenmanagement
DE112020006449T5 (de) Verteilen von arbeitslasten bei berechnungen auf der grundlage einer berechneten berechnungsschwerkraft innerhalb unterschiedlicher datenverarbeitungsparadigmen
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten
DE102021130359A1 (de) Ressourcenzuordnung auf der grundlage eines kontextbezogenen szenarios
DE112021003184T5 (de) Ermittlung von laufzeitumgebungen für software-container
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten
DE112021003499T5 (de) Skalierbare operatoren für eine automatische verwaltung von arbeitslasten in hybriden cloud-umgebungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence