DE102022201291A1 - Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie - Google Patents

Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie Download PDF

Info

Publication number
DE102022201291A1
DE102022201291A1 DE102022201291.7A DE102022201291A DE102022201291A1 DE 102022201291 A1 DE102022201291 A1 DE 102022201291A1 DE 102022201291 A DE102022201291 A DE 102022201291A DE 102022201291 A1 DE102022201291 A1 DE 102022201291A1
Authority
DE
Germany
Prior art keywords
microservices
quality
measure
service
resource
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
DE102022201291.7A
Other languages
English (en)
Inventor
Stephan Rhode
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022201291.7A priority Critical patent/DE102022201291A1/de
Priority to PCT/EP2023/052458 priority patent/WO2023152004A1/de
Publication of DE102022201291A1 publication Critical patent/DE102022201291A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein computer-implementiertes Verfahren zum Betreiben einer Cloud-Applikation in einem Cloudsystem, mit mehreren interagierenden Microservices (2), mit folgenden Schritten:
- Zuweisen (S3, S5) von Verarbeitungs-Ressourcen zu den Microservices (2) mithilfe eines Skalierers gemäß einer Skalierungsstrategie;
- Betreiben (S1) der Cloud-Applikation gemäß den zugewiesenen Verarbeitungs-Ressourcen; wobei die Skalierungsstrategie abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das einen Aufwand der den Microservices bereits zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices zuzuweisende Verarbeitungs-Ressourcen bestimmt.

Description

  • Technisches Gebiet
  • Die Erfindung betrifft Cloud-Applikationen, die als verteilte Applikation mithilfe von Microservices erstellt sind. Die Erfindung betrifft weiterhin Maßnahmen zum Ressourcen-Management einer solchen Cloud-Applikation.
  • Technischer Hintergrund
  • Eine Software-Applikation, die in einer Cloud, d. h. einer endnutzerfernen Zentraleinheit, ausgeführt wird, wird häufig als verteilte Applikation mit sogenannten Microservices implementiert. Die Microservices sind einzelne separat betriebene Softwaremodule, die über geeignete Schnittstellen, z. B. sogenannten REST-Interfaces und Message Queues, miteinander kommunizieren und dadurch zum Bereitstellen einer Software-Aufgabe interagieren.
  • Microservices einer Software-Applikation können über sogenannte Skalkierer skaliert, d.h. vervielfältigt oder auf geänderte Verarbeitungs-Ressourcen bzw. Hardwareplattformen, z.B. rechenstärkere oder rechenschwächere Hardware, verschoben, werden, Bekannte Skalierer sind unflexibel und können auf die vielfältigen Möglichkeiten von Lastanforderungen nur in begrenztem Maße eingehen.
  • Offenbarung der Erfindung
  • Erfindungsgemäß sind ein Verfahren zum Betreiben einer Software-Applikation in einem Cloud-System gemäß Anspruch 1 sowie ein Verfahren zum Bereitstellen einer Skalierungsstrategie für eine Cloud-Applikation gemäß dem nebengeordneten Anspruch vorgesehen. Gegenstand der vorliegenden Anmeldung sind auch ein entsprechendes Computerprogrammprodukt und ein entsprechendes maschinenlesbares Speichermedium.
  • Weitere Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt ist ein Verfahren zum Betreiben einer Cloud-Applikation in einem Cloudsystem mit mehreren interagierenden Microservices vorgesehen, mit folgenden Schritten:
    • - Zuweisen von Verarbeitungs-Ressourcen zu den Microservices mithilfe eines Skalierers gemäß einer Skalierungsstrategie;
    • - Betreiben der Cloud-Applikation gemäß den zugewiesenen Verarbeitungs-Ressourcen;
    wobei die Skalierungsstrategie abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das einen Aufwand der den Microservices bereits zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices zuzuweisende Verarbeitungs-Ressourcen bestimmt.
  • Zum Bereitstellen einer Cloud-Applikation wird diese häufig in Form eines Systems aus Microservices implementiert, die miteinander kommunizieren. Microservices werden in einer Rechenumgebung betrieben, die in der Regel nutzerfern ist und mit Benutzern in einer, bevorzugt drahtlosen, Kommunikationsverbindung steht.
  • Microservices sind einzelne separat betriebene Softwaremodule, die über geeignete Schnittstellen, z. B. sogenannten REST-Interfaces und Message Queues, miteinander kommunizieren. Dadurch können Microservices zum Bereitstellen einer Software-Aufgabe interagieren.
  • Die Kommunikation zwischen den Microservices und zwischen Microservices und einer oder mehreren Datenbanken und/oder Nutzern erfolgt über Kommunikationsmitteilungen, z.B. in Form von Anfrage oder Antwortinformationen, entweder über HTTP-Request oder über Message Queues. Letztere stellen einen Nachrichtendienst dar, der eine asynchrone Verarbeitung von Informationen erlaubt. Er arbeitet nach dem FIFO (First In First Out)-Prinzip und ermöglicht, bei hoher Last bzw. hoher Kommunikationslast Informationen parallel abzuarbeiten.
  • Die Microservice-Architektur ist heterogener als einheitliche Software. Microservices können auch für eine Cloud-Applikation in unterschiedlichen Programmiersprachen entwickelt sein und auf unterschiedlichen Plattformen betrieben werden, wie beispielsweise VM, Azure, ABS, On-Premise-Clouds. Microservice-Architekturen bieten dadurch eine deutlich größeren Gestaltungsfreiheit als einheitliche Software-Applikationen. Ein Microservice kann auf einer Verarbeitungsressource, die beispielsweise eine oder mehrere Recheneinrichtungen, wie beispielsweise Prozessoren, Rechen-Cores, Virtual Machines usw., ausgeführt werden und ist skalierbar.
  • Das Skalieren von einem, mehreren oder allen Microservices einer Software-Applikation erfolgt in der Regel über implementierte Skalierer, die Teil eines Betriebssystems, wie beispielsweise K8S, sein können oder als automatische Skalierer implementiert sind. Durch einen Skalierer können Microservices vervielfältigt oder auf geänderte Verarbeitungs-Ressourcen bzw. Hardwareplattformen, z.B. rechenstärkere oder rechenschwächere Hardware, verschoben werden. Durch die Skalierer können die Kommunikationsmitteilungen einem oder mehreren parallelisierten gleichartigen Microservices zur Verfügung gestellt werden. Skalierer werden in der Regel regelbasiert betrieben, wobei die Skalierungsregeln, d. h. die Zuordnung von Rechenkapazitäten zu einzelnen Microservices, regelbasiert erfolgt z. B. abhängig von Lastanforderungen.
  • Die Skalierungsstrategie ist eingerichtet, den Microservices zuzuweisende Verarbeitungs-Ressourcen basierend auf zumindest einem aktuellen Wert des Quality-of-Service-Maßes und zumindest einem aktuellen Wert des Ressourcenmaßes für aktuell den Microservices zugewiesenen Verarbeitungsressourcen zu bestimmen.
  • Das obige Verfahren sieht daher ein Verfahren zum Betreiben eines Skalierers für eine verteilte Applikation vor, der basierend auf einer Führungsgröße, d.h. ein Quality-of-Service-Maß, das einen Quality-of-Service quantifiziert (je höher desto bessere Anforderungserfüllung) angibt, betrieben wird. Der Skalierer wird so ausgelegt, dass das Quality-of-Service-Maß maximiert wird, so dass eine Ressourcenzuweisung stets in optimaler Weise erfolgen kann.
  • Das heißt, mit anderen Worten, die Skalierungsstrategie bestimmt den Microservices zuzuweisende Verarbeitungs-Ressourcen insbesondere derart, dass ein zum Erreichen bzw. Erfüllen eines vorgegebenen oder vorgebbaren Quality-of-Service-Maßes erforderlicher Aufwand von Verarbeitungs-Ressourcen minimiert wird.
  • Im Kern wird hierfür für einen Skalierer einer verteilten Applikation ein Reglerentwurf vorgeschlagen. Dabei wird die Ressourcenzuweisung entsprechend der Führungsgröße durchgeführt. Bei einer Microservice-Architektur kann die Ressourcenzuweisung durch den Skalierer als Regler, die verteilte Software-Applikation als Regelungsstrecke und die Führungsgröße als Maß des Quality of Service (Quality-of-Service-Maß) angesehen werden.
  • Weiterhin kann das Quality-of-Service-Maß abhängig von einer maximalen oder durchschnittlichen Antwortzeit der Cloud-Applikation und/oder von einem durchschnittlichen Informationsgehalt einer Antwort der Cloud-Applikation abhängen.
  • Zur Bestimmung des Quality-of-Service-Maß wird die Performance der Cloud-Applikation über einen vorgegebenen Zeitraum betrachtet. Beispielsweise können die Antwortzeiten über einen vorgegebenen Zeitraum ermittelt und daraus ein Quality-of-Service-Maß, z. B. als mittlere Antwortzeit bestimmt werden. Alternativ können auch Systemzustände, wie beispielsweise die Füllzustände der Message Queues und dergleichen, in dem Quality-of-Service-Maß berücksichtigt werden. Darüber hinaus kann das Quality-of-Service-Maß auch indirekt abhängig von Hardware-Zuständen CPU-Last, Speicherauslastung oder eine Kombination beider Hardware-Zustände für jeden Microservice und/oder Systemzustände einer oder mehrerer Datenbanken wie z.B. Schreib- und Lese-Rate bestimmt werden. Die Hardware-Zustände und Systemzustände haben den Vorteil, dass sie im Vergleich zu z.B. Antwortzeiten je Benutzer sehr einfach zu erfassen sind.
  • Es kann vorgesehen sein, dass die Skalierungsstrategie eine Reglerstruktur für eine Regelung auf ein oder mehrere gewünschtes Quality-of-Service-Maße, insbesondere ein oder mehrere Werte oder Wertebereiche eines oder mehrerer Quality-of-Service-Maße aufweist.
  • Die Steuerung durch den Skalierer, d.h. die „Regelung“ ist so ausgelegt, dass ein Gesamtaufwand entsprechend einer Aufwands- oder Kostenfunktion möglichst minimiert werden. Die Aufwandsfunktion kann bspw. auf ein oder mehreren Ressourcenmaßen basieren, wie beispielsweise einer CPU-Last, einem genutzten Arbeitsspeicher, einer Länge der Message Queues, einer Antwortzeit eines Microservice oder einer Kombination aus einem oder mehreren dieser Ressourcenmaße. Hierbei ist ein Wert der Aufwandsfunktion für eine vorgegebene Zuweisung von Ressourcen umso größer je mehr technische Ressourcen zugewiesen und/oder benutzt werden. Die Aufwandsfunktion kann eine Funktion sein, welcher einem oder einer bspw. gewichteten Kombination von mehreren der vorstehend genannten Ressourcenmaßen eine dimensionslose Zahl zuordnet, welche einen mit der Bereitstellung bzw. Zuweisung der Ressourcen verbundenen Aufwand repräsentiert.
  • Dazu wird der Skalierer so betrieben, dass ein Trade-off zwischen einer Maximierung des Quality-of-Service-Maßes und einer Minimierung des Aufwands, bspw. repräsentiert durch Cloud-Kosten, die von dem Ressourcenmaß abhängen, erreicht wird. Der Aufwand kann den Kosten der verfügbaren bzw. bereitgestellten Verarbeitungs-Ressourcen, die für die Ausführung der Microservices und deren Kommunikation genutzt werden, entsprechen.
  • Beispielsweise kann der Quality of Service durch die maximale Antwortzeit einer Website, die Informationen durch ein Microservice-Backend als Cloud-Applikation verarbeitet, von z. B. 100 ms vorgegeben werden. Steigt die Anzahl der Nutzer der Website, kann die Cloud-Applikation überlastet werden und die Antwortzeit steigt. Dadurch nimmt der Quality of Service ab, und es erfolgt eine zusätzliche Zuweisung von Verarbeitungs-Ressourcen zu dem nachgefragten Microservice, bis die Antwortzeit der Website wieder akzeptabel ist. Entsprechend kann ein zu stark parallelisierter Microservice herabskaliert werden, wenn die Anzahl der Nutzer der Website und dadurch die Lastanforderung an die Webseite sich verringert und dadurch der Aufwand für die zugewiesenen Verarbeitungs-Ressourcen entsprechend der Aufwands- bzw. Kostenfunktion zu hoch sind.
  • Zur Bewertung der Verarbeitungs-Ressourcen kann ein Ressourcenmaß verwendet werden, dass die bereitgestellten Verarbeitungs-Ressourcen quantitativ bewertet. Gemäß einer Ausführungsform kann die Anpassung der Verarbeitungs-Ressourcen entsprechend dem Quality-of-Service-Maß, einer Soll-Vorgabe für das Quality-of-Service-Maß und abhängig von einem Aufwand, bspw. Cloud-Kosten, erfolgen, die von einem oder mehreren Ressourcenmaßen, wie beispielsweise eine CPU-Last, einen genutzten Arbeitsspeicher, eine Länge der Message Queues, einer Antwortzeit eines Microservice und eine Kombination aus einem oder mehreren dieser Ressourcenmaße erfolgen.
  • Gemäß einem weiteren Aspekt ist ein Verfahren zum Bereitstellen einer Skalierungsstrategie für eine bestimmte Cloud-Applikation in einem Cloudsystem mit mehreren interagierenden Microservices vorgesehen, mit folgenden Schritten:
    • - Bestimmen einer Laufzeit, einer Prozessorlast und eines Speicherbedarfs der Microservices mit einer Timing-Simulationssoftware;
    • - Bereitstellen von mehreren verschiedenen Nutzungsszenarien, die jeweils für eine Auswertungszeitdauer einen zeitlichen Verlauf von Lastanforderungen an die Cloud-Applikation vorgeben;
    • - Bereitstellen von mehreren verschiedenen Skalierungsstrategien, die, insbesondere jeweils, abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das Kosten der den Microservices bereits zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices zuzuweisende Verarbeitungs-Ressourcen bestimmen;
    • - Durchführen von Lastsimulationen, um für jede der Skalierungsstrategien ein aggregiertes Quality-of-Service-Maß aus den Quality-of-Service-Maßen aller Nutzungsszenarien und ein aggregiertes Ressourcenmaß aus den Ressourcenmaßen aller Nutzungsszenarien zu bestimmen;
    • - Auswählen der Skalierungsstrategie aus den mehreren Skalierungsstrategien abhängig von den entsprechenden aggregierten Quality-of-Service-Maßen und den entsprechenden aggregierten Ressourcenmaßen.
  • Das Auswählen der Skalierungsstrategie aus den mehreren Skalierungsstrategien kann unter Verwendung eines oder mehrerer vorgegebener oder vorgebbarer Kriterien, bspw. Schwellenwerte für die entsprechenden aggregierten Quality-of-Service-Maße und den entsprechenden aggregierten Ressourcenmaßen erfolgen. Bspw. kann eine Skalierungsstrategie ausgewählt werden, für welche das entsprechende aggregierte Quality-of-Service-Maß einen ersten Schwellenwert überschreitet und für welche das entsprechende aggregierte Ressourcenmaß einen zweiten Schwellenwert unterschreitet.
  • Das obige Verfahren sieht entsprechend eine Möglichkeit vor, den Skalierer für eine Cloud-Applikation in geeigneter Weise auszulegen. Dazu kann die verteilte Software-Applikation mit einer Timing-Simulationssoftware modelliert werden, um für die enthaltenen Microservices die Laufzeit und den Speicherbedarf zu ermitteln. Basierend auf einer Mehrzahl vorgegebener unterschiedlicher Nutzungsszenarien, die sich beispielsweise durch zeitliche Verläufe der Nutzung bzw. der Last, insbesondere in Form der Anzahl der Nutzer, der angeforderten Aufgaben und dergleichen, unterscheiden können, werden Lastsimulationen durchgeführt, um ein voraussichtliches Quality-of-Service-Maß zu bestimmen. Die Lastsimulationen werden basierend auf verschiedenen Skalierungsstrategien, die sich durch unterschiedliche Strategien zur Zuordnung von Ressourcen zu den einzelnen Microservices abhängig von einem Belastungszustand durch die Nutzungsszenarien auszeichnen, vorgenommen, so dass sich jeweils ein Quality-of-Service-Maß und der Ressourcenaufwand für jede Kombination aus verschiedenen Skalierungsstrategien und verschiedenen Nutzungsszenarien ergibt. Die Lastsimulationen dienen dazu, das Quality-of-Service-Maß und den Aufwand der Zuordnung der Verarbeitungs-Ressourcen zu ermitteln, um eine geeignete Auswahl einer der Skalierungsstrategien anhand der sich daraus ergebenden Pareto-Front vornehmen zu können. Dies ermöglicht eine Auswahl einer optimierten Skalierungsstrategie für eine verteilte Applikation.
  • Es kann vorgesehen sein, dass das aggregierte Quality-of-Service-Maß einem Mittelwert oder einem Maximalwert der Quality-of-Service-Maße für die Auswertungszeitdauer und/oder wobei das aggregierte Ressourcenmaß einem Mittelwert oder einem Maximalwert der Ressourcenmaße für die Auswertungszeitdauer entsprechen.
  • Weiterhin kann das Ressourcenmaß einen Ressourcenaufwand, insbesondere Ressourcenkosten, angeben, insbesondere abhängig von einer Anzahl der benötigten Cores, Virtual Machines und/oder Prozessoren, einer Netzwerkbandbreite und/oder eines Bedarfs an Arbeitsspeicher.
  • Figurenliste
  • Ausführungsformen werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
    • 1 eine schematische Darstellung einer aus Microservices gebildeten Cloud-Applikation;
    • 2 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zum Betreiben eines Skalierers für die Cloud-Applikation der 1; und
    • 3 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zum Auswählen einer Skalierungsstrategie für den für eine bestimmte Cloud-Applikation eingesetzten Skalierer.
  • Beschreibung von Ausführungsformen
  • 1 zeigt schematisch den Aufbau einer Cloud-Applikation in einem Cloud-System 1 als verteilte Applikation mit einer Vielzahl von Microservices 2. Das Cloud-System stellt eine Rechenumgebung zur Verarbeitung und Ausführung der Microservices 2 dar. Die Microservices 2 können in unterschiedlichen Programmiersprachen entwickelt sein und in unterschiedlichen Plattformen des Cloud-Systems 1 betrieben werden, wie beispielsweise VM, Azure, AWS, On-Premise-Clouds und dergleichen.
  • Die Microservices 2 sind über Kommunikationsschnittstellen 3 miteinander verbunden. Auch können eine oder mehrere Datenbanken 4 vorgesehen sein, die mit einer oder mehreren Microservices 2 über eine entsprechende Kommunikationsschnittstelle 3 verbunden sind. denen eine oder mehrere der Microservices 2 kommuniziert.
  • Die Kommunikationsschnittstellen 3 können beispielsweise in Form eines REST-Interface, ausgebildet sein und dient dazu, eine Kommunikation eines jeweiligen Microservice 2 mit einer Datenbank 4 oder anderen Microservices 2 durchzuführen. Weiterhin kann die Cloud-Applikation über eine netzwerkzugreifbare Benutzerschnittstelle 5, die ebenfalls als Microservice ausgebildet sein kann, durch eine Vielzahl von Nutzern genutzt werden.
  • Die Kommunikation kann entweder per HTTP-Request oder über Message Queues erfolgen. Eine Message Queue ermöglicht eine asynchrone Verarbeitung und arbeitet nach dem FIFO-Prinzip. Dies ermöglicht es, einen kurzfristigen Datenrückstau ohne Beeinträchtigung anderer Systemkomponenten, wie beispielsweise anderen Microservices, zu behandeln, ohne dass es zu Überlastungen anderer Microservices führt.
  • Es ist ein Skalierer 6 vorgesehen, der entsprechend einer vorgegebenen Skalierungsstrategie jedem Microservice 2 bestimmte Verarbeitungs-Ressourcen vorgibt, bspw. in Form einer Anzahl von Cores und/oder Prozessorleistung und dergleichen, und diese ändern kann. Zudem kann der Skalierer 6 auch Microservices 2 vervielfältigen und diese als separate Microservices 2 parallel betreiben, wobei entsprechende Aufgaben den gleichartigen Microservices 2 parallel zur Lastaufteilung zugeordnet werden können.
  • Anhand des Flussdiagramms der 2 wird nun das Verfahren zum Betreiben des Skalierers 6, insbesondere in dem Cloud-System 1, näher beschrieben. Die vorgeschlagene Skalierungsstrategie entspricht hier einer „Zweipunktregelung“, durch die die Verarbeitungsressourcen zugeordnet werden.
  • In Schritt S1 wird der Skalierer 6 entsprechend einer vorgegebenen Zuordnung von Verarbeitungs-Ressourcen betrieben und kontinuierlich ein Quality-of-Service-Maß erfasst.
  • Das Quality-of-Service-Maß stellt ein Maß dar, das eine Performance, wie z.B. eine Benutzungsfreundlichkeit der Cloud-Applikation angibt, wie beispielsweise eine durchschnittliche Antwortzeit einer Website, mit der Informationen durch das Microservice-Backend in der Cloud-Applikation ermittelt und bereitgestellt werden, über die Gesamtzahl der Nutzer und/oder über einen vorbestimmten Auswertungszeitraum. Weitere Möglichkeiten das Quality-of-Service-Maß auf andere Weise oder in Kombination mit der Antwortzeit zu bewerten, besteht darin, das Maß der Vollständigkeit der an den Benutzer übermittelten Information zu bewerten.
  • Zur Bestimmung des Quality-of-Service-Maß können weiterhin auch Systemzustände, wie beispielsweise die Füllzustände der Message Queues und dergleichen, in dem Quality-of-Service-Maß berücksichtigt werden. Darüber hinaus kann das Quality-of-Service-Maß auch indirekt abhängig von Hardware-Zuständen CPU-Last, Speicherauslastung oder eine Kombination beider Hardware-Zustände für jeden Microservice und/oder Systemzustände einer oder mehrerer Datenbanken wie z.B. Schreib- und Lese-Rate bestimmt werden. Die Hardware-Zustände und Systemzustände haben den Vorteil, dass sie im Vergleich zu z.B. Antwortzeiten je Benutzer sehr einfach zu erfassen sind. Das Quality-of-Service-Maß quantifiziert dabei die gesamte Performance des Cloud-Systems 1 während der Auswertungszeitdauer.
  • In Schritt S2 wird überprüft, ob das Quality-of-Service-Maß ein vorbestimmtes erstes QoS-Kriterium erfüllt. Wird das Quality-of-Service-Maß quantitativ angegeben, kann dies beispielsweise mithilfe eines Schwellenwertvergleichs mit einem QoS-Schwellenwert als erstes QoS-Kriterium erfolgen. Bei Unterschreiten des QoS-Schwellenwerts, das einen sinkenden Quality of Service angibt, (Alternative: Nein) erfüllt das Quality-of-Service-Maß das vorgegebene erste QoS-Kriterium nicht und das Verfahren mit Schritt S3 fortgesetzt, anderenfalls (Alternative: Ja) wird das Verfahren mit Schritt S4 fortgesetzt.
  • In Schritt S3 werden zusätzliche Verarbeitungs-Ressourcen der Cloud-Applikation zugewiesen. Die Ressourcen-Zuweisung der zusätzlichen Verarbeitungs-Ressourcen, z.B. die Anzahl gebuchter Rechenknoten beim Cloud Anbieter (scale out Verfahren), oder die zugewiesene CPU-Leistung und/oder Arbeitsspeicher je Rechenknoten (scale up Verfahren) kann für einen, mehrere oder alle Microservices erfolgen und insbesondere abhängen von der durch sie verursachten CPU-Last, den von ihnen jeweils benötigten Arbeitsspeicher oder den Füllzustand der mit ihnen verbundenen Message Queues oder Kombinationen aus mehreren dieser Angaben erfolgen. Die Bestimmung der CPU-Last, der von den Microservices jeweils benötigten Arbeitsspeicher oder den Füllzustand der mit ihnen verbundenen Message Queues erfolgt über das Cloud Betriebssystem, wie z.B. K8S. Je Container (kleinste Einheit eines Microservice) wird CPU und RAM Auslastung erfasst. Anschließend wird das Verfahren mit Schritt S1 fortgesetzt.
  • In Schritt S4 wird überprüft, ob das Quality-of-Service-Maß ein vorbestimmtes zweites QoS-Kriterium erfüllt. Wird das Quality-of-Service-Maß quantitativ angegeben, kann dies beispielsweise mithilfe eines weiteren Schwellenwertvergleichs mit einem weiteren QoS-Schwellenwert als zweites QoS-Kriterium erfolgen. Bei Überschreiten des weiteren QoS-Schwellenwerts, das einen steigenden Quality of Service angibt, (Alternative: Nein) erfüllt das Quality-of-Service-Maß das vorgegebene zweite QoS-Kriterium nicht und das Verfahren wird mit Schritt S1 fortgesetzt, anderenfalls (Alternative: Ja) wird das Verfahren mit Schritt S5 fortgesetzt.
  • In Schritt S5 werden Zuweisungen von Verarbeitungs-Ressourcen von der Cloud-Applikation gelöscht. Die Ressourcen-Zuweisung der zu entfernenden Verarbeitungs-Ressourcen, z.B. die Anzahl gebuchter Rechenknoten beim Cloud Anbieter (scale out Verfahren), oder die zugewiesene CPU-Leistung und/oder Arbeitsspeicher je Rechenknoten (scale up Verfahren) kann für einen, mehrere oder alle Microservices erfolgen und insbesondere abhängen von der durch sie verursachten CPU-Last, den von ihnen jeweils benötigten Arbeitsspeicher oder den Füllzustand der mit ihnen verbundenen Message Queues oder Kombinationen aus mehreren dieser Angaben erfolgen.
  • Die obige Skalierungsstrategie entspricht einem Zweipunktskalierer, der in Form einer Zweipunktregelung arbeitet. Alternativ können auch Proportionalskalierer oder dergleichen vorgesehen sein, die die Ressourcen-Zuweisung direkt abhängig von dem Quality-of-Service-Maß bestimmt und zuweist.
  • 3 zeigt ein Verfahren zum Ermitteln einer geeigneten Skalierungsstrategie, mit der der Skalierer 6 betrieben werden kann.
  • In Schritt S11 wird dazu mithilfe einer Timing-Simulationssoftware die verteilte Applikation analysiert und die Microservices mit jeweiligen Werten für Laufzeiten, Verarbeitungslasten und Speicherbedarf parametrisiert.
  • Weiterhin werden in Schritt S12 verschiedene Skalierungsstrategien, die, insbesondere jeweils, eine Zuordnung von Verarbeitungs-Ressourcen abhängig von einem Quality-of-Service-Maß bestimmen, bereitgestellt oder entworfen.
  • In Schritt S13 werden für verschiedene Belastungssituationen Nutzungsszenarien vorgegeben. Es werden für jedes Lastszenario und für jede Skalierungsstrategie Lastsimulationen durchgeführt und das Quality-of-Service-Maß und das Ressourcenmaß erfasst. Das Quality-of-Service-Maß kann, wie oben beschrieben, abhängig von Nutzungseigenschaften, wie beispielsweise einer maximalen Antwortzeit einer Website, und/oder dem Informationsgehalt der Antwort der Cloud-Applikation angegeben werden. Darüber hinaus können die Zustände CPU-Last, Arbeitsspeicher-Auslastung, oder eine Kombination davon für jeden Microservice für die Bestimmung des Quality-of-Service-Maßes benutzt werden. Weiterhin sind Systemzustände von Datenbanken wie z.B. Schreib- und Lese-Rate Systemzustände, die zur Bestimmung des Quality-of-Service-Maßes geeignet sind. Dabei wird das Quality-of-Service-Maß für einen Auswertungszeitraum bestimmt, der sich an der zeitlichen Länge des Nutzungsszenarios orientiert oder dieser entspricht.
  • Das Ressourcenmaß gibt einen Ressourcenaufwand an, beispielsweise repräsentiert durch eine Anzahl bestellter Rechenknoten beim Cloud Anbieter, oder eine für die Cloud-Applikation reservierte bzw. verfügbare Netzwerkbandbreite. Das Ressourcenmaß kann durch die Anzahl der benötigten Cores, Virtual Machines oder Prozessoren, der Netzwerkbandbreite sowie des Bedarfs an Arbeitsspeicher durch den Cloud Anbieter ermittelt werden.
  • Wie in 4 dargestellt, kann sich nun eine Pareto-Front ergeben, die durch die aggregierten Quality-of-Service-Maße QoS (z.B. über die Nutzungsszenarien gemittelten Quality-of-Service-Maße) und die Ressourcenmaße K (z.B. über die Nutzungsszenarien gemittelten Ressourcenmaße) für die verschiedenen Skalierungsstrategien erfasst.
  • Insbesondere wird das Quality-of-Service-Maß für die verschiedenen N Nutzungsszenarien gemittelt, um die Skalierungsstrategie über verschiedene Belastungen, wie beispielsweise niedrige, mittlere oder hohe Belastung, optimal wählen zu können.
  • In Schritt S14 wird aus der Pareto-Front eine Skalierungsstrategie ausgewählt, die über die betrachteten Skalierungsstrategien einen guten Trade-off zwischen dem Quality-of-Service-Maß und dem Ressourcenmaß angibt. Das Auswählen der Skalierungsstrategie kann unter Verwendung eines oder mehrerer vorgegebener oder vorgebbarer Kriterien, bspw. Schwellenwerte für das Quality-of-Service-Maß und das Ressourcenmaß, erfolgen.

Claims (10)

  1. Computer-implementiertes Verfahren zum Betreiben einer Cloud-Applikation in einem Cloudsystem, mit mehreren interagierenden Microservices (2), mit folgenden Schritten: - Zuweisen (S3, S5) von Verarbeitungs-Ressourcen zu den Microservices (2) mithilfe eines Skalierers gemäß einer Skalierungsstrategie; - Betreiben (S1) der Cloud-Applikation gemäß den zugewiesenen Verarbeitungs-Ressourcen; wobei die Skalierungsstrategie abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das einen Aufwand von den Microservices bereits zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices zuzuweisende Verarbeitungs-Ressourcen bestimmt.
  2. Verfahren nach Anspruch 1, wobei die Skalierungsstrategie eine Reglerstruktur für eine Regelung auf ein oder mehrere gewünschte Quality-of-Service-Maße aufweist.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Quality-of-Service-Maß abhängig von einer maximalen oder durchschnittlichen Antwortzeit der Cloud-Applikation und/oder von einem durchschnittlichen Informationsgehalt einer Antwort der Cloud-Applikation abhängt.
  4. Vorrichtung zum Betreiben einer Cloud-Applikation in einem Cloudsystem, mit mehreren interagierenden Microservices (2), wobei die Vorrichtung ausgebildet ist zum: - Zuweisen von Verarbeitungs-Ressourcen zu den Microservices (2) mithilfe eines Skalierers gemäß einer Skalierungsstrategie; - Betreiben der Cloud-Applikation gemäß den zugewiesenen Verarbeitungs-Ressourcen; - wobei die Skalierungsstrategie abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das einen Aufwand der den Microservices bereits zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices zuzuweisende Verarbeitungs-Ressourcen bestimmt.
  5. Computer-implementiertes Verfahren zum Bereitstellen einer Skalierungsstrategie für eine bestimmte Cloud-Applikation in einem Cloudsystem, mit mehreren interagierenden Microservices (2), mit folgenden Schritten: - Bestimmen (S11) einer Laufzeit, einer Prozessorlast und eines Speicherbedarfs der Microservices (2) mit einer Timing-Simulationssoftware; - Bereitstellen (S13) von mehreren verschiedenen Nutzungsszenarien, die jeweils für eine Auswertungszeitdauer einen zeitlichen Verlauf von Lastanforderungen an die Cloud-Applikation vorgeben; - Bereitstellen (S12) von mehreren verschiedenen Skalierungsstrategien, die abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das einen Aufwand der den Microservices bereits zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices (2) zuzuweisende Verarbeitungs-Ressourcen bestimmen; - Durchführen (S13) von Lastsimulationen, um für jede der Skalierungsstrategien ein aggregiertes Quality-of-Service-Maß aus den Quality-of-Service-Maßen aller Nutzungsszenarien und ein aggregiertes Ressourcenmaß aus den Ressourcenmaßen aller Nutzungsszenarien zu bestimmen; - Auswählen (S14) der Skalierungsstrategie aus den mehreren Skalierungsstrategien abhängig von den entsprechenden aggregierten Quality-of-Service-Maßen und den entsprechenden aggregierten Ressourcenmaßen.
  6. Verfahren nach Anspruch 5, wobei das aggregierte Quality-of-Service-Maß einem Mittelwert oder einem Maximalwert der Quality-of-Service-Maße für die Auswertungszeitdauer und/oder wobei das aggregierte Ressourcenmaß einem Mittelwert oder einem Maximalwert der Ressourcenmaße für die Auswertungszeitdauer entsprechen.
  7. Verfahren nach Anspruch 5 oder 6, wobei das Ressourcenmaß einen Ressourcenaufwand angibt, insbesondere abhängig von einer Anzahl der benötigten Cores, Virtual Machines und/oder Prozessoren, der Netzwerkbandbreite und/oder eines Bedarfs an Arbeitsspeicher.
  8. Vorrichtung zum Bereitstellen einer Skalierungsstrategie für eine bestimmte Cloud-Applikation in einem Cloudsystem, mit mehreren interagierenden Microservices (2), wobei die Vorrichtung ausgebildet ist zum: - Bestimmen einer Laufzeit, einer Prozessorlast und eines Speicherbedarfs der Microservices (2) mit einer Timing-Simulationssoftware; - Bereitstellen von mehreren verschiedenen Nutzungsszenarien, die jeweils für eine Auswertungszeitdauer einen zeitlichen Verlauf von Lastanforderungen an die Cloud-Applikation vorgeben; - Bereitstellen von mehreren verschiedenen Skalierungsstrategien, die abhängig von einem Quality-of-Service-Maß, das eine Performance der Cloud-Applikation angibt, und abhängig von einem Ressourcenmaß, das einen Aufwand der zugewiesenen Verarbeitungs-Ressourcen angibt, den Microservices (2) zuzuweisende Verarbeitungs-Ressourcen bestimmt; - Durchführen von Lastsimulationen, um für jede der Skalierungsstrategien ein aggregiertes Quality-of-Service-Maß aus den Quality-of-Service-Maßen aller Nutzungsszenarien und ein aggregiertes Ressourcenmaß aus den Ressourcenmaßen aller Nutzungsszenarien zu bestimmen; - Auswählen der Skalierungsstrategie aus den mehreren Skalierungsstrategien abhängig von den entsprechenden aggregierten Quality-of-Service-Maßen und den entsprechenden aggregierten Ressourcenmaßen.
  9. Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 3, 5 bis 7 auszuführen.
  10. Maschinenlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 3, 5 bis 7 auszuführen.
DE102022201291.7A 2022-02-08 2022-02-08 Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie Pending DE102022201291A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022201291.7A DE102022201291A1 (de) 2022-02-08 2022-02-08 Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie
PCT/EP2023/052458 WO2023152004A1 (de) 2022-02-08 2023-02-01 Verfahren und vorrichtung zum betreiben einer cloud-applikation und zum auswählen einer skalierungstrategie

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022201291.7A DE102022201291A1 (de) 2022-02-08 2022-02-08 Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie

Publications (1)

Publication Number Publication Date
DE102022201291A1 true DE102022201291A1 (de) 2023-08-10

Family

ID=85173008

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022201291.7A Pending DE102022201291A1 (de) 2022-02-08 2022-02-08 Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie

Country Status (2)

Country Link
DE (1) DE102022201291A1 (de)
WO (1) WO2023152004A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118069381A (zh) * 2024-04-25 2024-05-24 江西锦路科技开发有限公司 一种基于资源需求预测容器云混合弹性伸缩方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011079429A1 (de) 2011-07-19 2013-01-24 Siemens Aktiengesellschaft Performancesimulation von medizintechnischen Prozeduren in einer Client-Server-Umgebung
DE112012002941T5 (de) 2011-07-12 2014-04-24 International Business Machines Corp. Anwendungsressourcenverwalter über eine Cloud
DE112012005529T5 (de) 2011-12-30 2014-10-02 International Business Machines Corp. Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung
DE102016204680A1 (de) 2015-03-24 2016-09-29 Barcelona Supercomputing Center-Centro Nacional De Supercomputación Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten
DE102015207570A1 (de) 2015-04-24 2016-10-27 Siemens Aktiengesellschaft Ressourcen-Optimierer für Software-Ökosysteme
DE202016101711U1 (de) 2016-03-31 2017-07-03 Dextradata Gmbh Kapazitätsplanungswerkzeug, insbesondere einer Informationstechnologie-Infrastruktur
DE112017006994T5 (de) 2017-02-05 2019-10-17 Intel Corporation Bereitstellung und verwaltung von microservices
US20200239739A1 (en) 2018-01-02 2020-07-30 Xiamen Zl Diamond Technology Co., Ltd. Sheet adhesive and adhesion method thereof
WO2020172692A2 (en) 2020-04-27 2020-08-27 Futurewei Technologies, Inc. Dynamic resource tuning cloud service

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4022433A1 (de) * 2019-08-26 2022-07-06 Telefonaktiebolaget Lm Ericsson (Publ) Einheit und verfahren darin zur handhabungvon rechnerressourcen

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012002941T5 (de) 2011-07-12 2014-04-24 International Business Machines Corp. Anwendungsressourcenverwalter über eine Cloud
DE102011079429A1 (de) 2011-07-19 2013-01-24 Siemens Aktiengesellschaft Performancesimulation von medizintechnischen Prozeduren in einer Client-Server-Umgebung
DE112012005529T5 (de) 2011-12-30 2014-10-02 International Business Machines Corp. Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung
DE102016204680A1 (de) 2015-03-24 2016-09-29 Barcelona Supercomputing Center-Centro Nacional De Supercomputación Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten
DE102015207570A1 (de) 2015-04-24 2016-10-27 Siemens Aktiengesellschaft Ressourcen-Optimierer für Software-Ökosysteme
DE202016101711U1 (de) 2016-03-31 2017-07-03 Dextradata Gmbh Kapazitätsplanungswerkzeug, insbesondere einer Informationstechnologie-Infrastruktur
DE112017006994T5 (de) 2017-02-05 2019-10-17 Intel Corporation Bereitstellung und verwaltung von microservices
US20200239739A1 (en) 2018-01-02 2020-07-30 Xiamen Zl Diamond Technology Co., Ltd. Sheet adhesive and adhesion method thereof
WO2020172692A2 (en) 2020-04-27 2020-08-27 Futurewei Technologies, Inc. Dynamic resource tuning cloud service

Also Published As

Publication number Publication date
WO2023152004A1 (de) 2023-08-17

Similar Documents

Publication Publication Date Title
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE69822935T2 (de) Vorrichtung und Verfahren zur dynamischen Regelung der Betriebsmittelzuweisung in einem Computersystem
DE60301202T2 (de) Verfahren und vorrichtung zur verkehrssteuerung einer web-farm
DE602004011890T2 (de) Verfahren zur Neuverteilung von Objekten an Recheneinheiten
DE69835121T2 (de) Betriebsmittelsablaufsteuerung
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
EP3125056B1 (de) System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
EP1831786A1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
EP1924913B1 (de) Steuerung eines zugriffs auf dienste und/oder ressourcen eines datenverarbeitungssystems
WO2023152004A1 (de) Verfahren und vorrichtung zum betreiben einer cloud-applikation und zum auswählen einer skalierungstrategie
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE102009056282A1 (de) Technik zum Steuern von Verarbeitungsressourcen
DE69825118T2 (de) Autonome Überlaststeuerung für verteilte Echtzeitsysteme
EP2804134B1 (de) Verfahren und System zur Fuzzy-basierten Regelung einer Zuordnung von Ressourcen in einem System
EP1149338B1 (de) Lastverteilungsverfahren eines multiprozessorsystems und multiprozessorsystem
DE102020214951A1 (de) Verfahren zum dynamischen Zuweisen von Speicherbandbreite
DE102016125020B4 (de) Verfahren zum Betreiben eines Druckservers für digitale Hochleistungsdrucksysteme
DE102016125023B4 (de) Verfahren zum Betreiben eines Druckservers für digitale Hochleistungsdrucksysteme
DE602004011757T2 (de) Datenverarbeitungssystem zur Zuweisung von Objekten an Verarbeitungseinheiten
DE102018219852A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System
EP1047990B1 (de) Vorrichtung und verfahren zur steuerung von prozessen auf einem computersystem
EP1708086A2 (de) Computersystem und Verfahren zur Aufteilung und Zuteilung von Rechenleistung innerhalb eines Computersystems
WO2018141435A1 (de) Verfahren und vorrichtung zum zuweisen von geräteressourcen
EP4064044A1 (de) Dynamische verteilung einer gesamtressource in einer container-laufzeitumgebung

Legal Events

Date Code Title Description
R163 Identified publications notified