DE102021130965A1 - Aufrüsten einer sequenz von mikrodiensten in einer cloud-computing-umgebung - Google Patents

Aufrüsten einer sequenz von mikrodiensten in einer cloud-computing-umgebung Download PDF

Info

Publication number
DE102021130965A1
DE102021130965A1 DE102021130965.4A DE102021130965A DE102021130965A1 DE 102021130965 A1 DE102021130965 A1 DE 102021130965A1 DE 102021130965 A DE102021130965 A DE 102021130965A DE 102021130965 A1 DE102021130965 A1 DE 102021130965A1
Authority
DE
Germany
Prior art keywords
subsequence
microservice
sequence
status
instance
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
DE102021130965.4A
Other languages
English (en)
Inventor
Ying Chun Guo
Jing Jing Wei
Yue Wang
Shao Jun Ding
Jian Nan Guo
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 DE102021130965A1 publication Critical patent/DE102021130965A1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

Die vorliegend vorgestellten Ansätze ermöglichen Hot Upgrading einer Mikrodienstsequenz in einer Cloud-Computing-Umgebung. Genauer gesagt, wird ein nächster Mikrodienst oder eine nächste Mikrodienst-Teilsequenz in einer in Ausführung befindlichen Sequenz in Reaktion auf eine Nachricht zum Aufruf des Mikrodienstes oder der Teilsequenz bezogen. Die in Ausführung befindliche Mikrodienstsequenz enthält mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz, an dem bzw. an der Hot Upgrading durchgeführt werden soll. Die in Ausführung befindliche Mikrodienstsequenz wird auf Grundlage einer durch Hot Upgrading aufzurüstenden Sequenz erstellt, die eine geordnete Liste von Mikrodiensten und/oder Teilsequenzen aufweist. Der Ansatz kann Ermitteln des Status eines nächsten Mikrodienstes oder einer nächsten Teilsequenz umfassen. Der Ansatz kann ferner Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenz in Reaktion darauf umfassen, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz „Upgrade-vollständig“ („upgrade-complete“) lautet.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein Cloud Computing und insbesondere Hot Upgrading (Aufrüsten/Aktualisieren im laufenden Betrieb) einer Sequenz von Mikrodiensten in einer Cloud-Computing-Umgebung.
  • HINTERGRUND
  • Cloud Computing wird von einer Reihe von Unternehmen zum Bereitstellen und Hosten von Softwareanwendungen genutzt. In einer Cloud-Computing-Umgebung können Funktionalitäten von Anwendungen entkoppelt und als Mikrodienste containerisiert oder verpackt sein. Eine Sequenz von Mikrodiensten bietet einen Ansatz zur Definition einer geordneten Liste von Mikrodiensten oder Teilsequenzen von Mikrodiensten. Eine Sequenz kann aufgerufen werden, um eine Datenverarbeitungssoftwarelösung auszuführen.
  • KURZDARSTELLUNG
  • Die vorliegend vorgestellten Ansätze ermöglichen Hot Upgrading einer Mikrodienstsequenz in einer Cloud-Computing-Umgebung. Genauer gesagt, wird ein nächster Mikrodienst oder eine nächste Mikrodienst-Teilsequenz in einer in Ausführung befindlichen Sequenz in Reaktion auf eine Nachricht zum Aufruf des Mikrodienstes oder der Teilsequenz bezogen. Die in Ausführung befindliche Mikrodienstsequenz enthält mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz, an dem bzw. an der Hot Upgrading durchgeführt werden soll. Die in Ausführung befindliche Mikrodienstsequenz wird auf Grundlage einer durch Hot Upgrading aufzurüstenden Sequenz erstellt, die eine geordnete Liste von Mikrodiensten und/oder Teilsequenzen aufweist. Der Ansatz kann Ermitteln des Status eines nächsten Mikrodienstes oder einer nächsten Teilsequenz umfassen. Der Ansatz kann ferner Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenz in Reaktion darauf umfassen, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz „Upgrade-vollständig“ („upgrade-complete“) lautet.
  • Ein Aspekt der vorliegenden Erfindung umfasst ein durch einen Computer implementiertes Verfahren zum Aufrüsten einer Sequenz von Mikrodiensten, umfassend: in Reaktion auf eine Nachricht zum Aufrufen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz durch einen oder mehrere Prozessoren erfolgendes Beziehen des nächsten Mikrodienstes oder der nächsten Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz umfasst, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer durch Hot Upgrading aufzurüstenden Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodiensten oder Teilsequenzen aufweist, durch den einen oder die mehreren Prozessoren erfolgendes Ermitteln eines Status des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz, und in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet, durch den einen oder die mehreren Prozessoren erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
  • Ein weiterer Aspekt der vorliegenden Erfindung umfasst ein Computersystem zum Aufrüsten einer Sequenz von Mikrodiensten, das Folgendes aufweist: eine Verarbeitungseinheit und einen Speicher, der mit der Verarbeitungseinheit verbunden ist und Anweisungen enthält, wobei die Anweisungen bei Ausführung durch die Verarbeitungseinheit Aktionen durchführen, die Folgendes umfassen: in Reaktion auf eine Nachricht zum Aufrufen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz erfolgendes Beziehen des nächsten Mikrodienstes oder der nächsten Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer durch Hot Upgrading aufzurüstenden Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodiensten oder Teilsequenzen aufweist, Ermitteln eines Status des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz, und in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet, erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
  • Ein weiterer Aspekt der vorliegenden Erfindung umfasst ein Computerprogrammprodukt zum Aufrüsten einer Sequenz von Mikrodiensten, das ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, Aktionen auszuführen, die Folgendes umfassen: in Reaktion auf eine Nachricht zum Aufrufen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz erfolgendes Beziehen des nächsten Mikrodienstes oder der nächsten Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer durch Hot Upgrading aufzurüstenden Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodienst-Teilsequenzen umfasst, Ermitteln eines Status des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz, und in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet, erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
  • Dennoch könnte jede der Komponenten der vorliegenden Erfindung von einem Dienstanbieter bereitgestellt, verwaltet, gewartet usw. werden, der die Implementierung von Aufrüstung einer Sequenz von Mikrodiensten in einem Computersystem anbietet.
  • Ausführungsformen der vorliegenden Erfindung stellen zudem zugehörige Systeme, Verfahren und/oder Programmprodukte bereit.
  • Figurenliste
  • Diese und andere Merkmale dieser Erfindung werden aus der nachfolgenden ausführlichen Beschreibung der verschiedenen Aspekte der Erfindung in Verbindung mit den beiliegenden Zeichnungen verständlicher. Es zeigen:
    • 1 einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 2 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 3 Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 4a-4d einen Geschäftsprozess und ein Hot Upgrade desselben gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 5 eine Cloud-Computing-Umgebung zum Verarbeiten einer Mikrodienstsequenz gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 6a-6c Mikrodienstsequenz-Definitionsdateien gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 7 eine Cloud-Computing-Umgebung zum Durchführen eines Hot Upgrade einer Mikrodienstsequenz gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 8a-8c vorgeschlagene Mikrodienstsequenz-Definitionsdateien gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 8d-8f vorgeschlagene Mikrodienstsequenz-Definitionsdateien, an denen Hot Upgrading durchgeführt werden soll, gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 9 ein Verfahren zum Durchführen von Hot Upgrading an einer Mikrodienstsequenz in einer Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Bei den Zeichnungen handelt es sich lediglich um Darstellungen, die nicht dazu dienen, bestimmte Parameter der Erfindung darzustellen. Die Zeichnungen sollen nur typische Ausführungsformen der Erfindung darstellen und sind daher nicht als den Schutzumfang einschränkend zu betrachten. In den Zeichnungen bezeichnen gleiche Bezugszeichen gleiche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Erfindung werden nun unter Bezugnahme auf die beiliegenden Figuren ausführlicher beschrieben.
  • Die nachfolgende Beschreibung unter Bezugnahme auf die beiliegenden Zeichnungen dient dem umfassenden Verständnis beispielhafter Ausführungsformen der Erfindung, wie sie in den Ansprüchen und ihren Entsprechungen definiert sind. Sie enthält verschiedene konkrete Angaben, die zu diesem Verständnis beitragen sollen, jedoch lediglich beispielhaft sind. Dementsprechend versteht ein Fachmann, dass verschiedene Änderungen und Modifikationen der vorliegend beschriebenen Ausführungsformen vorgenommen werden können, ohne vom Umfang und Grundgedanken der Erfindung abzuweichen. Darüber hinaus können Beschreibungen bekannter Funktionen und Konstruktionen aus Gründen der Klarheit und Prägnanz wegfallen.
  • Die in der nachfolgenden Beschreibung und den Ansprüchen verwendeten Bezeichnungen und Wörter sind nicht auf die bibliographischen Bedeutungen beschränkt, sondern werden lediglich verwendet, um ein klares und einheitliches Verständnis der Erfindung zu ermöglichen. Dementsprechend sollte dem Fachmann klar sein, dass die folgende Beschreibung von beispielhaften Ausführungsformen der vorliegenden Erfindung nur zur Veranschaulichung dient und nicht zur Einschränkung der Erfindung, wie sie durch die beiliegenden Ansprüche und deren Äquivalente definiert ist.
  • Es ist zu beachten, dass die Singularformen „ein/e“ und „der/die/das“ den Plural einschließen, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. So schließt beispielsweise ein Verweis auf „eine Komponentenoberfläche“ einen Verweis auf eine oder mehrere solcher Oberflächen ein, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht.
  • Es sei klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, auch wenn diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Offenbarung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung implementiert werden.
  • Cloud-Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • 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 des Dienstes 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). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
  • 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. auf dem Web beruhende E-Mail) 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, das Verarbeiten, 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 eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • 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 Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • In 1 ist ein Blockschaltbild eines Beispiels eines Cloud-Computing-Knotens gezeigt. Bei dem Cloud-Computing-Knoten 10 handelt es sich lediglich um ein Beispiel eines geeigneten Cloud-Computing-Knotens, und dieses soll in keiner Weise eine Eingrenzung bezüglich des Verwendungs- oder Funktionalitätsumfangs von Ausführungsformen der vorliegend beschriebenen Offenbarung andeuten. Unabhängig davon kann der Cloud-Computing-Knoten 10 für jedwede vorstehend angegebene Funktionalität realisiert werden und/oder diese ausführen.
  • Im Cloud-Computing-Knoten 10 befindet sich ein Computersystem/Server 12 oder eine tragbare elektronische Einheit wie beispielsweise eine Datenübertragungseinheit, die mit zahlreichen anderen Allzweck- oder Spezial-Datenverarbeitungssystemumgebungen oder -konfigurationen betrieben werden kann. Zu Beispielen bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die sich für die Verwendung mit dem Computersystem/Server 12 eignen können, zählen, ohne hierauf beschränkt zu sein, Personal-Computer-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, tragbare oder Laptop-Einheiten, Multiprozessorsysteme, Systeme aus Mikroprozessoren, Set-Top-Boxen, programmierbare Consumer-Elektronik, Netzwerk-PCs, Minicomputer-Systeme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die jedwede der vorstehend genannten Systeme oder Einheiten umfassen, und dergleichen.
  • Computersystem/Server 12 kann im allgemeinen Kontext durch ein Computersystem ausführbarer Anweisungen beschrieben werden, beispielsweise Programmmodule, die durch ein Computersystem ausgeführt werden. Allgemein enthalten Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter, die bestimmte Aufgaben erfüllen oder bestimmte abstrakte Datentypen implementieren. Computersystem/Server 12 können in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten ausgeführt werden, die durch ein Kommunikationsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Speichermedien des Computersystems einschließlich Kurzzeit-Speichereinheiten befinden.
  • Wie in 1 gezeigt, wird Computersystem/Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Zu den Komponenten des Computersystems/Servers 12 können, ohne jedoch hierauf eingeschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 zählen, der verschiedene Systemkomponenten einschließlich des Systemspeichers 28 mit der Prozessoreinheit 16 verbindet.
  • Der Bus 18 stellt eine oder mehrere von verschiedenen Arten von Bus-Strukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein Peripherie-Bus, ein AGP-Bus und ein Prozessor- oder lokaler Bus, der jedwede einer Vielfalt von Busarchitekturen verwendet. Als nicht einschränkende Beispiele gehören zu solchen Architekturen der ISA-(Industry-Standard-Architecture-) Bus, der Mikrokanal- (Micro-Channel-Architecture, MCA-) Bus, der EISA- (Enhanced-ISA-) Bus, VESA- (Video-Electronics-Standards-Association-) Localbus und der PCI- (Peripheral-Component-Interconnect-) Bus.
  • Computersystem/Server 12 umfasst üblicherweise eine Vielfalt durch ein Computersystem lesbarer Medien. Bei solchen Medien kann es sich um jedwedes verfügbare Medium handeln, auf das von dem Computersystem/Server 12 zugegriffen werden kann, und dazu zählen sowohl flüchtige als auch nichtflüchtige Medien, entfernbare sowie nicht entfernbare Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie beispielsweise Arbeitsspeicher (RAM) 30 und/oder Cache 32 umfassen. Computersystem/Server 12 kann ferner weitere auswechselbare/nichtauswechselbare, flüchtige/nichtflüchtige Speichermedien des Computersystems umfassen. Lediglich beispielhaft kann das Speichersystem 34 zum Lesen von einem sowie Schreiben auf ein nicht entfernbares nichtflüchtiges magnetisches Medium (nicht gezeigt und üblicherweise als „Festplattenspeicher“ bezeichnet) bereitgestellt sein. Auch wenn dies nicht gezeigt ist, können ein Magnetplattenlaufwerk zum Lesen von einer und Schreiben auf eine auswechselbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy Disk“) und ein optisches Plattenlaufwerk zum Lesen von einer oder Schreiben auf eine auswechselbare, nichtflüchtige optische Platte wie beispielsweise einen CD-ROM, DVD-ROM oder andere optische Medien bereitgestellt sein. In solchen Fällen kann jedes der Genannten über eine oder mehrere Daten-Medien-Schnittstellen mit dem Bus 18 verbunden sein. Wie nachstehend weiter dargestellt und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt mit einer Gruppe (z.B. mindestens einem) von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Offenbarung ausführen.
  • Als nicht einschränkendes Beispiel können in dem Speicher 28 ein Programm/Dienstprogramm 40 mit einer Gruppe (mindestens einem) von Programmmodulen 42 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten gespeichert sein. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination aus diesen können jeweils eine Implementierung einer Netzwerkumgebung enthalten. Allgemein führen die Programmmodule 42 die Funktionen und/oder Methodiken aus Ausführungsformen der Offenbarung wie vorliegend beschrieben aus.
  • Computersystem/Server 12 kann zudem mit einer oder mehreren externen Einheiten 14 wie beispielsweise einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., einer oder mehreren Einheiten, die einem Nutzer eine Interaktion mit dem Computersystem/Server 12 ermöglichen, und/oder jedweden Einheiten (z.B. Netzwerkkarte, Modem usw.) in Datenaustausch stehen, die dem Computersystem/Server 12 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Ein solcher Datenaustausch kann über Ein/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Dennoch kann Computersystem/Server 12 über einen Netzwerkadapter 20 in Datenaustausch mit einem oder mehreren Netzwerken wie beispielsweise einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) stehen. Wie dargestellt, tauscht der Netzwerkadapter 20 über den Bus 18 Daten mit den anderen Komponenten des Computersystems/Servers 12 aus. Es sei angemerkt, dass, auch wenn dies nicht gezeigt ist, andere Hardware- und/oder Software-Komponenten zusammen mit dem Computersystem/Server 12 verwendet werden könnten. Zu Beispielen zählen, ohne auf diese beschränkt zu sein: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • In 2 ist veranschaulichend eine Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • 3 zeigt eine Gruppe von durch die Cloud-Computing-Umgebung 50 (2) bereitgestellten funktionellen Abstraktionsschichten. Es sei vorab angemerkt, dass die in 3 gezeigten Komponenten, Schichten und Funktionen als lediglich veranschaulichend zu verstehen sind und Ausführungsformen der Offenbarung hierauf nicht beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Kunden und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Workload-Schicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Workloads und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Hot Upgrading von Sequenzen 96.
  • Wie bereits erwähnt, kann eine Sequenz zur Verarbeitung eines Geschäftsprozesses in Lösungen verwendet werden, da sie eine Möglichkeit bietet, eine geordnete Liste von Mikrodiensten und/oder Teilsequenzen zu definieren, die aufgerufen werden können, z.B. Knative Eventing auf Kubernetes usw. In bestehenden Cloud-Computing-Umgebungen können Mikrodienste durch Hot Upgrading aufgerüstet werden, wodurch eine Sequenz, die die Mikrodienste aufweist, ebenfalls durch Hot Upgrading aufgerüstet wird. Die derzeitige Sequenzverarbeitungseinheit in den bestehenden Cloud-Computing-Umgebungen kann jedoch die Funktion eines Hot Upgrade einer Sequenz nicht unterstützen.
  • 4a zeigt einen bestehenden beispielhaften Geschäftsprozess 400A, der eine Sequenz Hypothek (Version 1.0, im Folgenden mit V1 abgekürzt) 401 aufweist. Die Sequenz Hypothek (V1) 401 definiert drei geordnete Mikrodienste/Teilsequenzen, nämlich einen Mikrodienst Anfrage (V1) 4011, einen Mikrodienst Verifizierung (V1) 4012 und eine Teilsequenz Unterzeichnung (V1) 4013. Die Teilsequenz Unterzeichnung (V1) 4013 definiert ebenfalls drei geordnete Mikrodienste, nämlich einen Mikrodienst 1. Genehmigung (V1) 40131, einen Mikrodienst 2. Genehmigung (V1) 40132 und einen Mikrodienst Endgültige Genehmigung (V1) 40133. 4c zeigt einen mit Hot Upgrading aufgerüsteten Prozess 400C des Geschäftsprozesses 400A. Wie in 4c gezeigt, kann der Geschäftsprozess 400A zu Prozess 400C wechseln, wenn der Mikrodienst Verifizierung (V1) 4012 und der Mikrodienst 1. Genehmigung (V1) 40131 durch Hot Upgrading auf den Mikrodienst Verifizierung (V2) 4022 und den Mikrodienst 1. Genehmigung (V2) 40231 aufgerüstet wurden, wobei die Sequenz Hypothek (V1) 401 und die Teilsequenz Unterschrift (V1) 4013 durch Hot Upgrading auf die Sequenz Hypothek (V2) 402 bzw. die Teilsequenz Unterschrift (V2) 4023 aufgerüstet werden sollten.
  • Wie bereits angedeutet, können die derzeitigen Cloud-Computing-Umgebungen die Funktion eines Hot Upgrade einer Sequenz nicht unterstützen. Mit anderen Worten: Wenn an einer Sequenz in den aktuellen Cloud-Computing-Umgebungen zwangsweise Hot Upgrading durchgeführt wird, geht die Instanz der Sequenz schief. Die Sequenz Hypothek (V1) 401 und die Teilsequenz Unterzeichnung (V1) 4013 müssen gestoppt werden, damit ein Hot Upgrade auf die Sequenz Hypothek (V2) 402 und die Teilsequenz Unterzeichnung (V2) 4023 erfolgen kann. 4b zeigt einen Hot-Upgrading-Prozess 400B des Geschäftsprozesses 400A. Wenn die Sequenz Unterzeichnung (V1) 4013 nicht gestoppt wird, können, wie in 4b gezeigt, alle in Ausführung befindlichen Sequenzinstanzen während des durch den Geschäftsprozess 400B angezeigten Hot Upgrade auf einen Fehler 409 stoßen.
  • Wie in 4d gezeigt, wird ein Prozess 400 verwendet, um den obigen Geschäftsprozess 400A/400B/400C zu abstrahieren, eine Sequenz X 403 und eine Teilsequenz Y 4033 werden verwendet, um die obige Sequenz Hypothek bzw. die Teilsequenz Unterzeichnung darzustellen, und die Mikrodienste A, B, D, E, F werden verwendet, um die obigen Mikrodienste Anfrage, Verifizierung, 1. Genehmigung, 2. Genehmigung bzw. endgültige Genehmigung darzustellen. Der Prozess 400 wird zur Veranschaulichung der vorliegenden Erfindung als Beispiel verwendet.
  • 5 zeigt ein Blockschaubild einer existierenden beispielhaften Cloud-Computing-Umgebung 500 zum Verarbeiten einer Sequenz, wobei die Cloud-Computing-Umgebung 500 einen Cloud-Master 501, eine Ereignisverarbeitungseinheit 502 und eine Mehrzahl bereitgestellter Mikrodienste wie einen Mikrodienst A 5031, einen Mikrodienst B 5032, einen Mikrodienst D 5033, einen Mikrodienst E 5034 und einen Mikrodienst F 5035 aufweist, die jeweils die Mikrodienste A, B, D, E, F des in 4 gezeigten obigen Prozesses 400 darstellen. Der Cloud-Master 501 weist einen Steuereinheitenmanager 5011 und einen Datenspeicher 5012 auf. Die Ereignisverarbeitungseinheit 702 weist einen Empfänger 5021, einen Dispatcher 5022 und eine Steuereinheit 5023 auf.
  • Ein Benutzer 505 kann den Prozess 400 als Sequenz X 403 in einer Definitionsdatei bearbeiten und eine Anfrage an die Cloud-Computing-Umgebung 500 senden, um die Definitionsdatei in den Datenspeicher 5012 einzugeben. 6a zeigt eine beispielhafte Definition der Sequenz X 403, die den Mikrodienst A 5031, den Mikrodienst B 5032 und die Teilsequenz Y 4033 aufweist. 6b zeigt eine beispielhafte Definition der Teilsequenz Y 4033, die den Mikrodienst D 5033, den Mikrodienst E 5034 und den Mikrodienst F 5035 aufweist. 6c zeigt eine beispielhafte Definition von Mikrodiensten, wobei der Kürze halber nur zwei Mikrodienste gezeigt sind. Die drei in 6a, 6b und 6c dargestellten Definitionen bilden zusammen die beispielhafte Definitionsdatei der Sequenz X 403. Ein Fachmann versteht, dass die in den , und gezeigte beispielhafte Definitionsdatei der Sequenz X 403 nur zur Veranschaulichung dient, ohne dass damit eine Einschränkung verbunden ist; alternativ können auch andere Datenstruktur- oder Dateitypen verwendet werden.
  • Bei Empfangen der Anfrage zur Eingabe der Definitionsdatei in den Datenspeicher 5012 kann der Steuereinheitenmanager 5011 der Steuereinheit 5023 mitteilen, die Definitionsdatei der Sequenz X 403 in den Datenspeicher 5012 einzugeben. Die Steuereinheit 5023 kann dann die Definitionsdatei der Sequenz X 403 parsen und vom Datenspeicher 5012 benötigte Datenstruktur verwenden, um Informationen, die der Definitionsdatei der Sequenz X 403 entsprechen, in den Datenspeicher 5012 einzugeben, der alle von der Cloud-Computing-Umgebung 500 verarbeiteten Daten speichert. Tabelle 1 zeigt Informationen der beispielhaften Definitionsdatei der Sequenz X 403, die eine geordnete Liste einer Mehrzahl von Mikrodiensten und/oder Teilsequenzen aufweist, die eine vom Datenspeicher 5012 benötigte Tabellenstruktur verwenden. Die in Tabelle 1 dargestellte Datenstruktur dient nur der Veranschaulichung und stellt keine Einschränkung dar; es können auch andere Datenstrukturen verwendet werden. Tabelle 1
    Name der Sequenz Dienst Nächster Dienst
    X A B
    B Y
    Y
    Y D E
    E F
    F
  • Nach Eingeben der Informationen der Definitionsdatei der Sequenz X 403 402 in den Datenspeicher 5012 kann die Steuereinheit 5023 eine Sequenzinstanz auf Grundlage der Definitionsdatei der Sequenz X 403 erzeugen, wenn eine Anfrage zum Aufrufen der Sequenz X 403 empfangen wird. Dann können der Empfänger und der Dispatcher jeden Mikrodienst oder jede Teilsequenz gemäß der Sequenzdefinition gemeinsam aufrufen, um die Sequenzinstanz auszuführen. Beispielsweise kann der Empfänger 5021 für eine Sequenzinstanz eine Nachricht empfangen, die eine Ausgabe eines ursprünglichen Mikrodienstes und eine Eingabe eines nächsten Mikrodienstes ist, und den nächsten Mikrodienst oder die nächste Teilsequenz aus der Sequenzdefinition beziehen und den Dispatcher 5022 aktivieren, indem eine Nachricht an den Dispatcher 5022 gesendet wird, um den nächsten Mikrodienst oder die nächste Teilsequenz aufzurufen.
  • Es kann festgestellt werden, dass die bestehende Cloud-Computing-Umgebung 500 ein Hot Upgrade der Sequenz nicht unterstützen kann.
  • 7 zeigt ein Blockschaubild einer vorgeschlagenen beispielhaften Cloud-Computing-Umgebung 700 für ein Hot Upgrade einer Sequenz gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es wird darauf hingewiesen, dass gleiche und entsprechende Komponenten sowohl in 5 als auch in 7 durch gleiche Bezugszeichen bezeichnet werden, und dass sowohl in 5 als auch in 7 zwei Komponenten mit demselben Komponentennamen, aber unterschiedlichen Bezugszeichen dieselbe Komponente darstellen, die Komponente in 7 jedoch gegenüber der Komponente in 5 verbessert ist. Wie in 7 gezeigt, kann die vorgeschlagene beispielhafte Cloud-Computing-Umgebung 700 einen Cloud-Master 501, eine Ereignisverarbeitungseinheit 702 und eine Mehrzahl bereitgestellter Mikrodienste aufweisen, wie beispielsweise, wie auch in 5 gezeigt, den Mikrodienst A 5031, den Mikrodienst B 5032, den Mikrodienst D 5033, den Mikrodienst E 5034 und einen Mikrodienst F 5035 für den vorstehend genannten Prozess 400. Der Cloud-Master 501 weist den Steuereinheitenmanager 5011 und den Datenspeicher 5012 auf, wie auch in 5 dargestellt. Die Ereignisverarbeitungseinheit 702 weist den Empfänger 5021, einen Dispatcher 7022 und eine Steuereinheit 7023 auf. Der Dispatcher 7022 weist einen Instanzmanager 70221, einen Versionsmanager 70222 und einen Prüfer 70223 auf. Die vorgeschlagene Cloud-Computing-Umgebung 700 kann ein Hot Upgrade einer Sequenz unterstützen, Einzelheiten hierzu werden im Folgenden am Beispiel der Sequenz X 403 aus 4c beschrieben. Gleiche Komponenten in 5 und 7 haben die gleiche Funktion. Wie dem Fachmann bekannt ist, sind die Komponenten in 7 über ein Datenübertragungsnetz miteinander verbunden.
  • Das Datenübertragungsnetz in 7 kann verschiedene Arten von Datenübertragungsnetzen umfassen, beispielsweise ein Weitverkehrsnetz (WAN), ein lokales Netz (LAN), ein Telekommunikationsnetz, ein drahtloses Netz, ein öffentliches Wählnetz und/oder ein Satellitennetz. Das Datenübertragungsnetz kann Verbindungen wie beispielsweise drahtgebundene oder drahtlose Datenübertragungsverbindungen oder Lichtleiterkabel aufweisen.
  • Bei jeder Komponente in der Cloud-Computing-Umgebung 700 kann es sich beispielsweise um eine mobile Einheit, ein Telefon, einen persönlichen digitalen Assistenten, ein Netbook, einen Laptop-Computer, einen Tablet-Computer, einen Desktop-Computer oder eine beliebige Art von Datenverarbeitungseinheit handeln, die in der Lage sind, ein Programm auszuführen und auf ein Netzwerk zuzugreifen. Die Cloud-Computing-Umgebung 700 kann in einem Cloud-Computing-Dienstmodell betrieben werden, wie beispielsweise Software as a Service (SaaS), Platform as a Service (PaaS) oder Infrastructure as a Service (laaS). Die Cloud-Computing-Umgebung 700 kann sich auch in einem Cloud-Computing-Bereitstellungsmodell befinden, beispielsweise in einer Private Cloud, Community Cloud, Public Cloud oder Hybrid Cloud.
  • Ein Benutzer 505 kann die Sequenz X 403 in einer Definitionsdatei bearbeiten, die sowohl die Sequenzversion als auch die Mikrodienstversion unterstützt, und kann die Cloud-Computing-Umgebung 700 auffordern, die Definitionsdatei in den Datenspeicher 5012 einzugeben. 8a zeigt eine vorgeschlagene beispielhafte Definition der Sequenz X 403 gemäß einigen Ausführungsformen der vorliegenden Offenbarung, die sowohl die Sequenzversion als auch die Mikrodienstversion unterstützt (durch die unterstrichenen Wörter gekennzeichnet) und den Mikrodienst A (V1), den Mikrodienst B (V1) und die Teilsequenz Y (V1) aufweist. 8b zeigt eine vorgeschlagene beispielhafte Definition von Teilsequenz Y gemäß einigen Ausführungsformen der vorliegenden Offenbarung, die sowohl die Sequenzversion als auch die Mikrodienstversion unterstützt (durch die unterstrichenen Wörter gekennzeichnet) und den Mikrodienst D (V1), den Mikrodienst E (V1) und den Mikrodienst F (V1) aufweist. 8c zeigt eine vorgeschlagene beispielhafte Definition von Mikrodiensten, die eine Mikrodienst-Version unterstützen (durch die unterstrichenen Wörter gekennzeichnet), wobei der Kürze halber nur der Mikrodienst B und der Mikrodienst D als Beispiele dargestellt sind. Die drei in 8a, 8b und 8c gezeigten Definitionen bilden zusammen die verbesserte Definitionsdatei der Sequenz X 403. Ein Fachmann versteht, dass in den 8a, 8b und 8c nur eine beispielhafte Definitionsdatei der Sequenz X 403 gezeigt wird, ohne dass damit eine Einschränkung angedeutet werden soll; alternativ können auch andere Datenstruktur- oder Dateitypen verwendet werden.
  • Bei Empfangen der Anfrage zur Eingabe der Definitionsdatei in den Datenspeicher 5012 kann der Steuereinheitenmanager 5011 der Steuereinheit 7023 mitteilen, die verbesserte Definitionsdatei der Sequenz X 403 in den Datenspeicher 5012 einzugeben. Die Steuereinheit 7023 kann die verbesserte Definitionsdatei der Sequenz X 403 parsen und vom Datenspeicher 5012 benötigte Datenstruktur verwenden, um Informationen, die der Definitionsdatei der Sequenz X 403 entsprechen, in den Datenspeicher 5012 einzugeben. Tabelle 2 zeigt Informationen der beispielhaften verbesserten Definitionsdatei der Sequenz X 403, die eine vom Datenspeicher 5012 benötigte Tabellenstruktur verwenden. Im Vergleich zu den in 5 gezeigten Informationen sind sowohl die Sequenzversion als auch die Mikrodienstversion in der verbesserten Definitionsdatei der Sequenz X 403 enthalten. Die in Tabelle 2 dargestellte Datenstruktur dient nur der Veranschaulichung und stellt keine Einschränkung dar; es können auch andere Datenstrukturen verwendet werden. Tabelle 2
    Name der Sequenz Sequenzversion Dienst Dienstversion Nächster Dienst
    X V1 A V1 B
    B V1 Y
    Y V1
    Y V1 D V1 E
    E V1 F
    F V1
  • Nach Eingeben der Informationen der verbesserten Definitionsdatei der Sequenz X 403 in den Datenspeicher 5012 kann die Steuereinheit 7023 eine Sequenzinstanz auf Grundlage der verbesserten Definitionsdatei der Sequenz X 403 erzeugen, wenn eine Anfrage zum Aufrufen der Sequenz X 403 empfangen wird. Dann können der Empfänger und der Dispatcher jeden Mikrodienst oder jede Teilsequenz gemäß der Sequenzdefinition gemeinsam aufrufen, um die Sequenzinstanz auszuführen. Beispielsweise kann der Empfänger 5021 für eine Sequenzinstanz eine Nachricht empfangen, die eine Ausgabe eines ursprünglichen Mikrodienstes und eine Eingabe eines nächsten Mikrodienstes ist, und den nächsten Mikrodienst oder die nächste Teilsequenz aus der Sequenzdefinition beziehen und den Dispatcher 7022 aktivieren, um den nächsten Mikrodienst oder die nächste Teilsequenz aufzurufen.
  • Wenn eine Mehrzahl von Anfragen zum Aufrufen der Sequenz X 403 empfangen werden, kann die Steuereinheit 7023 wahlweise eine Mehrzahl von Sequenzinstanzen erzeugen. Die Informationen der Mehrzahl von Sequenzinstanzen, wie beispielsweise Sequenzinstanz-ID, Sequenzname, aktuell in Ausführung befindlicher Dienst und Status der Sequenzinstanz, können durch den Instanzmanager 70221 bezogen und in den Datenspeicher 5012 eingegeben werden. Tabelle 3 zeigt beispielhaft Informationen der Mehrzahl von Sequenzinstanzen im Datenspeicher 5012. Die in Tabelle 3 dargestellte Datenstruktur dient nur der Veranschaulichung und stellt keine Einschränkung dar; es können auch andere Datenstrukturen verwendet werden. Tabelle 3
    Sequenzinstanz-ID Name der Sequenz Aktuell in Ausführung befindlicher Dienst Status der Sequenzinstanz
    Sequenz_Instanz_1 X Y Stopp
    Sequenz_lnstanz_2 X B in Ausführung
    Sequenz_lnstanz_3 X A in Ausführung
    ...... ...... ...... ......
  • In einigen Fällen kann der Benutzer 505 ein Hot Upgrade der Sequenz X 403 und der Teilsequenz Y 4033 benötigen, bei dem Hot Upgrades von Mikrodienst B 5032 (oder 4032) und Mikrodienst D 5033 (oder 40331) angewendet würden. Somit kann der Benutzer eine aufgerüstete Definitionsdatei bearbeiten, die eine Sequenzversion, eine Mikrodienstversion und eine aufgerüstete Richtlinie sowohl für Mikrodienste als auch für Sequenzen unterstützt, und die Cloud-Computing-Umgebung 700 auffordern, die aufgerüstete Definitionsdatei auszuführen, indem er einen Befehl für Hot-Upgrading einer Sequenz sendet, wie beispielsweise den Befehl „$ kubectl apply -f upgrade.yaml“ für Knative Eventing in Kubernetes, wobei die aufgerüstete Definitionsdatei als upgrade.yaml bezeichnet wird.
  • Es gibt zwei Arten von per Hot Upgrading aufgerüsteten Richtlinien für einen Mikrodienst und eine Teilsequenz, die in einer Sequenz umfasst sind, an der Hot Upgrading durchgeführt werden soll. Eine per Hot Upgrading aufgerüstete Richtlinie für einen Mikrodienst lautet „reserviert“, was bedeutet, dass die Nachricht für den Mikrodienst weiterhin an den Mikrodienst der aktuellen Version gesendet werden sollte, da es keine Versionsaktualisierung gibt. Es lässt sich feststellen, dass an dem in der Sequenz umfassten Mikrodienst mit der Richtlinie „reserviert“ kein Hot Upgrading durchgeführt werden muss. Eine weitere per Hot Upgrading aufgerüstete Richtlinie für einen Mikrodienst lautet „migriert“, was bedeutet, dass die Nachricht für den Mikrodienst an den Mikrodienst einer neuen Version gesendet werden sollte. Es kann festgestellt werden, dass an dem in der Sequenz umfassten Mikrodienst mit der Richtlinie „migriert“ Hot Upgrading durchgeführt werden muss.
  • Darüber hinaus bedeutet eine per Hot Upgrading aufgerüstete Richtlinie „reserviert“ für eine Teilsequenz, dass eine Teilsequenz, die in der aktuellen Version ausgeführt wird, auch weiterhin in der aktuellen Version ausgeführt wird. Es lässt sich feststellen, dass an der in der Sequenz umfassten Teilsequenz mit der Richtlinie „reserviert“ kein Hot Upgrading durchgeführt werden muss. Eine weitere Hot-Upgrade-Richtlinie für eine Teilsequenz ist „migriert“, was bedeutet, dass eine Teilsequenz, die in der aktuellen Version ausgeführt wird, für eine verwandte ausgeführte Sequenzinstanz auf eine neue Version umgestellt werden sollte. Es kann festgestellt werden, dass an der in der Sequenz umfassten Teilsequenz mit der Richtlinie „migriert“ Hot Upgrading durchgeführt werden muss. Es ist zu beachten, dass es sich bei der Richtlinie „reserviert“ um eine erste Art von Richtlinie und bei der Richtlinie „migriert“ um eine zweite Art von Richtlinie handelt, die Wörter „reserviert“ und „migriert“ nur der Veranschaulichung dienen und ein Fachmann auch andere Wörter oder Zahlen verwenden kann, um die beiden Arten von Richtlinien darzustellen.
  • 8d zeigt eine vorgeschlagene beispielhafte Definition von Sequenz X 403, an der gemäß einigen Ausführungsformen der vorliegenden Offenlegung Hot Upgrading durchgeführt werden soll, die die Sequenzversion, die Mikrodienstversion und die per Hot Upgrading aufgerüstete Richtlinie unterstützt (durch die unterstrichenen Wörter gekennzeichnet) und den Mikrodienst A (V1), den Mikrodienst B (V2) und die Teilsequenz Y (V2) umfasst. Es zeigt sich, dass die aufgerüstete Richtlinie für die Sequenz X 403 „migriert“ lautet, da die Sequenz X 403 den Mikrodienst B und die Teilsequenz Y enthält, an denen jeweils Hot Upgrading durchgeführt werden muss. Die aufgerüstete Richtlinie für den Mikrodienst A (V1) lautet „reserviert“, was bedeutet, dass am Mikrodienst A (V1) kein Hot Upgrading durchgeführt werden muss. Hier wird die Richtlinie „reserviert“ in der Definitionsdatei der Sequenz weggelassen. Der Fachmann versteht, dass die Richtlinie „reserviert“ auch in der in 8d gezeigten Beschreibung geschrieben werden kann. Die per Hot Upgrading aufgerüstete Richtlinie für den Mikrodienst B (V2) lautet „migriert“, da der Mikrodienst B per Hot Upgrade von V1 auf V2 aufgerüstet werden muss und anschließend Nachrichten für den Mikrodienst B (V1) an den Mikrodienst B (V2) für später ausgeführte Sequenzen gesendet werden müssen. Die aufgerüstete Richtlinie für die Teilsequenz Y lautet „migriert“, was in 8e näher erläutert wird.
  • 8e zeigt eine beispielhafte Definition von Teilsequenz Y, an der gemäß einigen Ausführungsformen der vorliegenden Offenbarung Hot Upgrading durchgeführt werden muss, die die Sequenzversion, die Mikrodienstversion und die per Hot Upgrading aufgerüstete Richtlinie unterstützt (durch die unterstrichenen Wörter gekennzeichnet) und den Mikrodienst D (V1), den Mikrodienst E (V1) und den Mikrodienst F (V1) aufweist. Es zeigt sich, dass die aufgerüstete Richtlinie für die Teilsequenz Y „migriert“ lautet, da die Teilsequenz Y den Mikrodienst D enthält, an dem Hot Upgrading durchgeführt werden muss. Die aufgerüstete Richtlinie für den Mikrodienst D lautet „migriert“, da der Mikrodienst D per Hot Upgrade von V1 auf V2 aufgerüstet werden muss und anschließend die Nachricht für den Mikrodienst D (V1) an den Mikrodienst D (V2) für später ausgeführte Sequenzen gesendet werden muss. Die aufgerüstete Richtlinie für die beiden Mikrodienste D (V1) und E (V1) lautet „reserviert“, was bedeutet, dass an den beiden Mikrodiensten D (V1) und E (V1) kein Hot Upgrading durchgeführt werden muss. Auch hier wird die Richtlinie „reserviert“ in der Definitionsdatei der Sequenz weggelassen. Der Fachmann versteht, dass die Richtlinie „reserviert“ auch in der in 8e gezeigten Beschreibung geschrieben werden kann. 8f zeigt eine beispielhafte Definition von Mikrodiensten gemäß einigen Ausführungsformen der vorliegenden Offenbarung, die die Mikrodienstversion und die aufgerüstete Richtlinie unterstützt (durch die unterstrichenen Wörter gekennzeichnet). Der Kürze halber werden vorliegend nur der Mikrodienst B und der Mikrodienst D in 8f als Beispiele dargestellt. Die drei in den , und gezeigten Upgrade-Definitionen bilden zusammen die aufgerüstete Definitionsdatei der Sequenz X 403, z.B. die bereits erwähnte Datei upgrade.yaml. Ein Fachmann versteht, dass die 8d, 8e und 8f nur ein Beispiel für eine aufgerüstete Definitionsdatei der Sequenz X zeigen, ohne eine Einschränkung zu implizieren, und dass alternativ auch andere Datenstruktur- oder Dateitypen verwendet werden können. Ein Fachmann versteht, dass die 8d, 8e und 8f, die die Hot-Upgrade-Richtlinie verwenden, in der nachfolgenden Beschreibung eine Implementierung zur Bestimmung eines Status eines nächsten Mikrodienstes oder einer Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz darstellen. Es können auch andere Arten von Definitionen verwendet werden.
  • Wenn der Befehl für Hot Upgrading einer Sequenz in der Cloud-Computing-Umgebung 700 empfangen wird, kann der Steuereinheitenmanager 7011 die Steuereinheit 7023 benachrichtigen, die Hot-Upgrade-Definitionsdatei der Sequenz X 403 einzugeben. Die Steuereinheit 7023 kann die Hot-Upgrade-Definitionsdatei (z.B. die im Befehl enthaltene Datei upgrade.yaml) für die Sequenz X 403 parsen und Informationen der Hot-Upgrade-Definition der Sequenz X 403 in den Datenspeicher 5012 eingeben. Tabelle 4 zeigt beispielhafte Informationen der Hot Upgrade-Definitionsdatei der Sequenz X 403. Im Vergleich zu den in 2 gezeigten Informationen ist festzustellen, dass die Sequenzversion der Teilsequenz Y von V1 auf V2 aufgerüstet werden soll, Versionen für die Mikrodienste B und D von V1 auf V2 aufgerüstet werden sollen und die aufgerüstete Richtlinie für die Teilsequenz Y und die Mikrodienste B und D in Tabelle 4 enthalten ist. Die in Tabelle 4 dargestellte Datenstruktur dient nur der Veranschaulichung und stellt keine Einschränkung dar; es können auch andere Datenstrukturen verwendet werden. Tabelle 4
    Name der Sequenz Sequenzversion Dienst Dienstversion Nächster Dienst Aufgerüstete Richtlinie
    X V1 A V1 B reserviert
    B V1 Y migriert
    Y V1 migriert
    Y V1 D V1 E migriert
    E V1 F reserviert
    F V1 reserviert
  • Nachdem die Steuereinheit 7023 die per Hot Upgrading aufgerüstete Definition der Sequenz X 403 in den Datenspeicher 7012 eingegeben hat, kann der Instanzmanager 70221 mindestens eine in Ausführung befindliche Sequenzinstanz, die mindestens einen nicht ausgeführten Mikrodienst bzw. mindestens eine nicht ausgeführte Teilsequenz umfasst, an dem/der Hot Upgrading durchgeführt werden soll (d.h. der/die mindestens eine nicht ausgeführte Mikrodienst/Teilsequenz mit der per Hot Upgrading aufgerüsteten Richtlinie „migriert“), aus der Mehrzahl der im Datenspeicher 7012 erzeugten Sequenzinstanzen (wie z.B. Tabelle 3) beziehen. Das Abfrageergebnis für Tabelle 3 ist in Tabelle 5 zu sehen, da die nicht ausgeführte Teilsequenz Y in der in Ausführung befindlichen Sequenz_lnstanz_2 die per Hot Upgrading aufgerüstete Richtlinie „migriert“ hat und sowohl der nicht ausgeführte Mikrodienst B als auch die nicht ausgeführte Teilsequenz Y in der in Ausführung befindlichen Sequenz_lnstanz_2 die per Hot Upgrading aufgerüstete Richtlinie „migriert“ haben. Tabelle 5
    Sequenzinstanz-ID Name der Sequenz Aktuell in Ausführung befindlicher Dienst Status
    Sequenz_lnstanz_2 X B in Ausführung
    Sequenz_lnstanz_3 X A in Ausführung
  • In einigen Ausführungsformen kann der Instanzmanager 70221 die mindestens eine in Ausführung befindliche Sequenzinstanz, die nicht ausgeführte Mikrodienste und/oder Teilsequenzen aufweist, an denen Hot Upgrading durchgeführt werden soll (d.h. der/die nicht ausgeführten Mikrodienste und/oder Teilsequenzen mit der per Hot Upgrading aufgerüsteten Richtlinie „migriert“), wie in 5 gezeigt, direkt beziehen, anstatt die Ergebnisse aus der Tabelle 2 im Datenspeicher 5012 abzufragen. Mit anderen Worten: Die Angaben in Tabelle 2 im Datenspeicher 5012 sind optional.
  • In einigen Ausführungsformen kann in Reaktion auf eine Nachricht vom Empfänger 5021, den nächsten Mikrodienst oder die nächste Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz aufzurufen, der Prüfer 70223 ermitteln, ob die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst/eine nicht ausgeführte Teilsequenz enthält, an dem/der Hot Upgrading durchgeführt werden soll. In einigen Ausführungsformen kann die Ermittlung erfolgen, indem geprüft wird, ob die in Ausführung befindliche Sequenzinstanz in Tabelle 5 enthalten ist. In einigen Ausführungsformen kann die Ermittlung durch direktes Verfolgen der Definition der Sequenz erfolgen. Wenn der Prüfer 70223 feststellt, dass die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst/eine nicht ausgeführte Teilsequenz umfasst, an dem/der Hot Upgrading durchgeführt werden soll, kann der Prüfer 70223 den in Ausführung befindlichen Dienst, der gerade aufgerufen wird, beispielsweise aus Tabelle 5 abrufen und dann den nächsten Mikrodienst/die nächste Sequenz aus der Hot-Upgrade-Definition der Sequenz X 403, die die geordnete Liste einer Mehrzahl von Mikrodiensten und/oder Teilsequenzen umfasst, wie in 4 gezeigt, im Datenspeicher 5012 beziehen. Dann kann der Prüfer prüfen, ob der Status des nächsten Mikrodienstes/der nächsten Sequenz „Upgrade-vollständig“ lautet.
  • In einigen Ausführungsformen wird der Status eines Mikrodienstes als „Upgrade-vollständig“ ermittelt, wenn an einem Mikrodienst kein Hot Upgrading durchgeführt werden soll, d.h. wenn die aufgerüstete Richtlinie eines Mikrodienstes „reserviert“ lautet. Das heißt, der Mikrodienst muss nicht aufgerüstet werden und kann fortlaufend aufgerufen werden. Und wenn an einem Mikrodienst Hot Upgrading durchgeführt werden muss, d.h. die aufgerüstete Richtlinie eines Mikrodienstes „migriert“ lautet, und wenn sich eine aktuelle Version des Mikrodienstes von einer erforderlichen Version unterscheidet, wird der Status des Mikrodienstes als „Upgrade-unvollständig“ ermittelt. Wenn die aktuelle Version des Mikrodienstes mit der erforderlichen Version identisch ist, wird der Status des Mikrodienstes als „Upgrade-vollständig“ ermittelt. Das heißt, wenn der Mikrodienst nicht per Hot Upgrading auf die erforderliche Version aufgerüstet wurde, kann er nicht aufgerufen werden (z.B. mit dem Status „Upgrade-unvollständig“), aber wenn er per Hot Upgrading auf die erforderliche Version aktualisiert wurde, kann er direkt aufgerufen werden (z.B. lautet der Status „Upgrade-vollständig“).
  • In einigen Ausführungsformen wird der Status einer Sequenz als „Upgrade-vollständig“ ermittelt, wenn an einer Teilsequenz kein Hot Upgrading durchgeführt werden soll, d.h. wenn die aufgerüstete Richtlinie einer Sequenz „reserviert“ lautet. Das heißt, die Teilsequenzen, die in der Sequenz der aktuellen Version enthalten sind, wurden bereitgestellt und können fortlaufend aufgerufen werden. Und wenn an einer Teilsequenz Hot Upgrading durchgeführt werden muss, d.h. die aufgerüstete Richtlinie einer Sequenz „migriert“ lautet, gibt es zwei Lösungen. Eine Lösung ist: Wenn eine aktuelle Version der Teilsequenz mit einer erforderlichen Version identisch ist, wird der Status des Mikrodienstes oder der Teilsequenz als „Upgrade-vollständig“ ermittelt; wenn sich die aktuelle Version der Teilsequenz von der erforderlichen Version unterscheidet, wird der Status der Teilsequenz als „Upgrade-unvollständig“ ermittelt. Das heißt, jeder Status aller Mikrodienste, die in der Teilsequenz enthalten sind, trägt zum Status der Teilsequenz bei. Eine andere Lösung ist: Wenn eine aktuelle Version der Teilsequenz mit einer erforderlichen Version identisch ist, wird der Status der Teilsequenz als „Upgrade-vollständig“ ermittelt; wenn die aktuelle Version der Teilsequenz sich von der erforderlichen Version unterscheidet und eine aktuelle Version eines ersten Mikrodienstes in der Teilsequenz mit einer erforderlichen Version identisch ist, wird der Status der Teilsequenz als „Upgrade-vollständig“ bestimmt; und wenn die aktuelle Version der Teilsequenz sich von der erforderlichen Version unterscheidet und die aktuelle Version eines ersten Mikrodienstes in der Teilsequenz sich von der erforderlichen Version unterscheidet, wird der Status der Teilsequenz als „Upgrade-unvollständig“ bestimmt. Das heißt, unter allen Mikrodiensten, die in der Teilsequenz enthalten sind, trägt nur der Status des ersten Mikrodienstes zum Status der Teilsequenz bei.
  • In einigen Ausführungsformen kann der Versionsmanager 70222 die aktuelle Version eines in der Cloud-Computing-Umgebung bereitgestellten Mikrodienstes/einer Teilsequenz jederzeit überprüfen und Informationen über die aktuelle Version, eine erforderliche Version, eine per Hot Upgrading aufgerüstete Richtlinie und einen Status für jeden Mikrodienst/jede Teilsequenz, der/die in der aufgerüsteten Sequenz X enthalten ist, wie in Tabelle 6 dargestellt, aus den Informationen beispielsweise in Tabelle 4 und Tabelle 5 abrufen und die in Tabelle 6 gezeigten Informationen in den Datenspeicher 5015 eingeben. Der Status jedes Mikrodienstes/jeder Sequenz/Teilsequenz kann mit den vorstehend genannten Methoden durch den Versionsmanager 70222 ermittelt werden. Und die Informationen über die aktuelle Version und den Status für jeden in der aufgerüsteten Sequenz X enthaltenen Mikrodienst/jede Sequenz/Teilsequenz können regelmäßig aktualisiert werden, z.B. jede Millisekunde, usw. Wenn dann geprüft wird, ob der Status des nächsten Mikrodienstes/der nächsten Sequenz für eine Sequenzinstanz „Upgrade-vollständig“ ist, kann der Prüfer 70223 die Informationen in der nachfolgenden Tabelle 6 im Datenspeicher 5012 prüfen, um den Status des nächsten Mikrodienstes/der nächsten Sequenz für die Sequenzinstanz zu ermitteln.
    Name des Mikrodienstes/der Sequenz A B D E F X Y
    aktuell bereitgestellte Version V1 V1 V1 V1 V1 V1 V1
    erforderliche Version V1 V2 V2 V1 V1 V2 V2
    Per Hot Upgrading aufgerüstete Richtlinie R M M R R M M
    Status F N N F F N N

    F: Upgrade-vollständig; N: Upgrade-unvollständig
    Tabelle 6
  • In einigen Ausführungsformen kann der Prüfer 70223 beim Prüfen, ob der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz für eine Sequenzinstanz „Upgrade-vollständig“ lautet, den Versionsmanager 70222 prüfen, um den Status des nächsten Mikrodienstes/der nächsten Teilsequenz für die Sequenzinstanz zu ermitteln. Der Versionsmanager 70222 kann Informationen über die aktuelle Version, die erforderliche Version und die per Hot Upgrading aufgerüstete Richtlinie aus den im Datenspeicher 5012 gespeicherten Informationen aus beispielsweise Tabelle 4 und Tabelle 5 beziehen und den Status für jeden in der aufgerüsteten Sequenz X enthaltenen Mikrodienst/jede Teilsequenz unter Verwendung des vorstehend genannten Verfahrens ermitteln und an den Prüfer 70223 zurückmelden.
  • In einigen Ausführungsformen kann der Dispatcher 7022, wenn der Prüfer 70223 feststellt, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz für die Sequenzinstanz „Upgrade-vollständig“ lautet, die Sequenzinstanz abfertigen, um den nächsten Mikrodienst/die nächste Teilsequenz aufzurufen, während, wenn der Status des nächsten Mikrodienstes/der nächsten Teilsequenz für die Sequenzinstanz „Upgrade-unvollständig“ lautet, der Dispatcher 7022 den Status des nächsten Mikrodienstes/der nächsten Teilsequenz für die Sequenzinstanz im Wesentlichen kontinuierlich ermitteln kann, bis der Status des nächsten Mikrodienstes/der nächsten Teilsequenz „Upgrade-vollständig“ lautet, um an den nächsten Mikrodienst/die nächste Teilsequenz zu verteilen.
  • Wenn der Prüfer 70223 feststellt, dass die in Ausführung befindliche Sequenzinstanz keinen nicht ausgeführten Mikrodienst oder keine nicht ausgeführte Teilsequenz aufweist, an denen Hot Upgrading durchgeführt werden soll, kann der Dispatcher 7022 in einigen Ausführungsformen die Sequenzinstanz abfertigen, um den nächsten Mikrodienst/die nächste Sequenz direkt aufzurufen. Zu diesem Zeitpunkt kann festgestellt werden, dass das Hot Upgrade der in Ausführung befindlichen Sequenzinstanz abgeschlossen ist. Wenn das Hot Upgrade aller in Ausführung befindlichen Sequenzinstanzen abgeschlossen ist, kann festgestellt werden, dass das Hot Upgrade der Sequenz abgeschlossen ist. Für eine neu erzeugte Sequenzinstanz nach Abschluss des Hot Upgrade der Sequenz kann die per Hot Upgrading aufgerüstete Sequenz direkt angewendet werden.
  • 9 zeigt einen Ablaufplan eines beispielhaften Verfahrens 900 für ein Hot Upgrade einer Sequenz in einer Cloud-Computing-Umgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 900 kann durch den Dispatcher 7022 der Ereignisverarbeitungseinheit in 7 oder andere geeignete Computer-/Datenverarbeitungssysteme implementiert werden. Zum besseren Verständnis wird das Verfahren 900 unter Bezugnahme auf 7 beschrieben.
  • Bei 910 kann der Dispatcher 7022 einen nächsten Mikrodienst oder eine nächste Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz in Reaktion auf eine Nachricht zum Aufrufen des nächsten Mikrodienstes/der nächsten Teilsequenz beziehen, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst/eine nicht ausgeführte Teilsequenz umfasst, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer per Hot Upgrading aufgerüsteten Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodiensten und/oder Teilsequenzen aufweist.
  • Bei 920 kann der Dispatcher 7022 einen Status des nächsten Mikrodienstes/der nächsten Teilsequenz ermitteln.
  • Bei 930 kann der Dispatcher 7022 ermitteln, ob der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz „Upgrade-vollständig“ lautet.
  • Bei 940 kann der Dispatcher 7022 in Reaktion auf den Status „Upgrade-vollständig“ des nächsten Mikrodienstes oder der nächsten Teilsequenz den nächsten Mikrodienst oder die nächste Teilsequenz in der in Ausführung befindlichen Sequenzinstanz aufrufen. Dann wird das Verfahren 900 beendet. Wenn der Status des nächsten Mikrodienstes/der nächsten Teilsequenz „Upgrade-unvollständig“ lautet, kann der Dispatcher 7022 zu 920 zurückkehren, um den Status des nächsten Mikrodienstes oder der nächsten Teilsequenz im Wesentlichen kontinuierlich zu ermitteln, bis der Status des nächsten Mikrodienstes/der nächsten Teilsequenz „Upgrade-vollständig“ lautet.
  • Bei Empfangen einer nächsten Nachricht zum Aufrufen eines nächsten Mikrodienstes/einer nächsten Teilsequenz kann der Dispatcher 7022 das Verfahren 900 erneut ausführen, um ein Hot Upgrade für jeden Mikrodienst/jede Teilsequenz und für jede in Ausführung befindliche Sequenzinstanz abzuschließen.
  • In einigen Ausführungsformen wird der Status eines Mikrodienstes oder einer Teilsequenz, der/die in einer Sequenz umfasst ist, auf Grundlage mindestens eines der Folgenden ermittelt: (1) Wenn an dem Mikrodienst/der Teilsequenz in der Sequenz kein Hot Upgrading durchgeführt werden muss, wird der Status des Mikrodienstes/der Teilsequenz als „Upgrade-vollständig“ ermittelt; (2) Wenn an dem Mikrodienst/der Teilsequenz in der Sequenz Hot Upgrading durchgeführt werden muss und eine aktuelle Version des Mikrodienstes/der Teilsequenz sich von einer erforderlichen Version unterscheidet, wird der Status des Mikrodienstes/der Teilsequenz als „Upgrade-unvollständig“ ermittelt; und (3) Wenn an dem Mikrodienst/der Teilsequenz in der Sequenz Hot Upgrading durchgeführt werden muss und die aktuelle Version des Mikrodienstes/der Teilsequenz mit der erforderlichen Version identisch ist, wird der Status des Mikrodienstes/der Teilsequenz als „Upgrade-vollständig“ ermittelt.
  • In einigen Ausführungsformen wird der Status einer Teilsequenz, die in einer Sequenz umfasst ist, auf Grundlage mindestens eines der Folgenden ermittelt: (1) Wenn an der Teilsequenz in der Sequenz kein Hot Upgrading durchgeführt werden muss, wird der Status der Teilsequenz als „Upgrade-vollständig“ ermittelt; (2) Wenn an der Teilsequenz in der Sequenz Hot Upgrading durchgeführt werden muss und eine aktuelle Version der Teilsequenz mit einer erforderlichen Version identisch ist, wird der Status der Teilsequenz als „Upgrade-vollständig“ ermittelt; (3) Wenn an der Teilsequenz in der Sequenz Hot Upgrading durchgeführt werden muss, die aktuelle Version der Teilsequenz sich von der erforderlichen Version unterscheidet und eine aktuelle Version eines ersten Mikrodienstes in der Teilsequenz mit einer erforderlichen Version identisch ist, wird der Status der Teilsequenz als „Upgrade-vollständig“ ermittelt; und (4) Wenn an der Teilsequenz in der Sequenz Hot Upgrading durchgeführt werden muss, die aktuelle Version der Teilsequenz sich von der erforderlichen Version unterscheidet und die aktuelle Version eines ersten Mikrodienstes in der Teilsequenz sich von der erforderlichen Version unterscheidet, wird der Status der Teilsequenz als „Upgrade-unvollständig“ ermittelt.
  • In einigen Ausführungsformen umfasst das Beziehen eines nächsten aufzurufenden Mikrodienstes oder einer nächsten aufzurufenden Teilsequenz für eine laufende Sequenzinstanz Folgendes: Der Dispatcher 7022 kann die geordnete Liste einer Mehrzahl von Mikrodiensten und/oder Teilsequenzen der Sequenz beziehen. Dann kann der Dispatcher 7022 ermitteln, ob die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst/eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll. Ist dies der Fall, kann der Dispatcher 7022 einen aktuell in der in Ausführung befindlichen Sequenzinstanz aufgerufenen Mikrodienst/eine Teilsequenz abrufen und ferner auf Grundlage des aktuell aufgerufenen Mikrodienstes/der Teilsequenz und der geordneten Liste einen nächsten Mikrodienst/eine nächste Teilsequenz beziehen, der/die in der in Ausführung befindlichen Sequenzinstanz aufgerufen werden soll.
  • In einigen Ausführungsformen kann der Dispatcher 7022 den nächsten Mikrodienst/die nächste Teilsequenz in der in Ausführung befindlichen Sequenzinstanz aufrufen, wenn die in Ausführung befindliche Sequenzinstanz keinen nicht ausgeführten Mikrodienst bzw. keine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll. Zu diesem Zeitpunkt kann festgestellt werden, dass das Hot Upgrade der in Ausführung befindlichen Sequenzinstanz abgeschlossen ist. In einigen Ausführungsformen kann, wenn das Hot Upgrade aller in Ausführung befindlichen Sequenzinstanzen abgeschlossen ist, festgestellt werden, dass das Hot Upgrade der Sequenz abgeschlossen ist.
  • Mit dem vorgeschlagenen Verfahren kann Hot Upgrading an einer Sequenz durchgeführt werden.
  • Es ist zu beachten, dass das Verarbeiten der Verwaltung bedingter paralleler Cloud-Dienste gemäß den Ausführungsformen der vorliegenden Offenbarung vom Computersystem/Server 12 aus 1 implementiert werden könnte.
  • Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt jedes möglichen technisch detaillierten Integrationsgrads handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder festgelegten 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 sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder 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 Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass 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 Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. So können beispielsweise zwei nacheinander gezeigte Blöcke in Wirklichkeit in einem Schritt, gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder vollständig zeitlich überlappend ausgeführt werden, oder die Blöcke können je nach der betreffenden Funktionalität auch in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden für Zwecke der Veranschaulichung dargelegt, sind jedoch nicht als abschließend oder auf die Ausführungsformen beschränkt zu verstehen. Für den Fachmann sind viele Abwandlungen und Variationen ersichtlich, ohne vom Umfang und Grundgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um bestmöglich die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber den auf dem Markt erhältlichen Technologien zu erklären oder um dem Fachmann das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (8)

  1. Durch einen Computer implementiertes Verfahren zum Aufrüsten einer Sequenz von Mikrodiensten, umfassend: in Reaktion auf eine Nachricht zum Aufrufen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz durch einen oder mehrere Prozessoren erfolgendes Beziehen des nächsten Mikrodienstes oder der nächsten Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer per Hot Upgrading aufzurüstenden Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodiensten oder Teilsequenzen aufweist; durch den einen oder die mehreren Prozessoren erfolgendes Ermitteln eines Status des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz; und in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet, durch den einen oder die mehreren Prozessoren erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
  2. Durch einen Computer implementiertes Verfahren nach Anspruch 1, ferner umfassend: in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-unvollständig lautet, durch den einen oder die mehreren Prozessoren im Wesentlichen kontinuierlich erfolgendes Ermitteln des Status des nächsten Mikrodienstes oder der nächsten Teilsequenz, bis der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet.
  3. Durch einen Computer implementiertes Verfahren nach Anspruch 2, wobei der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz auf Grundlage mindestens eines der Folgenden ermittelt wird: an dem nächsten Mikrodienst oder der nächsten Teilsequenz in der Sequenz muss kein Hot Upgrading durchgeführt werden, und der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz wird als Upgrade-vollständig ermittelt; an dem nächsten Mikrodienst oder der nächsten Teilsequenz in der Sequenz muss Hot Upgrading durchgeführt werden, eine aktuelle Version des nächsten Mikrodienstes oder der nächsten Teilsequenz unterscheidet sich von einer erforderlichen Version, und der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz wird als Upgrade-unvollständig ermittelt; und an dem nächsten Mikrodienst oder der nächsten Teilsequenz in der Sequenz muss Hot Upgrading durchgeführt werden, bei der aktuellen Version des nächsten Mikrodienstes oder der nächsten Teilsequenz handelt es sich um eine erforderliche Version, und der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz wird als Upgrade-vollständig ermittelt.
  4. Durch einen Computer implementiertes Verfahren nach Anspruch 2, wobei der Status der nächsten Teilsequenz auf Grundlage mindestens eines der Folgenden ermittelt wird: an der nächsten Teilsequenz in der Sequenz muss kein Hot Upgrading durchgeführt werden, und der Status der nächsten Teilsequenz wird als Upgrade-vollständig ermittelt; an der nächsten Teilsequenz in der Sequenz muss Hot Upgrading durchgeführt werden, bei einer aktuellen Version der nächsten Teilsequenz handelt es sich um eine erforderliche Version, und der Status der nächsten Teilsequenz wird als Upgrade-vollständig ermittelt; an der nächsten Teilsequenz in der Sequenz muss Hot Upgrading durchgeführt werden, die aktuelle Version der nächsten Teilsequenz unterscheidet sich von einer erforderlichen Version, bei einer aktuellen Version eines ersten Mikrodienstes in der nächsten Teilsequenz handelt es sich um eine erforderliche Version, und der Status der nächsten Teilsequenz wird als Upgrade-vollständig ermittelt; und an der nächsten Teilsequenz in der Sequenz muss Hot Upgrading durchgeführt werden, die aktuelle Version der nächsten Teilsequenz unterscheidet sich von einer erforderlichen Version, die aktuelle Version eines ersten Mikrodienstes in der nächsten Teilsequenz unterscheidet sich von einer erforderlichen Version, und der Status der nächsten Teilsequenz wird als Upgrade-unvollständig ermittelt.
  5. Durch einen Computer implementiertes Verfahren nach Anspruch 1, wobei das Beziehen eines nächsten aufzurufenden Mikrodienstes oder einer nächsten aufzurufenden Teilsequenz für eine in Ausführung befindliche Sequenzinstanz umfasst: durch den einen oder die mehreren Prozessoren erfolgendes Beziehen der geordneten Liste einer Mehrzahl von Mikrodiensten oder Teilsequenzen der Sequenz; durch den einen oder die mehreren Prozessoren erfolgendes Ermitteln, ob die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst/eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll; und in Reaktion darauf, dass die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll: durch den einen oder die mehreren Prozessoren erfolgendes Beziehen eines Mikrodienstes oder einer Teilsequenz, der/die aktuell in der in Ausführung befindlichen Sequenzinstanz aufgerufen wird; und auf Grundlage des aktuell aufgerufenen Mikrodienstes oder der aktuell aufgerufenen Teilsequenz und der geordneten Liste durch den einen oder die mehreren Prozessoren erfolgendes Beziehen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz, der/die in der in Ausführung befindlichen Sequenzinstanz aufgerufen werden soll.
  6. Durch einen Computer implementiertes Verfahren nach Anspruch 5, ferner umfassend: in Reaktion darauf, dass die in Ausführung befindliche Sequenzinstanz keinen nicht ausgeführten Mikrodienst bzw. keine nicht ausgeführte Teilsequenz aufweist, an denen Hot Upgrading durchgeführt werden soll, durch den einen oder die mehreren Prozessoren erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
  7. System zum Aufrüsten einer Sequenz von Mikrodiensten, das Folgendes aufweist: eine Verarbeitungseinheit; und einen Speicher, der mit der Verarbeitungseinheit verbunden ist und in dem Anweisungen gespeichert sind, wobei die Anweisungen bei Ausführung durch die Verarbeitungseinheit Aktionen durchführen, die Folgendes umfassen: in Reaktion auf eine Nachricht zum Aufrufen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz erfolgendes Beziehen des nächsten Mikrodienstes oder der nächsten Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer per Hot Upgrading aufzurüstenden Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodiensten oder Teilsequenzen aufweist; Ermitteln eines Status des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz; und in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet, erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
  8. Computerprogrammprodukt zum Aufrüsten einer Sequenz von Mikrodiensten, das ein durch einen Computer lesbares Speichermedium mit darauf befindlichen Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, Aktionen durchzuführen, die Folgendes umfassen: in Reaktion auf eine Nachricht zum Aufrufen eines nächsten Mikrodienstes oder einer nächsten Teilsequenz erfolgendes Beziehen des nächsten Mikrodienstes oder der nächsten Teilsequenz in einer in Ausführung befindlichen Sequenzinstanz, wobei die in Ausführung befindliche Sequenzinstanz mindestens einen nicht ausgeführten Mikrodienst oder eine nicht ausgeführte Teilsequenz aufweist, an dem/der Hot Upgrading durchgeführt werden soll, und wobei die in Ausführung befindliche Sequenzinstanz auf Grundlage einer per Hot Upgrading aufzurüstenden Sequenz erzeugt wird, die eine geordnete Liste einer Mehrzahl von Mikrodiensten oder Teilsequenzen aufweist; Ermitteln eines Status des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz; und in Reaktion darauf, dass der Status des nächsten Mikrodienstes oder der nächsten Teilsequenz Upgrade-vollständig lautet, erfolgendes Aufrufen des nächsten Mikrodienstes oder der nächsten Teilsequenz in der in Ausführung befindlichen Sequenzinstanz.
DE102021130965.4A 2020-12-31 2021-11-25 Aufrüsten einer sequenz von mikrodiensten in einer cloud-computing-umgebung Pending DE102021130965A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/139,533 2020-12-31
US17/139,533 US11422791B2 (en) 2020-12-31 2020-12-31 Upgrading a sequence of microservices in a cloud computing environment

Publications (1)

Publication Number Publication Date
DE102021130965A1 true DE102021130965A1 (de) 2022-06-30

Family

ID=79269647

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021130965.4A Pending DE102021130965A1 (de) 2020-12-31 2021-11-25 Aufrüsten einer sequenz von mikrodiensten in einer cloud-computing-umgebung

Country Status (4)

Country Link
US (1) US11422791B2 (de)
JP (1) JP2022105295A (de)
DE (1) DE102021130965A1 (de)
GB (1) GB2605241B (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11606420B1 (en) * 2021-10-22 2023-03-14 Dell Products L.P. Method and apparatus for service routing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150143355A1 (en) 2010-11-01 2015-05-21 Architecture Technology Corporation Service oriented architecture version and dependency control
WO2012142854A1 (zh) 2011-04-18 2012-10-26 北京新媒传信科技有限公司 一种应用服务平台系统及其实现方法
CN106201566B (zh) * 2015-05-07 2019-08-23 阿里巴巴集团控股有限公司 利博伟特软件热升级方法及设备
CN106990975B (zh) * 2016-01-21 2021-07-23 斑马智行网络(香港)有限公司 一种应用热部署方法、装置和系统
US10671376B2 (en) * 2016-03-15 2020-06-02 Shenzhen Skyworth-Rgb Electronic Co., Ltd. Server program hot upgrading method and device
US10289400B2 (en) 2016-09-07 2019-05-14 Amplidata N.V. Outdated resource handling and multiple-version upgrade of cloud software
CN110780894B (zh) 2018-07-31 2023-04-28 阿里巴巴集团控股有限公司 热升级处理方法、装置及电子设备
CN110784360A (zh) 2019-11-01 2020-02-11 浪潮云信息技术有限公司 一种实现Kong声明式配置热更新的方法及系统

Also Published As

Publication number Publication date
GB2605241A (en) 2022-09-28
GB2605241B (en) 2023-08-09
GB202117764D0 (en) 2022-01-26
JP2022105295A (ja) 2022-07-13
US11422791B2 (en) 2022-08-23
US20220206782A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
DE112016003355B4 (de) Sicherer Einsatz einer Anwendung über Einsatzorte hinweg
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE112021002245T5 (de) Verhindern einer unberechtigten bereitstellung von paketen in clustern
DE112019001433T5 (de) Datenanonymisierung
DE112020000912T5 (de) Verwalten von software-programmen
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112021003402T5 (de) Blockchain-verwaltung von bereitstellungsfehlern
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE102021124335A1 (de) Verwalten von ausfällen in edge-computing-umgebungen
DE112021004577T5 (de) Verwalten eines aufgabenablaufs in einer edge-datenverarbeitungsumgebung
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE102021125847A1 (de) Auf blockchain beruhende reservierung und delegierung von diensten
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102021130942A1 (de) Mehrstufiger schutz für datenzentrierte objekte
DE102021130965A1 (de) Aufrüsten einer sequenz von mikrodiensten in einer cloud-computing-umgebung
DE112021003864T5 (de) Durchsetzung von signaturen für die konfiguration von softwarebereitstellung
DE112017001421T5 (de) Flexibel optimiertes Datenhandling in Systemen mit mehreren Speichern

Legal Events

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