DE112019003405T5 - Automatische feinabstimmungsvorrichtung für einbettungen von cloud-mikrodiensten - Google Patents

Automatische feinabstimmungsvorrichtung für einbettungen von cloud-mikrodiensten Download PDF

Info

Publication number
DE112019003405T5
DE112019003405T5 DE112019003405.7T DE112019003405T DE112019003405T5 DE 112019003405 T5 DE112019003405 T5 DE 112019003405T5 DE 112019003405 T DE112019003405 T DE 112019003405T DE 112019003405 T5 DE112019003405 T5 DE 112019003405T5
Authority
DE
Germany
Prior art keywords
microservice
timeout
application
based application
retry
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
DE112019003405.7T
Other languages
English (en)
Inventor
Srinivasan Parthasarathy
Sushma Ravichandran
Fabio Oliveira
Tamar Eilam
Ashok Nagpurkar Priya
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 DE112019003405T5 publication Critical patent/DE112019003405T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Feedback Control In General (AREA)

Abstract

Bereitgestellt werden ein Verfahren und ein System zum Optimieren von Parametern einer Anwendung auf Mikrodienst-Grundlage. Eine Mikrodienst-Infrastruktur der Anwendung auf Mikrodienst-Grundlage wird bestimmt. Ein oder mehrere Optimierungsziele, die mit der Anwendung auf Mikrodienst-Grundlage in Beziehung stehen, werden bestimmt. Verschiedene Kombinationen von Zeitüberschreitungs- und Wiederholungswerten werden für jeden Mikrodienst geprüft. Ein Reward-Wert wird für jede der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten berechnet. Die Mikrodienst-Infrastruktur wird auf eine Kombination von Zeitüberschreitungs- und Wiederholungswerten mit einem höchsten Reward-Wert für das eine bzw. die mehreren Optimierungsziele eingerichtet.

Description

  • HINTERGRUND
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein Netzwerk-Datenverarbeitung und insbesondere verteilte Anwendungen auf Cloud-Grundlage.
  • BESCHREIBUNG DES EINSCHLÄGIGEN STANDS DER TECHNIK
  • In den letzten Jahren hat sich die Plattform für Cloud-Datenverarbeitung zur beliebtesten Möglichkeit entwickelt, eine große Bandbreite von Datenverarbeitungsressourcen bereitzustellen, wie zum Beispiel Infrastruktur-, Plattform- und Anwendungsdienste. In diesem Zusammenhang bieten verschiedene Hersteller Lösungen auf Cloud-Grundlage an, um die Verwendung ihrer Rechenzentren zu optimieren. Moderne Anwendungen auf Cloud-Grundlage sind verteilt, heterogen und können schnell skaliert werden, um auf Bedarf zu reagieren. Diese Flexibilität wird durch die Verwendung einer feingranularen, dienstorientierten Architektur ermöglicht, auf die manchmal als Mikrodienst-Architektur verwiesen wird.
  • Ein Mikrodienst ist ein Web-Dienst, der einen einzigen Verwendungszweck anbietet und eine Gruppe von APIs für andere Mikrodienste aufzeigt, die eine bestimmte Anwendung gemeinsam umsetzen. Derartige Anwendungen können als eine Sammlung von verschiedenen Mikrodiensten an Stelle von einer monolithischen Anwendung aufgebaut werden. Jeder Mikrodienst einer Anwendung auf Mikrodienst-Grundlage kann eigenständig ausgeführt werden und unter Verwendung von verschiedenen Codier- oder Programmiersprachen erstellt werden. Ferner kann jeder Mikrodienst unabhängig von anderen Mikrodiensten entwickelt, bereitgestellt und verwaltet werden, die Bestandteil der Anwendung auf Mikrodienst-Grundlage sind. Neue Funktionen und Aktualisierungen für einen Mikrodienst können kontinuierlich auf eine schnelle schrittweise Art bereitgestellt werden, wobei neuere Versionen von Mikrodiensten kontinuierlich in eine Produktionsbereitstellung integriert werden können. Derart entwickelte Anwendungen auf Mikrodienst-Grundlage sind dynamisch, da sie häufig aktualisiert und bereitgestellt werden können.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Gemäß verschiedenen Ausführungsformen werden eine Datenverarbeitungseinheit, ein nicht flüchtiges, durch einen Computer lesbares Speichermedium und ein Verfahren bereitgestellt, um Parameter einer Anwendung auf Mikrodienst-Grundlage zu optimieren. Eine Mikrodienst-Infrastruktur der Anwendung auf Mikrodienst-Grundlage wird bestimmt. Ein oder mehrere Optimierungsziele werden bestimmt, die mit der Anwendung auf Mikrodienst-Grundlage in Beziehung stehen. Verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten werden für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage geprüft. Ein Reward-Wert wird für jede der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten berechnet. Die Mikrodienst-Infrastruktur wird auf eine Kombination von Zeitüberschreitungs- und Wiederholungswerten mit einem höchsten Reward-Wert für das eine bzw. die mehreren Optimierungsziele eingestellt.
  • In einer Ausführungsform umfasst ein Bestimmen der Mikrodienst-Infrastruktur der Anwendung auf Mikrodienst-Grundlage ein Identifizieren von Mikrodiensten, die von der Anwendung auf Mikrodienst-Grundlage verwendet werden, und ein Identifizieren von Zwischenverbindungen zwischen den Mikrodiensten.
  • In einer Ausführungsform umfasst ein Optimierungsziel eine niedrigste Ende-zu-Ende-Latenz innerhalb einer vorher festgelegten maximalen Fehlerrate für die Anwendung auf Mikrodienst-Grundlage.
  • In einer Ausführungsform umfasst ein Optimierungsziel eine niedrigste Fehlerrate innerhalb einer vorher festgelegten maximalen Ende-zu-Ende-Latenz für die Anwendung auf Mikrodienst-Grundlage.
  • In einer Ausführungsform erfolgt das Prüfen von jeder der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten über einen Simulator der Anwendung auf Mikrodienst-Grundlage.
  • In einer Ausführungsform umfasst das Prüfen von jeder der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten ein Prüfen jeder Kombination direkt auf der Anwendung auf Mikrodienst-Grundlage.
  • In einer Ausführungsform umfasst das Prüfen der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten ein Schätzen einer Zeitlänge zum Prüfen der erstellten verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten direkt auf der Anwendung auf Mikrodienst-Grundlage. Nach einem Bestimmen, dass die Zeitlänge bei oder unter einem vorher festgelegten Schwellenwert liegt, wird jede der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten direkt auf der Anwendung auf Mikrodienst-Grundlage geprüft. Nach einem Bestimmen, dass die Zeitlänge über einem vorher festgelegten Schwellenwert liegt, wird jedoch ein Simulator verwendet, um eine Leistung der Anwendung auf Mikrodienst-Grundlage für jede der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten zu emulieren.
  • In einer Ausführungsform wird ein Korrekturmodell auf jeden bestimmten Reward-Wert angewendet, wobei das Korrekturmodell den bestimmten Reward-Wert als Eingabe übernimmt und einen neuen Schätzwert des Reward-Werts als Ausgabe auf Grundlage von statistischen und Maschinenlerntechniken liefert.
  • Diese und andere Merkmale werden aus der folgenden ausführlichen Beschreibung von veranschaulichenden Ausführungsformen davon offenkundig, die in Verbindung mit den begleitenden Zeichnungen gelesen werden soll.
  • Figurenliste
  • Die Zeichnungen stellen veranschaulichende Ausführungsformen dar. Sie veranschaulichen nicht alle Ausführungsformen. Weitere Ausführungsformen können zusätzlich oder stattdessen verwendet werden. Details, die offenkundig erscheinen oder unnötig sind, können weggelassen worden sein, um Platz zu sparen oder aus Gründen einer effizienteren Veranschaulichung. Einige Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle der veranschaulichten Komponenten oder Schritte ausgeübt werden. Wenn in verschiedenen Zeichnungen dieselben Bezugszeichen erscheinen, wird damit auf dieselben oder ähnliche Komponenten oder Schritte verwiesen.
    • 1 ist gemäß einer veranschaulichenden Ausführungsform eine beispielhafte Architektur zum Umsetzen eines Systems zum automatischen Feinabstimmen von Anwendungen auf Mikrodienst-Grundlage.
    • 2 ist gemäß einer veranschaulichenden Ausführungsform ein Blockschaubild eines Systems, das Mikrodienste verwendet.
    • 3 ist gemäß einer veranschaulichenden Ausführungsform ein System, das ein Gitter von interagierenden Mikrodiensten umfasst.
    • 4A und 4B veranschaulichen verschiedene Einstellungen für Zeitüberschreitung in beispielhaften Szenarios.
    • 5 ist ein konzeptionelles Blockschaubild eines Systems, das eine automatische Feinabstimmungs-Engine zum automatischen Anpassen von Parametern von Mikrodiensten verwendet, die in einer Cloud umgesetzt sind.
    • 6 stellt gemäß einer veranschaulichenden Ausführungsform einen Prozess für eine automatische Feinabstimmung von Parametern einer Anwendung auf Mikrodienst-Grundlage dar.
    • 7 ist eine Veranschaulichung eines funktionsbezogenen Blockschaubilds einer Computer-Hardwareplattform, die fähig ist, mit verschiedenen vernetzten Komponenten Daten auszutauschen.
    • 8 stellt gemäß einer veranschaulichenden Ausführungsform eine Cloud-Computing Umgebung dar.
    • 9 stellt gemäß einer veranschaulichenden Ausführungsform Abstraktionsmodellschichten dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • ÜBERBLICK
  • In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Details mithilfe von Beispielen dargelegt, um für ein umfassendes Verständnis der relevanten Lehren zu sorgen. Es sollte jedoch offensichtlich sein, dass die vorliegenden Lehren ohne derartige Details ausgeübt werden können. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten und/oder Schaltungen auf einer relativ hohen Ebene ohne Details beschrieben, um eine unnötige Unverständlichkeit von Aspekten der vorliegenden Lehren zu vermeiden.
  • Die vorliegende Offenbarung betrifft allgemein Systeme und Verfahren für eine automatische Feinabstimmung von Anwendungen auf Cloud-Grundlage, die Mikrodienste umfassen. Mikrodienst-Anwendungen beruhen auf einer verteilten Architektur, wobei die Dienste als separate Anwendungen bereitgestellt werden und auf sie per Fernzugriff über ein Remote-Zugriffsprotokoll zugegriffen wird. Die wichtigsten Kriterien bei einer derartigen verteilten Architektur umfassen ein Verwalten der Verfügbarkeit und Reaktionsschnelligkeit der Mikrodienste. Die Verfügbarkeit von Diensten bezieht sich auf eine Fähigkeit, sich mit einem Mikrodienst so zu verbinden, dass ein Ereignis stattfindet (z.B. Informationen von dort empfangen werden). Andererseits bezieht sich die Dienst-Reaktionsschnelligkeit auf die Zeit, die der Dienst in Anspruch nimmt, um auf eine Anforderung zu reagieren, sobald die Datenverbindung hergestellt ist.
  • Auch wenn eine Mikrodienst-Architektur Ausfälle durch definierte Abgrenzungen isoliert, besteht eine hohe Wahrscheinlichkeit von Problemen für Netzwerk, Hardware, Datenbank oder Anwendung, die zu der vorübergehenden Nichtverfügbarkeit eines Mikrodienstes führen können, und auf die hierin als ein Ausfall des Mikrodienstes verwiesen wird. Wenn innerhalb einer vorab festgelegten Zeit keine Dienstverfügbarkeit bereitgestellt wird, unterliegt der Mikrodienst einer Zeitüberschreitungsbedingung, mit der die Anforderung des Mikrodienstes beendet wird.
  • Eine Anforderung für einen Mikrodienst kann mit einer vorher festgelegten Häufigkeit wiederholt werden, worauf hierin als eine Wiederholung verwiesen wird. Eine Wiederholung kann effektiv sein, wenn Fehler vorübergehender Natur sind. Zum Beispiel kann ein Mikrodienst vorübergehend unter großer Last stehen und kann daher nicht reagieren - bei einem nachfolgenden Versuch kann er aber verfügbar sein. Aus der Perspektive eines Endbenutzers sollte die Ende-zu-Ende-Latenz auf ein Minimum reduziert sein, ungeachtet der Komplexität der Anwendung auf Mikrodienst-Grundlage. In diesem Zusammenhang stellen die Lehren hierin Verfahren und Systeme für ein automatisches Anpassen der Anzahl von Wiederholungen und der Parameter für die verstrichene Zeit zwischen jeder Wiederholung (d.h. Zeitüberschreitung) bereit.
  • Aufgrund der hierin erörterten Konzepte wird die Datenverarbeitungstechnologie der Cloud verbessert. Insbesondere werden Mikrodienste von Anwendungen automatisch fein abgestimmt, um deren Leistung zu verbessern. Die hierin beschriebenen Techniken können auf mehrere Arten umgesetzt werden. Beispielhafte Umsetzungen werden im Folgenden unter Bezugnahme auf die folgenden Figuren bereitgestellt.
  • BEISPIELHAFTE ARCHITEKTUR
  • 1 ist gemäß einer veranschaulichenden Ausführungsform eine beispielhafte Architektur 100 zum Umsetzen eines Systems zum automatischen Feinabstimmen von Anwendungen auf Mikrodienst-Grundlage. Die Architektur 100 umfasst ein Netzwerk 106, das verschiedenen Datenverarbeitungseinheiten 102(1) bis 102(N) ermöglicht, miteinander Daten auszutauschen, sowie andere Elemente, die mit dem Netzwerk 106 verbunden sind, wie zum Beispiel ein Analyse-Server 116 und die Cloud 120. Das Netzwerk 106 kann ohne Einschränkung ein globales Computernetzwerk aufweisen, wie beispielsweise das Internet, ein Weitverkehrsnetzwerk (WAN), ein lokales Netzwerk (LAN), ein virtuelles privates Netzwerk (VPN), ein Satellitennetzwerk, ein Telefon- oder Kabelnetzwerk, ein Mobilfunknetzwerk, ein drahtloses Netzwerk wie zum Beispiel WLAN oder WiMAX oder verschiedene Teile oder Kombinationen von diesen und anderen Typen von Netzwerken (z.B. Netzwerke auf Grundlage von Internet-Protokollen (IP)). Das Netzwerk 106 weist dazwischen liegende Punkte auf (wie beispielsweise Router, Switches usw.), Gateways und andere Elemente, die einen Netzwerk-Backbone bilden, um Datenübertragungspfade zu erstellen und eine Datenübertragung zwischen Netzwerk-Endpunkten zu ermöglichen.
  • Das Netzwerk 106 ermöglicht der automatischen Feinabstimmungs-Engine 110, die ein Programm sein kann, das auf dem Analyse-Server 116 ausgeführt wird, mit der Referenzdatenquelle 112, der Cloud 120 und Datenverarbeitungseinheiten 102(1) bis 102(N) Daten auszutauschen, um die hierin erörterte automatische Feinabstimmung von Mikrodiensten bereitzustellen. Die Cloud 120 kann ein privates oder öffentliches Cloud-Computing-System aufweisen. Die verschiedenen Komponenten der Cloud 120 können miteinander über das Netzwerk 106 und/oder LANs und WANs Daten austauschen, die Teil der Cloud 120 sind. In einer Ausführungsform stellt die Cloud 120 eine Dienststruktur von Mikrodiensten bereit, die den Betrieb von komplexen Anwendungen ermöglichen. Die Architektur der Cloud 120 wird im Folgenden noch ausführlicher erörtert.
  • Zum Zweck einer späteren Erörterung werden die Datenverarbeitungseinheiten 102(1) bis 102(N) in der Zeichnung gezeigt, um einige Beispiele von Datenverarbeitungsplattformen darzustellen, die zum Darstellen eines Endbenutzers verwendet werden können. Gegenwärtig liegen Datenverarbeitungseinheiten typischerweise in Form von tragbaren Handapparaten, Smartphones, Tablet-Computern, PDAs (Personal Digital Assistants) und Smart-Uhren vor, obwohl sie in anderen Bauformen umgesetzt werden können, einschließlich elektronischen Verbraucher- und Geschäftseinheiten. In anderen Ausführungsformen kann ein Endbenutzer eine weitere Anwendung und/oder ein weiterer Mikrodienst sein. Die Datenverarbeitungseinheiten (102(1) bis 102(N) können zum Generieren von Anforderungen für Ressourcen 103(1) bis 103(N) verwendet werden, die durch die Feinabstimmungs-Engine 110 optimiert werden.
  • Die automatische Feinabstimmungs-Engine 110 des Analyse-Servers 116 ist betreibbar, um Anforderungen für eine Ressource (z.B. 103(1)) von Endbenutzern (z.B. 102(1)) zu empfangen. Diese Ressourcen stehen mit einer Anwendung oder mit mehreren Anwendungen auf Mikrodienst-Grundlage in Beziehung, die in der Cloud 120 umgesetzt sein kann oder können. Für jede angeforderte Ressource wird die automatische Feinabstimmungs-Engine 110 konfiguriert, um die Infrastruktur der Mikrodienste zu bestimmen, die mit der angeforderten Ressource in Beziehung stehen, indem ein Netzwerk von dazugehörigen Mikrodiensten identifiziert wird. Jeder Mikrodienst weist eine zugehörige durchschnittliche Verzögerung unter verschiedenen Lastbedingungen auf (z.B. bester (geringe Nutzung), nomineller (typische Nutzung) und schlimmster Fall (hohe Last)). Die vorhandene Verzögerung für jeden Mikrodienst kann von der Referenzdatenquelle 112 als Protokolldaten bereitgestellt werden, wie im Folgenden erörtert.
  • In einigen Ausführungsformen umfasst eine Anforderung einer Ressource Parameter einer Dienstgütevereinbarung (SLA) (Service Level Agreement), die Verpflichtungen oder Einschränkungen definiert, die zwischen einem der Cloud 120 zugehörigen Dienstanbieter und einem Konto eines Kunden gelten, das einer Datenverarbeitungseinheit zugehörig ist (z.B. 102(N)). In anderen Ausführungsformen kann eine derartige SLA von einer separaten Datenbank für Geschäftsregeln (nicht gezeigt) bereitgestellt werden, auf die von der automatischen Feinabstimmungs-Engine 110 über das Netzwerk 106 zugegriffen werden kann. Die SLA kann von der automatischen Feinabstimmungs-Engine 110 verwendet werden, um einen Maximalwert einer Fehlerrate, eine Verzögerung, eine Konfidenzebene, Datenverarbeitungskosten, ein Zeitüberschreitungslimit, ein Wiederholungslimit usw. oder jede Kombination von diesen zu identifizieren.
  • Eine Referenzdatenquelle 112 kann vorhanden sein, die Schulungsdaten 113, auf die hierin manchmal als Protokolldaten verwiesen wird, für die automatische Feinabstimmungs-Engine 110 bereitstellt. In einer Ausführungsform ist die automatische Feinabstimmungs-Engine 110 konfiguriert, um Algorithmen zu verwenden, die aus Vorhersagen lernen können und/oder Vorhersagen auf Grundlage einer Sammlung von Schulungsdaten 113 erstellen können, die grundlegende Leistungsindikatoren (KPIs) umfassen, die von der Referenzdatenquelle 112 bereitgestellt werden. Die KPIs können verschiedene Datenübertragungsparameter umfassen wie zum Beispiel, aber nicht darauf beschränkt, eine Verzögerung zwischen bestimmten Mikrodiensten unter verschiedenen Lastbedingungen, Fehlerrate, Zeitüberschreitungseinstellungen, Anzahl von Wiederholungen, die zum Erfolg führten usw. In einigen Ausführungsformen können die Schulungsdaten auch von anderen Anwendungen stammen, die dieselben Mikrodienste verwenden. Derartige Lernalgorithmen arbeiten, indem sie ein Modell aus den empfangenen Schulungsdaten 113 erstellen, um datengesteuerte Vorhersagen oder Entscheidungen zu treffen, statt rein statischen Kriterien zu folgen. Maschinenlernen kann zum automatischen Auswählen von optimierten Zeitüberschreitungs- und Wiederholungswerten auf Grundlage von Protokolldaten verwendet werden. In verschiedenen Ausführungsformen kann das Maschinenlernen Techniken nutzen wie beispielsweise überwachtes Lernen, nicht überwachtes Lernen, halbüberwachtes Lernen, Naive Bayes, Netzwerke nach Bayes, Entscheidungsbäume, neuronale Netzwerke, Fuzzy-Logikmodelle und/oder probabilistische Klassifizierungsmodelle. Eine Optimierung kann durch Umsetzen von Zeitüberschreitungs- und Wiederholungsparametern für jeden identifizierten Mikrodienst einer Anwendung umgesetzt werden, wodurch ein höchster Reward-Wert für die Anwendung bereitgestellt wird. Das Konzept eines Reward-Werts wird im Folgenden noch ausführlicher erörtert.
  • In verschiedenen Ausführungsformen kann das hierin erörterte Maschinenlernen überwacht oder nicht überwacht sein. Im überwachten Lernen kann die automatische Feinabstimmungs-Engine 110 mit beispielhaften Schulungsdaten 113 mit Schwellenwertbedingungen dargestellt werden. Anders ausgedrückt, die Schulungsdaten 113 wirken als Lehrer für einen Lernalgorithmus der automatischen Feinabstimmungs-Engine 110. Im nicht überwachten Lernen stellen die Schulungsdaten 113 keine Label in Hinsicht darauf bereit, was akzeptabel ist, sondern stellen einfach die Protokolldaten für den Lernalgorithmus der automatischen Feinabstimmungs-Engine 110 bereit, die verwendet werden können, um in den Schulungsdaten 113 nach einer eigenen Struktur zu suchen, um daraus ein Modell zu erstellen. In verschiedenen Ausführungsformen kann das Modell der automatischen Feinabstimmungs-Engine 110 anschließend verwendet werden, um einen Simulator zu erstellen, um die Leistung der Anwendung auf Mikrodienst-Grundlage zu emulieren, ein Korrekturmodell zu erstellen, um alle Simulations- und/oder physischen Ergebnisse zu korrigieren und/oder die Zeitüberschreitungs- und Wiederholungsparameter für jeden Mikrodienst einer Anwendung zu initialisieren. Das Korrekturmodell übernimmt den bestimmten Reward-Wert als Eingabe und gibt einen neuen Schätzwert des Reward-Werts als Ausgabe auf Grundlage von statistischen und Maschinenlerntechniken aus.
  • In verschiedenen Ausführungsformen kann ein höchster Reward-Wert auf Grundlage von Fehlerrate, Verstoß gegen Latenzeinschränkungen, Konfidenzebene in den Schätzwerten und anderen KPls erreicht werden. Zum Beispiel können verschiedene Kombinationen von Zeitüberschreitung und Wiederholung für jeden Mikrodienst in einem Netzwerk von Mikrodiensten einer Anwendung ausgewertet werden, sodass eine niedrigste Ende-zu-Ende-Latenz (d.h. wie von der Datenverarbeitungseinheit (z.B. 102(1)) des Endbenutzer wahrgenommen) erreicht wird, wobei eine Schwellenwert-Fehlerrate nicht überschritten wird. In einer weiteren Ausführungsform werden verschiedene Kombinationen von Zeitüberschreitung und Wiederholung ausgewertet, sodass eine niedrigste Fehlerrate erreicht wird, wobei ein maximaler Schwellenwert einer Ende-zu-Ende-Latenz nicht überschritten wird. Dementsprechend verbessert sich auf Grund einer Optimierung von wenigstens den Zeitüberschreitungs- und Wiederholungsparametern jedes identifizierten Mikrodienstes die Leistung einer Anwendung auf Mikrodienst-Grundlage, wobei die Fehlerrate kontrolliert wird.
  • Zwar werden die Referenzdatenquelle 112 und der Analyse-Server 116 beispielhaft als auf verschiedenen Plattformen befindlich veranschaulicht, doch sollte klar sein, dass die Referenzdatenquelle 112 und der Lern-Server in verschiedenen Ausführungsformen kombiniert werden können. In anderen Ausführungsformen können diese Datenverarbeitungs-Plattformen durch virtuelle Datenverarbeitungseinheiten in Form von virtuellen Maschinen oder Software-Containern umgesetzt werden, die in der Cloud 120 gehostet werden, wodurch eine flexible Architektur für Verarbeitung und Speicherung bereitgestellt wird.
  • BEISPIELHAFTE BLOCKSCHAUBILDER
  • Im Folgenden wird auf 2 Bezug genommen, die gemäß einer veranschaulichenden Ausführungsform ein Blockschaubild eines Systems ist, das Mikrodienste verwendet. Der Endbenutzer 202 kann eine Benutzereinheit von einer Anwendung oder eine weitere Anwendung sein. Der Endbenutzer 202 kann die Dienststruktur des Systems 200 verwenden, um eine oder mehrere Anforderungen für eine Ressource zu erfüllen.
  • Das Gateway 204, auf das hierin manchmal als ein Eingang verwiesen wird, ist ein Front-End, das Zugriff auf die Dienststruktur des Systems 200 bereitstellt. Zum Beispiel kann das Gateway 204 API-Anforderungen empfangen, die mit einem oder mehreren Mikrodiensten in Beziehung stehen, die zum Beispiel in 2 als Backend-Dienste 1 bis N dargestellt sind, und die Antwort von dem einen oder den mehreren Mikrodiensten anschließend zu einem geeigneten Empfänger weiterleiten, der eine Datenverarbeitungseinheit oder eine weitere Anwendung sein kann (zum Beispiel dargestellt als der Endbenutzer 202). Das Gateway 204 kann außerdem andere Funktionen bereitstellen, die einem Gateway zugehörig sind, wie zum Beispiel Durchsetzen von Sicherheitsrichtlinien, Bereitstellen von Drosselung, Autorisierung, Authentifizierung, Audit und Einhaltung behördlicher Auflagen usw. In einer Ausführungsform kann das Gateway 204 Analysedaten von Verzögerungen und/oder Zeitüberschreitung sammeln, die jedem Backend-Dienst 1 bis N zugehörig sind. Das Gateway kann auch die Ende-zu-Ende-Latenz und Fehlerrate sowie die Latenz zwischen Mikrodiensten und entsprechender Fehlerrate überwachen. Diese KPIs und andere können in einer Referenzdatenbank ähnlich der Referenzdatenquelle 112 von 1 gespeichert werden.
  • Zum Beispiel kann eine Anwendung eine verteilte Anwendung auf Mikrodienst-Grundlage sein, die eine Aggregation einer Mehrzahl von verschiedenen Mikrodiensten aufweist, einschließlich zum Beispiel eines ersten Mikrodienstes 210 (z.B. Backend-Dienst 1), eines zweiten Mikrodienstes 212 (z.B. Backend-Dienst 2) usw. bis zu einem N-ten Mikrodienst 214 (z.B. Backend-Dienst N). Die Mikrodienste 210 bis 214 können eine Sammlung von verteilten feingranularen Web-Diensten aufweisen wie zum Beispiel Web-Dienste auf REST-Grundlage. Die Mikrodienste 210 bis 214 können miteinander über ein Datenübertragungsnetzwerk interagieren, das standardmäßige Anwendungsprotokolle wie HTTP und Datenübertragungsmuster, Anforderung-Reaktion, Veröffentlichen-Abonnieren usw. verwendet, deren Semantik gut verstanden wird. Die Mikrodienste 210 bis 214 sind lose miteinander verbunden, sodass jeder Mikrodienst unabhängig von anderen Mikrodiensten einer Anwendung aktualisiert und bereitgestellt werden kann, die diese Mikrodienste 210 bis 214 verwendet, solange die von ihnen aufgerufenen APIs rückwärts kompatibel sind. Eine derartige lose Verbindung kann zum Beispiel unter Verwendung von standardmäßigen Anwendungsprotokollen wie HTTP erreicht werden, um eine einfache Integration mit anderen Mikrodiensten zu ermöglichen,
  • Zum Beispiel kann eine Anwendung auf Mikrodienst-Grundlage sich ohne Einschränkung unter Verwendung der Sammlung von feingranularen Mikrodiensten 210 bis 214 auf Web-Dienste oder mobile Datenverarbeitungsdienste für einen Endbenutzer 202 beziehen. Die Anwendung auf Mikrodienst-Grundlage nutzt verschiedene verwaltete Dienste, die von einer Hosting-Cloud bereitgestellt werden (z.B. ähnlich derjenigen von Cloud 120 von 1), einschließlich zum Beispiel von verwalteten Datenbanken und anderen Typen von Diensten wie Datenanalyse usw. Einige Anwendungen können auch mit einem oder mehreren Web-Diensten von Drittanbietern integriert werden, einschließlich zum Beispiel einem sozialen Netzwerk, einem mobilen Push-Nachrichtendienst, einem Geolokalisierungsdienst usw.
  • In dem Beispiel von 2 wird der angegebene Zeitraum, der in einem System verstreichen darf, bevor ein angegebenes Ereignis stattfinden soll (d.h. Zeitüberschreitung), für den Mikrodienst 210 auf 3 Sekunden gesetzt. Ferner werden die Wiederholungen (d.h. die Anzahl von Versuchen, bevor eine Interaktion mit dem Mikrodienst als Fehlschlag eingestuft wird), auf 2 begrenzt. Wiederholungen bieten die Möglichkeit, vorher fehlgeschlagene Operationen aufzurufen. Das System 200 wiederholt die fehlgeschlagene Operation mit einer vorher festgelegter Häufigkeitsanzahl (z.B. 2 in dem vorliegenden Beispiel für den Mikrodienst 210) und fährt anschließend mit dem Rückgriff (der Wiederherstellung) fort, um die Daten aus einem Cache oder einem Standardwert zurückzugeben. Zum Beispiel antwortet der Mikrodienst 210 zu einem Zeitpunkt möglicherweise nicht aufgrund einer hohen Last, ist aber für einen Datenaustausch mit dem Gateway 204 oder jedem anderen Mikrodienst, der seinen Dienst anfordert, nach einer vorher festgelegten Wartezeit (z.B. einige Sekunden) verfügbar, auf die hierin als Wiederholungszeitraum verwiesen wird. In diesem Beispiel ist eine Wiederholung beim Empfangen von Ergebnissen von dem Mikrodienst 210 hilfreich.
  • Ein kontinuierliches Wiederholen des Dienstes ohne ein sinnvolles Intervall kann jedoch zu unannehmbaren Verzögerungen führen, da die Zeitüberschreitung kürzer als die inhärente Verzögerung des Mikrodienstes 210 sein kann, was zu wiederholten Fehlschlägen führt, die den Endbenutzer letztendlich Zeit kosten. Um eine derartige Verzögerung zu verkürzen, stellt das Zeitüberschreitungslimit von 3 Sekunden eine Abschaltung für den Mikrodienst 210 bereit. Durch Bereitstellen von ausreichender Zeit für eine Zeitüberschreitung werden übermäßige Verzögerungen auf Grund von unwirksamen Wiederholungen vermieden. In einer Ausführungsform erhöht sich der Zeitüberschreitungswert nach jeder Wiederholung. Anders ausgedrückt, der anfängliche Zeitüberschreitungswert kann aggressiver sein, wogegen für die zweite Zeitüberschreitung mehr Zeit bereitstellt wird, um die Chancen einer erfolgreichen Interaktion mit einem Mikrodienst zu erhöhen.
  • In einer Ausführungsform ist ein Wiederherstellungsmechanismus vorhanden, wobei eine standardmäßige Fehlerantwort für den Endbenutzer dargestellt wird, wenn ein Backend-Dienst (z.B. der Mikrodienst 210) nicht innerhalb der Grenzwerte einer SLA arbeitet. Zum Beispiel kann die Antwort lauten, eine Wiederholung nach einem vorher festgelegten Zeitraum vorzunehmen.
  • Es sollte klar sein, dass jeder Mikrodienst eine andere Verzögerung haben kann. Zum Beispiel kann der Mikrodienst 210 eine durchschnittliche Verzögerung von 2 Sekunden haben, wogegen ein weiterer Mikrodienst (z.B. 214) eine durchschnittliche Verzögerung von 50 Millisekunden haben kann. In einem Aspekt ist die hierin erörterte automatische Feinabstimmungs-Engine konfiguriert, um Wiederholungs- und Zeitüberschreitungswerte zu optimieren, sodass die Gesamtlatenz, die durch den Endbenutzer 202 wahrgenommen wird, minimiert wird, wobei eine Schwellenwert-Fehlerrate nicht überschritten wird. Zu diesem Zweck kann die automatische Feinabstimmungs-Engine eine Suite von Maschinenlerntechniken umfassen, die es Endbenutzern ermöglichen, nicht nur Latenzeinschränkungen über SLAs anzugeben, sondern die Zeitüberschreitungs- und Wiederholungsparameter auch automatisch für jeden Dienst abzustimmen, um System-Fehlerraten zu minimieren.
  • 3 ist gemäß einer veranschaulichenden Ausführungsform ein System, das ein Gitter von interagierenden Mikrodiensten umfasst. Eine Anforderung von dem Endbenutzer 302 wird von einem Gateway 304 empfangen, das Zugriff auf eine Dienststruktur bereitstellt, die in der Cloud 320 gehostet sein kann. Die Anforderung kann einen ersten Mikrodienst 310 betreffen, der mit einem zweiten Mikrodienst 312 und einem dritten Mikrodienst 314 verknüpft ist. Der dritte Mikrodienst 314 ist wiederum mit einem vierten Mikrodienst 316 verknüpft. In dem Beispiel von 3 weist der erste Mikrodienst 310 eine durchschnittliche Verzögerung von ungefähr 50 Millisekunden auf, wogegen die anderen Mikrodienste durchschnittliche Verzögerungen von 1 Sekunde aufweisen. Die Herausforderung, die sich durch das beispielhafte Szenario 300 stellt, besteht darin, wie die Zeitüberschreitungs- und Wiederholungsparameter jedes Mikrodienstes einzeln (d.h. entsprechend 310 bis 316) so optimiert werden können, dass eine Ende-zu-Ende-Latenz für den Endbenutzer 302 minimiert wird.
  • Im Folgenden wird auf 4A und 4B Bezug genommen, die verschiedene Einstellungen für Zeitüberschreitung in beispielhaften Szenarios veranschaulichen. Es sollte klar sein, dass verschiedene Mikrodienste verschiedene Datenübertragungseigenschaften und somit verschiedene Verzögerungen haben können. Zum Beispiel kann sich der erste Mikrodienst 410 auf eine Produktseite beziehen und unter normalen Bedingungen eine kleine Verzögerung von 40 Millisekunden haben. Der zweite Mikrodienst 412 kann sich auf zusätzliche Details beziehen, der dritte Mikrodienst 414 kann Berichte bereitstellen und der vierte Mikrodienst 416 kann sich auf Bewertungen beziehen, wobei alle unter normalen Bedingungen eine durchschnittliche Verzögerung von 1 Sekunde aufweisen. Ferner kann jeder Mikrodienst unter verschiedenen Lasten unterschiedlich reagieren. Der dritte Mikrodienst 414 kann zum Beispiel von einer hohen Last stärker betroffen sein als der vierte Mikrodienst 416. Diese Verzögerung können mit Verarbeitung, Datenübertragungslatenz (z.B. Durchqueren des Internets) und Fehlern in Beziehung stehen, die die Reaktion verzögern. Diese Verzögerungen können zwischen Mikrodiensten beträchtlich voneinander abweichen. In dieser Hinsicht kann die Produktseite (d.h. der Mikrodienst 410) eine Anforderung an den Detail-Mikrodienst (d.h. 412) und den Bericht-Mikrodienst (d.h. 414) vermeiden. Wenn innerhalb einer vorher festgelegten Zeit keine Reaktion empfangen wird, erfolgt für die Anforderung eine Zeitüberschreitung. Somit wird jeder Anforderer-Mikrodienst von zwei Hauptparametern beeinflusst, nämlich (i) Zeitüberschreitung und (ii) Anzahl der Wiederholungen.
  • 4A stellt ein Szenario dar, in dem die Zeitüberschreitungen für die Mikrodienste 412, 414 und 416 eingestellt werden, um eine Ende-zu-Ende-Latenz auf Kosten einer möglicherweise höheren Fehlerrate zu minimieren. Insbesondere durch Verwenden einer Zeitüberschreitung von 0,5 Sekunden zwischen den Mikrodiensten 410 und 412, zwischen den Mikrodiensten 410 und 414 und zwischen den Mikrodiensten 414 und 416 bis zu 0,5 Sekunden wird eine Ende-zu-Ende-Latenz von ungefähr 1 Sekunde erreicht. Eine derart aggressive Zeitüberschreitung im Hinblick auf die durchschnittliche Verzögerung von jedem der Mikrodienste 412, 414 und 416 von 1 Sekunde wird jedoch möglicherweise auf Kosten einer höheren Fehlerrate erzielt, die von dem Endbenutzer 402 wahrgenommen werden kann. Anders ausgedrückt, ein System 400A kann einer oder mehreren Wiederholungen unterliegen, um die Anforderung für einen Dienst für einen Endbenutzer 402 erfolgreich (oder überhaupt) zu erfüllen.
  • Im Gegensatz dazu stellt 4B ein Szenario dar, in dem Zeitüberschreitungen für die Mikrodienste 412, 414 und 416 so eingestellt sind, dass sie eine vom Endbenutzer 402 wahrgenommene Fehlerrate minimieren. Zu diesem Zweck wird eine Zeitüberschreitung, die wesentlich größer als eine durchschnittliche Verzögerung für jeden entsprechenden Mikrodienst ist (z.B. doppelt so groß) eingestellt, um die Zeitüberschreitung abzuschwächen. Dementsprechend treten auch Wiederholungen weniger wahrscheinlich auf. Wenn jedoch längere Zeitüberschreitungsperioden verwendet werden, während die Fehlerrate verringert wird, erhöht sich die von dem Endbenutzer 402 wahrgenommene Ende-zu-Ende-Latenz um ungefähr 4 Sekunden in dem Beispiel von 4B. Dementsprechend zeigen 4A und 4B, dass eine umgekehrte Beziehung zwischen Zeitüberschreitung und Fehlerrate besteht.
  • Die optimale Einstellung für die Zeitüberschreitung kann irgendwo zwischen den durch 4A und 4B dargestellten Einstellungen liegen. In dem Beispiel von 4A und 4B verwendet der Mikrodienst 410 die Ergebnisse der Mikrodienste 412 und 414. Der Mikrodienst 414 wird in dem vorliegenden Beispiel jedoch durch den Mikrodienst 416 verzögert. Somit kann eine aggressive Einstellung der Zeitüberschreitung für den Mikrodienst 412 nicht geeignet sein, da der Mikrodienst 410 immer noch die Ergebnisse der Mikrodienste 414 und infolgedessen 416 benötigt, die später bereitgestellt werden.
  • In einem Aspekt ist die automatische Feinabstimmungs-Engine konfiguriert, um verschiedene Permutationen von Zeitüberschreitung und Wiederholung für jeden der Mikrodienste 410 bis 416 auszuwerten, sodass eine durch den Endbenutzer 402 wahrgenommene effektive Ende-zu-Ende-Latenz minimiert wird. Zum Beispiel kann der Endbenutzer und/oder die SLA 402 eine maximal akzeptable Ende-zu-Ende-Latenz angeben. Die automatische Feinabstimmungs-Engine wiederum passt die Zeitüberschreitungs- und Wiederholungsparameter so an, dass die Anforderung mit einer geringstmöglichen Fehlerrate erfüllt wird. Alternativ minimiert die automatische Feinabstimmungs-Engine auf Grundlage der Spezifikationen von dem Endbenutzer 402 und/oder einer SLA eine Ende-zu-Ende-Latenz bei oder unter einem vorher festgelegten Schwellenwert der Fehlerrate.
  • In einer Ausführungsform formuliert die automatische Feinabstimmungs-Engine von 1 das Problem eines Optimierens der Zeitüberschreitungs- und Wiederholungsparameter in Form eines skalaren Reward-Werts, der im Folgenden in Gleichung 1 bereitgestellt wird;
  • r e w a r d = { e excess latency 1 i f latency > l , 1 i w i e i if latency l
    Figure DE112019003405T5_0001
    wobei:
    / ist die vom Endbenutzer oder der SLA angegebene Latenz;
    wi ist die Gewichtung der i-ten Verknüpfung in der Anwendung; und
    ei ist die Fehlerrate, die auf der i-ten Verknüpfung in der Anwendung zu sehen ist.
  • Dementsprechend stellt die Multiziel-Optimierung von Gleichung 1 einen höchsten skalaren Reward-Wert bereit, wenn die Ende-zu-Ende-Latenz für eine bestimmte Zeitüberschreitungs-Fehlerrate minimiert wird. Zum Beispiel stellt die vorgenannte Analyse den höchsten skalaren Reward-Wert bereit, wenn die Ende-zu-Ende-Latenz mit dem Grenzwert „1“ in Gleichung 1 gehalten wird und die Fehlerraten minimiert werden. Die Fehlerrate wird abhängig von einer Einschränkung für Latenz minimiert. Das System kann auch zum Minimieren von Latenz verwendet werden, während die Fehlerrate innerhalb eines bestimmten Grenzwerts gehalten wird. Zum Beispiel werden verschiedene Kombinationen von Zeitüberschreitung und Wiederholung für jeden Mikrodienst unabhängig voneinander verwendet, sodass ein höchster Reward-Wert für eine Anwendung auf Mikrodienst-Grundlage erreicht wird. In einigen Ausführungsformen werden zusätzliche Validierungseinschränkungen und/oder Konfidenzebenen für die Multiziel-Optimierung verwenden. Es sollte klar sein, dass die Multiziel-Optimierung von Gleichung 1 hier nur als Beispiel und keinesfalls als Einschränkung bereitgestellt wird. Andere Multiziel-Optimierungsansätze können ebenfalls verwendet werde.
  • Verschiedene verteilte Ablaufverfolgungstechniken wie beispielsweise Zipkin und Istio Analytics können zum Identifizieren der Verzögerungsquellen in einem Mikrodienste-Gitter einer Anwendung verwendet werden. Bei Empfang einer Anforderung für eine Ressource von einem Endbenutzer 402 kann das Gateway 404 zum Beispiel eine eindeutige Kennung zuweisen, die zusammen mit der Anforderung an jeden Mikrodienst übergeben wird. Jeder Mikrodienst kann eine Bibliothek umfassen, die zum Identifizieren der Eingangs- und Ausgangsanschlüsse der Anforderung für jeden Mikrodienst verwendet wird. Die Daten werden anschließend an einen Server zurück übertragen (z.B. Analyse-Server 116 von 1), der die verteilte Ablaufverfolgungstechnik unterstützt. Auf diese Weise können die KPIs jedes Mikrodienstes identifiziert und möglicherweise in der Referenzdatenquelle 112 gespeichert werden. In den Beispielen von 4A und 4B sind vier untereinander verbundene Mikrodienste 410 bis 416 vorhanden, um eine Anwendung auf Mikrodienst-Grundlage aufzunehmen. Ein verteiltes Verfolgungswerkzeug kann die Länge der Zeit und die Anzahl von Wiederholungen messen, die jedem Mikrodienst zugehörig sind. Auf diese Weise können Engpässe in dem System identifiziert und durch geeignete Einstellungen von Zeitüberschreitung und Wiederholung behoben werden, wie hierin erörtert.
  • Im Folgenden wird auf 5 Bezug genommen, die ein konzeptionelles Blockschaubild eines Systems 500 ist, das eine automatische Feinabstimmungs-Engine zum automatischen Anpassen von Parametern von Mikrodiensten verwendet, die in einer Cloud umgesetzt sind. Das System 500 umfasst eine automatische Feinabstimmungs-Engine 570, die auf einem Analyse-Server 516 ausgeführt wird. Eine Cloud 520 ist vorhanden, die eine Dienststruktur für Mikrodienste (d.h. 510, 512, 514 und 516) und für Anwendungen auf Mikrodienst-Grundlage bereitstellt. Das Gateway 504 ist konfiguriert, um API-Anforderungen zu empfangen, die mit einem oder mehreren Mikrodiensten der Anwendungen auf Mikrodienst-Grundlage in Beziehung stehen. Das Gateway 504 steht außerdem mit der automatischen Feinabstimmungs-Engine 570 des Analyse-Servers 516 im Datenaustausch, um verschiedene KPls bereitzustellen, die aus den Mikrodiensten der Cloud 520 gesammelt wurden.
  • Die automatische Feinabstimmungs-Engine 570 umfasst ein Optimierungsprogramm 550, das konfiguriert ist, um mittels eines hierin erörterten Reward-Werts nach optimalen Parametern zu suchen. Zu diesem Zweck können Black-Box-Optimierungs- oder Reinforcement-Lerntechniken verwendet werden, um optimierte Zeitüberschreitungs- und Wiederholungswerte zu identifizieren. In diesen beiden Techniken wird der skalare Reward, der aus der Anwendung erhalten wird, als die Rückmeldung von der Umgebung des Lernalgorithmus behandelt, und der Parameterbereich, den das Lernprogramm durchsucht, ist der Bereich von realisierbaren Zeitüberschreitungs- und Wiederholungswerten für die Anwendung. In verschiedenen Ausführungsformen kann die automatische Feinabstimmungs-Engine die verschiedenen Permutationen 552 der Zeitüberschreitungs- und Wiederholungswerte direkt auf der Anwendung auf Mikrodienst-Grundlage über das Gateway 504 oder über einen optionalen Simulator 554 prüfen, um den Reward-Wert anhand einer Gruppe von Parametern zu bestimmen. Im Black-Box-Optimierungsansatz ist ein Simulator 554 besonders nützlich, wenn eine tatsächliche Auswertung der verschiedenen Permutationen der Anwendung auf Mikrodienst-Grundlage zu zeitaufwendig und/oder rechnerisch zu Ressourcen-intensiv wäre. Stattdessen kann der Simulator 554 ein Modell der Anwendung auf Mikrodienst-Grundlage verwenden, um die verschiedenen Permutationen zu simulieren, was unter verschiedenen Bedingungen erfolgen kann, wie zum Beispiel als ein bester Fall (z.B. geringe Last), ein nominaler Fall (z.B. normale oder durchschnittliche Bedingungen), schlimmster Fall (z.B. hohe Last). In einer Ausführungsform kann das Modell der Anwendung auf Mikrodienst-Grundlage auf Grundlage der Schulungsdaten 113 generiert werden, die von der Referenzdatenquelle von 1 bereitgestellt werden. Auf diese Weise kann die Auswirkung der verschiedenen Permutationen der Parametereinstellungen auf die Ende-zu-Ende-Latenz und Fehlerraten durch die automatische Feinabstimmungs-Engine 570 effizient ausgewertet werden.
  • In einer Ausführungsform werden Monte-Carlo-Simulationen verwendet, um die verschiedenen Permutationen von Zeitüberschreitung und Wiederholungen zu untersuchen. Insbesondere werden Monte-Carlo-Simulationen verwendet, um den Reward-Wert der Anwendung für eine bestimmte Einstellung von Zeitüberschreitungs- und Wiederholungsparametern 558 zu schätzen.
  • In einer Ausführungsform ist ein Korrekturmodell 560 vorhanden, das betreibbar ist, um die Reward-Ergebnisse 558 zu korrigieren, die vom Simulator 554 bereitgestellt werden. Zu diesem Zweck verwendet das Korrekturmodell ein Maschinenlernmodell auf Grundlage von Schulungsdaten 562 aus der aktuellen Anwendung auf Mikrodienst-Grundlage. Dieses Modell wird erlernt, indem zuerst ein paar verschiedene Zeitüberschreitungs- und Wiederholungseinstellungen sowohl auf dem Simulator als auch der realen Anwendung ausprobiert werden und anschließend der simulierte Reward berechnet wird, wie auch der reale Reward von der Anwendung beobachtet wird. Das Korrekturmodell kann unter Verwendung von Maschinenlerntechniken geschult werden wie zum Beispiel Regression, um den realen Reward auf Grundlage des simulierten Rewards vorherzusagen, indem der reale Reward als Ziel und der simulierte Reward als eines der zur Reward-Vorhersage verwendeten Merkmale behandelt wird. Andere Merkmale wie Zeitüberschreitungs- und Wiederholungseinstellungen, die zum Erhalten dieses Simulations-Rewards verwendet werden, können ebenfalls für diese Vorhersage verwendet werden.
  • Nachdem das Optimierungsprogramm 550 mindestens die optimierten Zeitüberschreitungs- und Wiederholungsparameter bestimmt hat, sendet das Optimierungsprogramm 550 die endgültigen Parameter 556 über das Gateway 504 an jeden entsprechenden Mikrodienst. Auf diese Weise wird jeder Mikrodienst so optimiert, dass eine niedrigste Ende-zu-Ende-Latenz erreicht wird, wobei eine Schwellenwert-Fehlerrate nicht überschritten wird. In einer Ausführungsform wird eine niedrigste Fehlerrate erreicht, wobei ein maximaler Schwellenwert einer Ende-zu-Ende-Latenz nicht überschritten wird. Dementsprechend verbessert sich auf Grund einer Optimierung von wenigstens den Zeitüberschreitungs- und Wiederholungsparametern jedes identifizierten Mikrodienstes die Leistung einer Anwendung auf Mikrodienst-Grundlage, wobei die Fehlerrate kontrolliert wird.
  • BEISPIELHAFTER PROZESS
  • Anhand des vorstehenden Überblicks über die beispielhafte Architektur 100 und die Systeme 200 bis 500 kann es von Nutzen sein, im Folgenden eine Erörterung von beispielhaften Prozessen auf höherer Ebene in Betracht zu ziehen. Zu diesem Zweck stellt 6 gemäß einer veranschaulichenden Ausführungsform einen Prozess 600 für eine automatische Feinabstimmung von Parametern einer Anwendung auf Mikrodienst-Grundlage dar. Der Prozess 600 wird als eine Sammlung von Prozessen in einem logischen Ablaufplan veranschaulicht, wobei jeder Block eine Abfolge von Operationen darstellt, die in Hardware, Software oder einer Kombination davon umgesetzt werden können. In dem Kontext von Software stellen die Prozesse durch einen Computer ausführbare Anweisungen dar, die bei Ausführung durch einen oder mehrere Prozessoren die genannten Operationen ausführen. Im Allgemeinen können durch einen Computer ausführbare Anweisungen Routinen, Programme, Aufgaben, Komponenten, Datenstrukturen und dergleichen enthalten, die Funktionen ausführen oder abstrakte Datentypen umsetzen. Die Reihenfolge, in der die Operationen beschrieben werden, soll keinesfalls als eine Einschränkung aufgefasst werden, und jede Anzahl der beschriebenen Prozesse kann in jeder Reihenfolge kombiniert und/oder parallel ausgeführt werden, um den Prozess umzusetzen. Zu Erörterungszwecken wird der Prozess 600 unter Bezugnahme auf die Architektur 100 von 1 beschrieben.
  • Am Block 602 kann die automatische Feinabstimmungs-Engine 110 des Analyse-Servers 116 eine Mikrodienst-Infrastruktur für eine Anwendung auf Mikrodienst-Grundlage bestimmen. Zum Beispiel werden die Mikrodienste, die für die Anwendung auf Mikrodienst-Grundlage verwendet werden, sowie die Zwischenverbindungen zwischen diesen Mikrodiensten identifiziert.
  • Am Block 610 wird eine Dienstgütevereinbarung (SLA) in Verbindung mit der Anwendung auf Mikrodienst-Grundlage bestimmt. In verschiedenen Ausführungsformen kann die SLA in Form eines Datenpakets von einem Endbenutzer (z.B. im Kontext einer Anforderungen einer Ressource (z.B. 103(1)) oder von einer Datenbank für Geschäftsregeln empfangen werden. Die SLA kann zum Bestimmen von einem oder mehreren Optimierungszielen verwendet werden. Zum Beispiel kann ein Optimierungsziel darin bestehen, eine niedrigste Latenz für eine vorher festgelegte maximale Fehlerrate aufzuweisen. In einem weiteren Beispiel kann das Optimierungsziel darin bestehen, eine niedrigste Fehlerrate innerhalb eines maximalen Schwellenwerts der Ende-zu-Ende-Latenz aufzuweisen.
  • Am Block 620 werden bestehende Zeitüberschreitungs- und Wiederholungswerte für jeden identifizierten Mikrodienst für die Anwendung auf Mikrodienst-Grundlage bestimmt. Die bestehenden Zeitüberschreitungswerte können verschiedenen Bedingungen unterliegen, wie zum Beispiel einem besten Fall, einem nominalen Fall, einen schlimmsten Fall usw. In einer Ausführungsform werden die bestehenden Zeitüberschreitungs- und Wiederholungswerte aus Protokoll-Schulungsdaten 113 bestimmt, die von einer Referenzdatenquelle 112 empfangen werden. In einigen Ausführungsformen werden die bestehenden Zeitüberschreitungs- und Wiederholungswerte aktiv bestimmt.
  • Am Block 630 werden verschiedene Kombinationen von Zeitüberschreitungs- und Wiederholungswerten auf Grundlage der bestimmten bestehenden Zeitüberschreitungs- und Wiederholungswerten von Block 620 vorbereitet. Zu diesem Zweck werden Black-Box-Optimierungs-, Gray-Box-Optimierungs- oder Reinforcement-Lerntechniken verwendet, um verschiedene Kombinationen von Zeitüberschreitungs- und Wiederholungswerten zu identifizieren. In einer Ausführungsform beruhen die ausgewählten Kombinationen auf Bereichen, die innerhalb eines vorher festgelegten Abstands der durchschnittlichen Zeitüberschreitungs- und Wiederholungswerte für jeden identifizierten Mikrodienst liegen. Auf diese Weise können unrealistische Kombinationen vermieden werden.
  • Am Block 640 wird eine nicht ausprobierte (z.B. neue) Kombination von Zeitüberschreitungs- und Wiederholungswerten der vorbereiteten Kombinationen von Block 630 geprüft. Die Prüfung kann direkt auf der Anwendung auf Mikrodienst-Grundlage auf der Cloud oder mittels eines Simulators ausgeführt werden. In einer Ausführungsform schätzt die automatische Feinabstimmungs-Engine 110 eine Zeitlänge, die zum Prüfen jeder identifizierten Kombination von Zeitüberschreitungs- und Wiederholungswerteinstellungen für die betreffende Anwendung benötigt würde. Wenn die Zeitlänge über einem vorher festgelegten Schwellenwert liegt, wird ein Simulator verwendet, wodurch Zeit und/oder Rechenressourcen der Cloud 120 eingespart werden, von der die Mikrodienste gehostet werden.
  • Am Block 650 wird ein Reward-Wert für die geprüfte Kombination von Zeitüberschreitungs- und Wiederholungswerten für die Mikrodienste der Anwendung auf Mikrodienst-Grundlage bestimmt.
  • In einer Ausführungsform wird ein Korrekturmodell verwendet, um das Ergebnis des Reward-Werts zu korrigieren, das vom Simulator bereitgestellt wird. In diesem Zusammenhang wird am Block 660 ein Korrekturmodell auf die Daten angewendet, die von dem Simulator bereitgestellt werden, um die Genauigkeit des Reward-Werts für die geprüfte Kombination zu verbessern.
  • Am Block 670 bestimmt die automatische Feinabstimmungs-Engine 110, ob alle im Block 630 identifizierten Kombinationen von Zeitüberschreitungs- und Wiederholungswerten geprüft worden sind. Ist dies nicht der Fall (d.h. „NEIN“ am Entscheidungsblock 670), kehrt der Prozess zum Block 640 zurück, um eine neue Kombinationen von Zeitüberschreitungs- und Wiederholungswerten zu prüfen. Nach einem Bestimmen, dass alle Kombinationen ausgewertet worden sind (d.h. „JA“ am Entscheidungsblock 670), fährt der Prozess mit Block 680 fort.
  • Am Block 680 wählt die automatische Feinabstimmungs-Engine 110 eine Kombination von Zeitüberschreitungs- und Wiederholungswerten für jeden der Mikrodienste der Anwendung auf Mikrodienst-Grundlage, die einen höchsten Reward-Wert bereitstellt. Somit wird jeder der identifizierten Mikrodienste auf seine geprüften entsprechenden Zeitüberschreitungs- und Wiederholungswerte eingestellt.
  • BEISPIELHAFTE COMPUTERPLATTFORM
  • Wie oben erörtert, können Funktionen, die sich unter Verwendung von willkürlichen Abfolgeeinbettungen auf eine effiziente Analyse von Symbolabfolgen beziehen, unter Verwendung von einer oder mehreren Datenverarbeitungseinheiten ausgeführt werden, die zum Datenaustausch über drahtlose oder drahtgebundene Datenübertragung verbunden sind, wie in 1 gezeigt. 7 ist eine Veranschaulichung eines funktionsbezogenen Blockschaubilds einer Computer-Hardwareplattform, die fähig ist, mit verschiedenen vernetzten Komponenten Daten auszutauschen, wie zum Beispiel einer Schulungs-Eingabedatenquelle, der Cloud usw. Insbesondere veranschaulicht 7 ein Netzwerk bzw. eine Host-Computerplattform 700, die zum Umsetzen eines Servers verwendet werden kann wie zum Beispiel des Analyse-Servers 116 von 1.
  • Die Computerplattform 700 kann eine Zentraleinheit (CPU) 704, ein Festplattenlaufwerk (HDD) 706, einen Direktzugriffspeicher (RAM) und/oder einen Nur-LeseSpeicher (ROM) 708, eine Tastatur 710, eine Maus 712, eine Anzeige 714 und eine Datenübertragungsschnittstelle 716 enthalten, die mit einem Systembus 702 verbunden sind.
  • In einer Ausführungsform besitzt das HDD 706 Fähigkeiten, die ein Speichern eines Programms umfassen, das verschiedene Prozesse, wie zum Beispiel die automatische Feinabstimmungs-Engine 740, auf eine hierin beschriebene Weise ausführen kann. Für die automatische Feinabstimmungs-Engine 740 können verschiedene Module zum Ausführen von unterschiedlichen Funktionen konfiguriert sein. Zum Beispiel kann ein Interaktionsmodul 742 vorhanden sein, das betreibbar ist, um mit einer oder mehreren Datenverarbeitungseinheiten oder Datenquellen zu interagieren, wie beispielsweise der Referenzdatenquelle 112, um Schulungs- oder Protokolldaten 113 von dort zu empfangen. Das Interaktionsmodul 742 ist auch betreibbar, um mit den Diensten der Cloud 120 Daten auszutauschen, wie hierin erörtert.
  • In einer Ausführungsform ist ein Optimierungsprogramm-Modul 744 vorhanden, das betreibbar ist, um die Zeitüberschreitungs- und Wiederholungsparameter jedes Mikrodienstes einer Anwendung auf Mikrodienst-Grundlage zu optimieren. In verschiedenen Ausführungsformen kann das Optimierungsprogramm-Modul 744 mit einem oder mehreren anderen Modulen der automatischen Feinabstimmungs-Engine 740 interagieren, um Black-Box-Optimierungs-, Gray-Box-Optimierungs- oder Reinforcement-Lerntechniken bereitzustellen, um verschiedene Kombinationen von Zeitüberschreitungs- und Wiederholungswerten zu identifizieren.
  • In einer Ausführungsform ist ein Maschinenlernmodul 746 vorhanden, das betreibbar ist, um eine oder mehrere Maschinenlerntechniken, wie zum Beispiel Support-Vektor-Maschine (SVM), logistische Regression, neuronale Netzwerke und dergleichen an den Schulungsdaten 113 und/oder den Ergebnissen auszuführen, die aus dem Ausführen der Anwendung auf Mikrodienst-Grundlage unter verschiedenen Zeitüberschreitungs- und Wiederholungswerten erhalten wurden. Zum Beispiel kann das Maschinenlernmodul 746 verwendet werden, um ein Simulatormodul 748 und/oder ein Korrekturmodul 750 zu erstellen.
  • Dementsprechend kann ein Simulatormodul 748 vorhanden sein, das betreibbar ist, um eine Ausführung einer Anwendung auf Mikrodienst-Grundlage über ein mathematisches Modell zu emulieren. Ein Korrekturmodul 750 kann vorhanden sein, das betreibbar ist, um ein Ergebnis eines Reward-Werts zu korrigieren, das durch das Simulatormodul 748 bereitgestellt wurde.
  • In einer Ausführungsform kann ein Programm wie zum Beispiel Apache™ zum Betreiben des Systems als ein Web-Server gespeichert werden. In einer Ausführungsform kann das HDD 706 eine ausführende Anwendung speichern, die ein oder mehrere Bibliotheks-Softwaremodule enthält, wie diejenigen für das Java™-Program Runtime Environment zum Verwirklichen einer JVM (virtuelle Maschine von Java™).
  • BEISPIELHAFTE CLOUD-PLATTFORM
  • Wie oben erläutert, können Funktionen in Bezug auf die automatische Feinabstimmung von Parametern von Mikrodiensten einer Anwendung auf Mikrodienst-Anwendung eine Cloud 200 umfassen (siehe 1). 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 Ausführungsformen der vorliegenden Offenbarung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
  • Die Eigenschaften sind wie folgt:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, 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 (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, 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: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Es gibt folgende Dienstmodelle:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden 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): Die dem Nutzer bereitgestellte Funktion besteht darin, 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): Die dem Nutzer bereitgestellte Funktion besteht darin, 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 (z.B. Host-Firewalls).
  • Es gibt folgende Nutzungsmodelle:
    • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. 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 enthält.
  • Unter folgender Bezugnahme auf 8 wird eine veranschaulichende Cloud-Computing-Umgebung 800 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 800 einen oder mehrere Cloud-Computing-Knoten 810, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 854A, Desktop-Computer 854B, Laptop-Computer 854C und/oder Fahrzeug-Computersystem 854N, Daten austauschen können. Die Knoten 810 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (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 850 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. Es versteht sich, dass die in 8 gezeigten Typen von Datenverarbeitungseinheiten 854A bis N nur zur Veranschaulichung dienen sollen, und dass die Datenverarbeitungsknoten 810 und die Cloud-Computing-Umgebung 850 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder einet über ein Netzwerk adressierbaren Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
  • Unter folgender Bezugnahme auf 9 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud Computing-Umgebung 850 (8) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Offenbarung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 960 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Mainframes 961; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 962; Server 963; Blade-Server 964; Speichereinheiten 965; und Netzwerke und vernetzte Komponenten 966. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 967 und Datenbank-Software 968.
  • Eine Virtualisierungsschicht 970 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 971; virtueller Speicher 972; virtuelle Netzwerke 973, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 974; und virtuelle Clients 975.
  • In einem Beispiel kann die Verwaltungsschicht 980 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 981 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 982 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 enthalten. 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 983 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level- (Dienstgüte) Verwaltung 984 sorgt für die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 985 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.
  • Eine Arbeitslastschicht 990 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 991; Software-Entwicklung und Lifecycle-Management 992; Bereitstellung von virtuellen Schulungen 993; Datenanalyseverarbeitung 994; Transaktionsverarbeitung 995; und Anwendungen auf Mikrodienst-Grundlage 996, wie hierin erörtert.
  • SCHLUSSFOLGERUNG
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Lehren wurden zum Zweck der 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 und Erfindungsgedanken 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 anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Die obigen Ausführungen wurden unter Berücksichtigung dessen, was als bester Zustand erachtet wurde und/oder anderen Beispielen beschrieben, doch sollte klar sein, dass verschiedene Modifizierungen vorgenommen werden können, und dass die hierin offenbarte Thematik in verschiedenen Formen und Beispielen umgesetzt werden kann, und dass die Lehren auf zahlreiche Anwendungsmöglichkeiten angewendet werden können, von denen nur einige hierin beschrieben wurden. Sämtliche Anwendungen, Modifizierungen und Variationen, die unter den zutreffenden Schutzumfang der vorliegenden Lehren fallen, sollen durch die folgenden Ansprüche beansprucht werden.
  • Die Komponenten, Schritte, Funktionen, Aufgaben, Nutzen und Vorteile, die hierin erörtert wurden, dienen nur zur Veranschaulichung. Weder sie noch die zugehörigen Erörterungen sollen den Umfang des Patentschutzes einschränken. Obwohl hierin verschiedene Vorteile erörtert worden sind, sollte klar sein, dass nicht alle Ausführungsformen notwendigerweise alle Vorteile aufweisen. Sofern nicht anders angegeben, sind alle Maßangaben, Werte, Bewertungen, Positionen, Größenordnungen, Größen und andere technische Daten, die in dieser Patentschrift einschließlich der folgenden Ansprüche dargelegt werden, ungefähre und keine exakten Angaben. Sie sollen einen sinnvollen Bereich angeben, der mit den Funktionen, auf die sie sich beziehen und mit dem in Einklang steht, was im Stand der Technik, zu dem sie gehören, üblich ist.
  • Zahlreiche andere Ausführungsformen werden ebenfalls in Erwägung gezogen. Diese umfassen Ausführungsformen mit weniger, zusätzlichen und/oder verschiedenen Komponenten, Schritten, Funktionen, Aufgaben, Nutzen und Vorteilen. Diese umfassen auch Ausführungsformen, in denen die Komponenten und/oder Schritte angeordnet und/oder anders angeordnet sind.
  • Aspekte der vorliegenden Offenbarung werden hierin unter Bezugnahme auf eine Veranschaulichung eines Ablaufplans und/oder Blockschaubilds eines Verfahrens, einer Vorrichtung (Systemen) und von Computerprogrammprodukten gemäß Ausführungsformen der vorliegenden Offenbarung 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, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. 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 das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsgegenstand 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.
  • Der Ablaufplan und die Blockschaubilder in den Figuren hierin veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. 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 im Wesentlichen parallel ausgeführt werden, 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.
  • Zwar wurden die obigen Ausführungen in Verbindung mit beispielhaften Ausführungen beschrieben, doch sollte klar sein, dass der Begriff „beispielhaft“ nur als ein Beispiel und nicht als das Beste oder Optimale zu verstehen ist. Mit Ausnahme der unmittelbar vorhergehenden Ausführungen ist nichts von dem, was angegeben oder veranschaulicht worden ist, als Interpretation aufzufassen oder sollte so interpretiert werden, dass dies zu einem Verzicht auf eine Komponente, einen Schritt, eine Funktion, eine Aufgabe, einen Nutzen, einen Vorteil oder eine Entsprechung für die Öffentlichkeit führt, ohne Berücksichtigung dessen, ob eine Erwähnung in den Ansprüchen vorliegt.
  • Es sollte klar sein, dass die hierin verwendeten Begriffe und Ausdrücke die gewöhnliche Bedeutung von derartigen Begriffen und Ausdrücken in Bezug auf ihre jeweiligen Fachgebiete und Studienbereiche haben, ausgenommen in Fällen, in denen spezielle Bedeutungen für sie hierin dargelegt worden sind. Beziehungsbegriffe wie zum Beispiel erste/r/s und zweite/r/s und dergleichen können allein zum Unterscheiden einer Entität oder Aktion von einer anderen verwendet werden, ohne dass notwendigerweise irgendeine tatsächliche derartige Beziehung oder Reihenfolge zwischen derartigen Entitäten oder Aktionen erforderlich ist oder impliziert wird. Die Begriffe „weist auf“, „aufweisend“ oder jede andere Variation davon sollen eine nicht ausschließende Einbeziehung abdecken, sodass ein Prozess, Verfahren, Artikel oder eine Vorrichtung, die eine Liste von Elemente aufweisen, nicht nur diese Elemente enthalten, sondern auch andere Elemente enthalten können, die nicht ausdrücklich aufgeführt oder einem solchen Prozess, Verfahren, Artikel oder einer solchen Vorrichtung inhärent sind. Ein Element mit einem vorangestellten „ein/eine“ schließt ohne weitere Einschränkungen das Vorhandensein von weiteren identischen Elementen in dem Prozess, Verfahren, Artikel oder der Vorrichtung nicht aus, die das Element aufweisen.
  • Die Zusammenfassung der Offenbarung wird bereitgestellt, um dem Leser schnell die Natur der technischen Offenbarung zu vermitteln. Sie wird mit dem Verständnis unterbreitet, dass sie nicht für eine Interpretation oder Einschränkung des Schutzumfangs oder der Bedeutung der Ansprüche verwendet wird. Des Weiteren ist aus der vorstehenden „Ausführlichen Beschreibung“ ersichtlich, dass in verschiedenen Ausführungsformen verschiedene Funktionen zur Straffung der Offenbarung zusammengefasst worden sind. Dieses Offenbarungsverfahren soll keinesfalls als eine Absicht interpretiert werden, dass die beanspruchten Ausführungsformen mehr Funktionen haben als ausdrücklich in jedem Anspruch zitiert. Stattdessen, wie durch die folgenden Ansprüche wiedergegeben, ist der Erfindungsgegenstand in weniger als allen Funktionen einer einzelnen offenbarten Ausführungsform vorhanden. Somit werden die folgenden Ansprüche hiermit in die „Ausführliche Beschreibung“ aufgenommen, wobei jeder Anspruch für sich selbst als separat beanspruchter Gegenstand steht.

Claims (15)

  1. Verfahren, ausgeführt auf einer Datenverarbeitungseinheit, wobei die Datenverarbeitungseinheit aufweist: einen Prozessor; eine Speichereinheit, die mit dem Prozessor verbunden ist; und eine automatische Feinabstimmungs-Engine, die in der Speichereinheit gespeichert ist, wobei eine Ausführung der automatischen Feinabstimmungs-Engine durch den Prozessor die Datenverarbeitungseinheit konfiguriert, um die folgenden Schritte des Verfahrens auszuführen: Bestimmen einer Mikrodienst-Infrastruktur einer Anwendung auf Mikrodienst-G rundlage; Bestimmen von einem oder mehreren Optimierungszielen, die mit der Anwendung auf Mikrodienst-Grundlage in Beziehung stehen; Prüfen von verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage; Berechnen eines Reward-Werts für jede der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten; und Einrichten der Mikrodienst-Infrastruktur auf eine Kombination von Zeitüberschreitungs- und Wiederholungswerten mit einem höchsten Reward-Wert für das eine bzw. die mehreren Optimierungsziele.
  2. Verfahren nach Anspruch 1, wobei ein Bestimmen der Mikrodienst-Infrastruktur der Anwendung auf Mikrodienst-Grundlage aufweist: Identifizieren von Mikrodiensten, die von der Anwendung auf Mikrodienst-Grundlage verwendet werden; und Identifizieren von Zwischenverbindungen zwischen den Mikrodiensten.
  3. Verfahren nach Anspruch 1, wobei ein Optimierungsziel eine niedrigste Ende-zu-Ende-Latenz in einer vorher festgelegten maximalen Fehlerrate für die Anwendung auf Mikrodienst-Grundlage aufweist.
  4. Verfahren nach Anspruch 1, wobei ein Optimierungsziel eine niedrigste Fehlerrate in einer vorher festgelegten maximalen Ende-zu-Ende-Latenz für die Anwendung auf Mikrodienst-Grundlage aufweist.
  5. Verfahren nach Anspruch 1, wobei: eine Ausführung der automatischen Feinabstimmungs-Engine die Datenverarbeitungseinheit ferner konfiguriert, um die weiteren Schritte auszuführen zum: Bestimmen eines vorhandenen Zeitüberschreitungswerts für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage; und Bestimmen eines vorhandenen Wiederholungswerts für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage; die vorhandenen Zeitüberschreitungs- und Wiederholungswerte auf historischen Schulungsdaten beruhen, die von einer Referenzdatenquelle empfangen wurden; und Prüfen der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage auf den bestimmten vorhandenen Zeitüberschreitungs- und Wiederholungswerten beruht.
  6. Verfahren nach Anspruch 1, wobei: eine Ausführung der automatischen Feinabstimmungs-Engine die Datenverarbeitungseinheit ferner konfiguriert, um die weiteren Schritte auszuführen zum: Bestimmen eines vorhandenen Zeitüberschreitungswerts für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage; und Bestimmen eines vorhandenen Wiederholungswerts für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage; und die vorhandenen Zeitüberschreitungs- und Wiederholungswerte für jeden Mikrodienst auf dem Mikrodienst beruhen, der unter einer hohen Last arbeitet, die über einer typischen Last liegt.
  7. Verfahren nach Anspruch 1, wobei das eine bzw. die mehreren Optimierungsziele aus einer Dienstgütevereinbarung (SLA) (Service Level Agreement) stammen, die in einem Datenpaket von einem Endbenutzer der Anwendung auf Mikrodienst-Grundlage empfangen wird.
  8. Verfahren nach Anspruch 1, wobei das Prüfen von jeder der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten über einen Simulator der Anwendung auf Mikrodienst-Grundlage erfolgt.
  9. Verfahren nach Anspruch 1, wobei das Prüfen von jeder der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten aufweist: Prüfen von jeder Kombination direkt auf der Anwendung auf Mikrodienst-Grundlage.
  10. Verfahren nach Anspruch 1, wobei das Prüfen der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten aufweist: Schätzen einer Zeitlänge zum Prüfen der erstellten verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten direkt auf der Anwendung auf Mikrodienst-G rundlage; nach einem Bestimmen, dass die Zeitlänge bei oder unter einem vorher festgelegten Schwellenwert liegt, Prüfen von jeder der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten direkt auf der Anwendung auf Mikrodienst-Grundlage; und nach einem Bestimmen, dass die Zeitlänge über einem vorher festgelegten Schwellenwert liegt, Verwenden eines Simulators, um eine Leistung der Anwendung auf Mikrodienst-Grundlage für jede der verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten zu emulieren.
  11. Verfahren nach Anspruch 1, wobei die verschiedenen Kombinationen von Zeitüberschreitungs- und Wiederholungswerten für jeden Mikrodienst erstellt werden von mindestens einem von: (i) Black-Box-Optimierung, (ii) Gray-Box-Optimierung und (iii) Reinforcement-Lerntechniken.
  12. Verfahren nach Anspruch 1, wobei für jeden Mikrodienst der Anwendung auf Mikrodienst-Grundlage die Einstellung des Zeitüberschreitungswerts nach jeder Wiederholung erhöht wird.
  13. Verfahren nach Anspruch 1, wobei eine Ausführung der automatischen Feinabstimmungs-Engine die Datenverarbeitungseinheit konfiguriert, um die weiteren Schritte auszuführen zum: Anwenden eines Korrekturmodells auf jeden bestimmten Reward-Wert, wobei das Korrekturmodell den bestimmten Reward-Wert als Eingabe übernimmt und einen neuen Schätzwert des Reward-Werts als Ausgabe auf Grundlage von statistischen und Maschinenlerntechniken liefert.
  14. System, das Mittel aufweist, die angepasst sind, um alle Schritte des Verfahrens gemäß jedem vorhergehenden Verfahrensanspruch auszuführen.
  15. Computerprogramm, das Anweisungen zum Ausführen aller Schritte des Verfahrens gemäß jedem vorhergehenden Verfahrensanspruch aufweist, wenn das Computerprogramm auf einem Computersystem ausgeführt wird.
DE112019003405.7T 2018-10-12 2019-10-03 Automatische feinabstimmungsvorrichtung für einbettungen von cloud-mikrodiensten Pending DE112019003405T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/159,597 US10673708B2 (en) 2018-10-12 2018-10-12 Auto tuner for cloud micro services embeddings
US16/159,597 2018-10-12
PCT/IB2019/058416 WO2020075017A1 (en) 2018-10-12 2019-10-03 Auto tuner for cloud micro services embeddings

Publications (1)

Publication Number Publication Date
DE112019003405T5 true DE112019003405T5 (de) 2021-04-22

Family

ID=70160625

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019003405.7T Pending DE112019003405T5 (de) 2018-10-12 2019-10-03 Automatische feinabstimmungsvorrichtung für einbettungen von cloud-mikrodiensten

Country Status (6)

Country Link
US (1) US10673708B2 (de)
JP (1) JP7355404B2 (de)
CN (1) CN112567688B (de)
DE (1) DE112019003405T5 (de)
GB (1) GB2587765B (de)
WO (1) WO2020075017A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112012013891B1 (pt) * 2009-12-10 2020-12-08 Royal Bank Of Canada Sistema para efetuar processamento sincronizado de dados através de múltiplos recursos de computação em rede, método, dispositivo e meio legível por computador
CN106533804A (zh) * 2016-12-22 2017-03-22 成都西加云杉科技有限公司 一种网络运营支撑系统
US11182689B2 (en) * 2018-03-28 2021-11-23 International Business Machines Corporation Adaptive learning rate schedule in distributed stochastic gradient descent
US11249803B2 (en) * 2019-03-11 2022-02-15 Nec Corporation Usecase specification and runtime execution
US11570271B2 (en) * 2019-04-10 2023-01-31 Cisco Technology, Inc. Differentiated smart sidecars in a service mesh
US11388273B2 (en) * 2019-05-05 2022-07-12 International Business Machines Corporation Achieving atomicity in a chain of microservices
CN112291178B (zh) * 2019-07-22 2024-03-22 京东方科技集团股份有限公司 一种服务提供方法、装置及电子设备
US11159990B2 (en) * 2019-10-29 2021-10-26 At&T Intellectual Property I, L.P. Microservices coordinator for 5G or other next generation network
US11038763B1 (en) 2019-12-02 2021-06-15 At&T Intellectual Property I, L.P. Intelligent policy control engine for 5G or other next generation network
US11337108B2 (en) * 2020-02-19 2022-05-17 Verizon Patent And Licensing Inc. Uplink congestion control based on SIP messaging
US11488064B2 (en) * 2020-03-30 2022-11-01 International Business Machines Corporation Machine learning model for micro-service compliance requirements
US11237806B2 (en) 2020-04-30 2022-02-01 International Business Machines Corporation Multi objective optimization of applications
US11288109B2 (en) * 2020-06-11 2022-03-29 International Business Machines Corporation Determination of timeout value of an application service in a microservice architecture
US11461162B2 (en) * 2020-07-06 2022-10-04 Ringcentral, Inc. Maze-driven self-diagnostics using reinforcement learning
US11178034B1 (en) * 2020-07-30 2021-11-16 Bank Of America Corporation Resilient network framework for mitigating predicted response time delays
US12056584B2 (en) 2020-11-16 2024-08-06 International Business Machines Corporation Online machine learning with immediate rewards when real rewards are delayed
US11223522B1 (en) * 2021-01-15 2022-01-11 Dell Products L.P. Context-based intelligent re-initiation of microservices
US20220385552A1 (en) * 2021-05-27 2022-12-01 At&T Intellectual Property I, L.P. Record and replay network traffic
CN113360321B (zh) * 2021-06-23 2023-02-07 平安普惠企业管理有限公司 微服务重试调用方法、装置、电子设备及存储介质
US20230033818A1 (en) * 2021-07-30 2023-02-02 International Business Machines Corporation Edge function-guided artifical intelligence request routing
US11968231B2 (en) * 2021-08-04 2024-04-23 International Business Machines Corporation Intelligent request routing within service mesh
US20230086068A1 (en) * 2021-09-22 2023-03-23 Ridgeline, Inc. Enabling an action based on a permission identifier for real-time identity resolution in a distributed system
US11522949B1 (en) * 2021-11-19 2022-12-06 Jpmorgan Chase Bank, N.A. Systems and methods for cloud-based hybrid service meshes in microservice architectures
US11563636B1 (en) * 2022-02-15 2023-01-24 International Business Machines Corporation Dynamic management of network policies between microservices within a service mesh
US11782775B2 (en) 2022-02-15 2023-10-10 International Business Machines Corporation Dynamic management of network policies between microservices within a service mesh
US20230370338A1 (en) * 2022-05-16 2023-11-16 T-Mobile Usa, Inc. Machine learning monitoring of wireless network infrastructure application servers
US20230396686A1 (en) * 2022-06-06 2023-12-07 International Business Machines Corporation Configurable and adaptive resiliency in microservice architectures
CN115250230A (zh) * 2022-07-22 2022-10-28 中国电信股份有限公司 基于微服务的网元计时器管理方法、系统及相关设备
US20240176674A1 (en) * 2022-11-30 2024-05-30 Maplebear Inc. (Dba Instacart) Hypertuning a machine learning model microservices configuration to optimize latency
CN115941504B (zh) * 2022-12-08 2024-03-22 哈尔滨工业大学 一种面向微服务系统运行及治理的建模与仿真方法
US20240223667A1 (en) * 2022-12-30 2024-07-04 Nutanix, Inc. Microservice admission control based on learned demand predictions
CN117041330B (zh) * 2023-10-10 2023-12-15 三峡高科信息技术有限责任公司 一种基于强化学习的边缘微服务细粒度部署方法及系统
CN117648123B (zh) * 2024-01-30 2024-06-11 中国人民解放军国防科技大学 一种微服务快速集成方法、系统、设备及存储介质
CN117692503B (zh) * 2024-02-04 2024-04-26 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816954B2 (en) 2002-07-29 2004-11-09 Lsi Logic Corporation System and method for tuning retry performance
US8468196B1 (en) 2010-05-20 2013-06-18 Google Inc. System and method of reducing latency using adaptive retransmission timeouts
US9015289B2 (en) * 2012-04-12 2015-04-21 Netflix, Inc. Method and system for evaluating the resiliency of a distributed computing service by inducing a latency
US9292039B2 (en) 2012-09-18 2016-03-22 Amazon Technologies, Inc. Adaptive service timeouts
US20150109997A1 (en) * 2013-10-21 2015-04-23 Alexander Sirotkin Apparatus, system and method of interfacing between a cellular manager and a wlan access device
US9652752B2 (en) 2014-07-31 2017-05-16 Ncr Corporation Dynamic network timeout tuning
US9363301B2 (en) 2014-10-21 2016-06-07 Twilio, Inc. System and method for providing a micro-services communication platform
CN105635331B (zh) * 2014-11-18 2019-10-18 阿里巴巴集团控股有限公司 一种分布式环境下的服务寻址方法及装置
CN106547635B (zh) * 2015-09-18 2020-10-09 阿里巴巴集团控股有限公司 一种作业的操作重试方法和装置
US20170187785A1 (en) * 2015-12-23 2017-06-29 Hewlett Packard Enterprise Development Lp Microservice with decoupled user interface
US9842045B2 (en) 2016-02-19 2017-12-12 International Business Machines Corporation Failure recovery testing framework for microservice-based applications
US10051006B2 (en) 2016-05-05 2018-08-14 Keysight Technologies Singapore (Holdings) Pte Ltd Latency-based timeouts for concurrent security processing of network packets by multiple in-line network security tools
US9716617B1 (en) 2016-06-14 2017-07-25 ShieldX Networks, Inc. Dynamic, load-based, auto-scaling network security microservices architecture
US10142356B2 (en) * 2016-07-29 2018-11-27 ShieldX Networks, Inc. Channel data encapsulation system and method for use with client-server data channels
US10169220B2 (en) 2016-08-05 2019-01-01 International Business Machines Corporation Prioritizing resiliency tests of microservices
US10511589B2 (en) * 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
CN107846295B (zh) * 2016-09-19 2020-06-26 华为技术有限公司 微服务配置装置及方法
US9875086B1 (en) 2016-09-29 2018-01-23 International Business Machines Corporation Optimizing performance of applications driven by microservices architecture
US11146535B2 (en) * 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
JP6972796B2 (ja) * 2016-10-21 2021-11-24 富士通株式会社 ソフトウェアサービス実行装置、システム、及び方法
US10140152B2 (en) 2016-12-02 2018-11-27 Vmware, Inc. Dynamic timeout as a service
US10389602B2 (en) * 2016-12-05 2019-08-20 General Electric Company Automated feature deployment for active analytics microservices
US10223109B2 (en) 2016-12-22 2019-03-05 Juniper Networks, Inc. Automatic scaling of microservices applications
US10108381B1 (en) * 2017-04-28 2018-10-23 Kyocera Document Solutions Inc. Distributed printing device management methods and devices
US10523507B2 (en) * 2017-05-11 2019-12-31 Nirmata, Inc. Method and system for tuning performance of microservices-based applications
CN108021447B (zh) 2017-11-28 2021-08-03 象翌微链科技发展有限公司 一种基于分布式数据确定最优资源策略的方法及系统

Also Published As

Publication number Publication date
US20200120000A1 (en) 2020-04-16
JP2022504087A (ja) 2022-01-13
JP7355404B2 (ja) 2023-10-03
GB202101375D0 (en) 2021-03-17
GB2587765B (en) 2021-08-25
CN112567688A (zh) 2021-03-26
GB2587765A (en) 2021-04-07
US10673708B2 (en) 2020-06-02
WO2020075017A1 (en) 2020-04-16
CN112567688B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
DE112019003405T5 (de) Automatische feinabstimmungsvorrichtung für einbettungen von cloud-mikrodiensten
DE112016001902B4 (de) Schätzen von Rechenressourcen für die Ausführung von Data-Mining-Diensten
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112020002110T5 (de) Ressourcenarme entitätsauflösung mit transfer learning
DE112020002987T5 (de) Bereitstellen von mikrodiensten über eine dienstinfrastruktur hinweg
DE112021005422T5 (de) Auf lernen beruhende arbeitslast-ressourcenoptimierung für datenbank-managementsysteme
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE112011104487T5 (de) Verfahren und System zur prädiktiven Modellierung
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112019002680B4 (de) Gerät zur Orchestrierung der verteilten Anwendungsbereitstellung mit End-to-End-Leistungsgarantie
DE112020006449T5 (de) Verteilen von arbeitslasten bei berechnungen auf der grundlage einer berechneten berechnungsschwerkraft innerhalb unterschiedlicher datenverarbeitungsparadigmen
DE112021003262T5 (de) Erkennen von quelldatensätzen, die zu einem transferlernverfahren für eine zieldomäne passen
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112020003744T5 (de) Durch dienstqualitätskriterien vorgegebenes automatisiertes betriebsdatenmanagement
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE112021005263T5 (de) Gleitkommaberechnung mit schwellenwertvorhersage für ein künstliche-intelligenz-system
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE112021003499T5 (de) Skalierbare operatoren für eine automatische verwaltung von arbeitslasten in hybriden cloud-umgebungen
DE112021005219T5 (de) Automatischer Vorhersageskalierer für eine hierarchische Datenverarbeitungsinfrastruktur

Legal Events

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