DE112022002615T5 - Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs - Google Patents

Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs Download PDF

Info

Publication number
DE112022002615T5
DE112022002615T5 DE112022002615.4T DE112022002615T DE112022002615T5 DE 112022002615 T5 DE112022002615 T5 DE 112022002615T5 DE 112022002615 T DE112022002615 T DE 112022002615T DE 112022002615 T5 DE112022002615 T5 DE 112022002615T5
Authority
DE
Germany
Prior art keywords
computing platform
application
computer
applications
migrated
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
DE112022002615.4T
Other languages
English (en)
Inventor
Yue Wang
Xinpeng LIU
Biao Chai
Shuang Men
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 DE112022002615T5 publication Critical patent/DE112022002615T5/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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Abstract

Es wird ein Verwalten eines Migrierens von Anwendungen bereitgestellt. Ein API-Server auf einem Steuerknoten wird aufgerufen, um eine Konfigurationsübersicht eines Reverse-Proxys auf einem Arbeitsknoten zu aktualisieren, damit der Reverse-Proxy Benutzerdienstanforderungen, die nichtmigrierten Anwendungen eines Satzes von Anwendungen entsprechen, von einer ersten Datenverarbeitungsplattform an eine zweite Datenverarbeitungsplattform leitet, um eine Funktionsfähigkeit der nichtmigrierten Anwendungen während eines Migrierens aufrechtzuerhalten. Der API-Server wird aufgerufen, um auf der Grundlage eines von der zweiten Datenverarbeitungsplattform erhaltenen Quellcodes der Anwendung ein Abbild für eine Anwendung des Satzes von Anwendungen zu erstellen. Der API-Server wird aufgerufen, um unter Verwenden des Abbildes einen Pod auf dem Arbeitsknoten zu erstellen, um eine Arbeitslast der Anwendung auszuführen. Der API-Server wird aufgerufen, um einen Dienst auf dem Arbeitsknoten zu aktualisieren, um den Pod auf dem Arbeitsknoten auszuwählen, der die Arbeitslast der Anwendung ausführt.

Description

  • HINTERGRUND
  • 1. Gebiet:
  • Die Offenbarung betrifft Migrieren von Anwendungen im Allgemeinen und insbesondere Migrieren eines Satzes von Anwendungen, die einer Kundenentität entsprechen, von einer Cloud-Anwendungsplattform auf eine Container-Orchestrierungsplattform, wobei während des Migrationsprozesses eine kontinuierliche Funktionsfähigkeit und Integrität des Satzes von Kundenentitätsanwendungen aufrechterhalten wird.
  • 2. Beschreibung der technischen Zusammenhänge:
  • Unter Migrieren von Anwendungen versteht man den Prozess des Verschiebens einer Software-Anwendung oder eines Programms von einer ersten Datenverarbeitungsumgebung in eine zweite Datenverarbeitungsumgebung. Zu Beispielen hierfür gehören Migrieren einer Anwendung von einem unternehmensinternen Datenzentrum in eine Cloud-Umgebung oder von einer Cloud-Umgebung in eine andere Cloud-Umgebung.
  • Kunden, die ihre Anwendungen in eine neue Datenverarbeitungsumgebung migrieren möchten, können während des Migrationsprozesses aufgrund von Unterschieden zwischen der Quell- und der Zieldatenverarbeitungsumgebung von Anwendungsausfällen und Dienstunterbrechungen betroffen sein. Wenn ein Kunde eine große Anzahl von Anwendungen migrieren möchte, kommt es außerdem zu einer langen Ausfallzeit von Anwendungen, wodurch es aufgrund der unterschiedlichen Umgebungen unmöglich wird, Benutzern Dienste bereitzustellen, bis der gesamte Migrationsprozess abgeschlossen ist.
  • Wenn ein Kunde beispielsweise alle seine Anwendungen von einer Cloud-Anwendungsplattform wie zum Beispiel Cloud Foundry® (eine eingetragene Marke der Linux Foundation aus San Francisco, Kalifornien) auf eine Container-Orchestrierungsplattform wie zum Beispiel Kubernetes® (eine eingetragene Marke der Linux Foundation aus San Francisco, Kalifornien) migrieren möchte, kann der Kunde während des Migrationsprozesses auf Schwierigkeiten stoßen, beispielweise Anwendungsausfälle, Dienstunterbrechungen und dergleichen. Eine derzeitige Lösung besteht darin, die Anwendungen des Kunden auf der Cloud-Anwendungsplattform unter Verwenden einer Mehrzahl von Proxys für die Verkehrslenkung, beispielsweise Envoy® (eine eingetragene Marke der Linux Foundation aus San Francisco, Kalifornien), mit der Container-Orchestrierungsumgebung zu verbinden. Auf der Grundlage dieser Konnektivität kann ein Migrieren von Anwendungen von der Cloud-Anwendungsplattform auf die Container-Orchestrierungsplattform durch Nutzen von Regeln für Proxys zum Lenken des Datenverkehrs ausgeführt werden. Ein Problem bei dieser Lösung besteht jedoch darin, dass sie ein Bereitstellen einer ganzen Reihe von Proxys zum Lenken des Datenverkehrs zu allen Knoten der Cloud-Anwendungsplattform voraussetzt. Dies ist nicht nur eine teure Lösung, sondern auch keine praktische Lösung, wenn man die Kosten des Migrationsvorgangs berücksichtigt.
  • Eine weitere aktuelle Lösung besteht in einem Verteilen von Anwendungslaufzeit der Cloud-Anwendungsplattform an die Container-Orchestrationsplattform. Diese Verteilung der Anwendungslaufzeit ermöglicht es der Container-Orchestrierungsplattform, virtuelle Maschinen der Cloud-Anwendungsplattform genauso zu verwalten wie Pods der Container-Orchestrierungsplattform. Diese Lösung ermöglicht es der Container-Orchestrationsplattform jedoch nicht, Kundenanwendungen, die auf den virtuellen Maschinen der Cloud-Anwendungsplattform ausgeführt werden, zu erkennen und somit zu verwalten. Infolgedessen hat die Container-Orchestrierungsplattform während eines Migrierens von Anwendungen unter Verwenden dieser Lösung keine Kenntnis davon, welche Kundenanwendungen noch auf den virtuellen Maschinen der Cloud-Anwendungsplattform ausgeführt werden.
  • KURZDARSTELLUNG
  • Gemäß einer veranschaulichenden Ausführungsform wird ein durch einen Computer implementiertes Verfahren zum Verwalten eines Migrierens von Anwendungen bereitgestellt. Ein Computer ruft einen Anwendungsprogrammierschnittstellen-(API-) Server auf einem Steuerknoten einer ersten Datenverarbeitungsplattform auf, um eine Konfigurationsübersicht eines Reverse-Proxys auf einem Arbeitsknoten der ersten Datenverarbeitungsplattform zu aktualisieren, damit der Reverse-Proxy Benutzerdienstanforderungen, die nichtmigrierten Anwendungen eines Satzes von Anwendungen entsprechen, von der ersten Datenverarbeitungsplattform an eine zweite Datenverarbeitungsplattform leitet, um die Funktionsfähigkeit der nichtmigrierten Anwendungen während eines Migrationsvorgangs des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform aufrechtzuerhalten. Der Computer ruft den API-Server auf dem Steuerknoten auf, um auf der Grundlage eines Quellcodes der Anwendung, der von der zweiten Datenverarbeitungsplattform erhalten wurde, ein Abbild für eine Anwendung des Satzes von Anwendungen auf der zweiten Datenverarbeitungsplattform zu erstellen, die auf die erste Datenverarbeitungsplattform migriert werden soll. Der Computer ruft den API-Server auf dem Steuerknoten auf, um einen Pod auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform zu erzeugen, um eine Arbeitslast der Anwendung unter Verwenden des vom API-Server erstellten Abbildes der Anwendung auszuführen. Der Computer ruft den API-Server auf dem Steuerknoten auf, um einen Dienst auf dem Arbeitsknoten zu aktualisieren, um den die Arbeitslast der Anwendung ausführenden Pod auf dem Arbeitsknoten auszuwählen, um ein Migrieren der Anwendung von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform durchzuführen. Gemäß anderen veranschaulichenden Ausführungsformen werden ein Computersystem und ein Computerprogrammprodukt zum Verwalten eines Migrierens von Anwendungen bereitgestellt.
  • Infolgedessen stellen die veranschaulichenden Ausführungsformen eine technische Auswirkung und eine praktische Anwendung auf dem Gebiet der Anwendungsmigration bereit, indem sie ein Migrieren eines Satzes von Anwendungen mit kontinuierlicher Funktionsfähigkeit und Integrität jeder Anwendung in der Gruppe von Anwendungen während des gesamten Migrationsprozesses ohne Dienstunterbrechung ermöglichen. Auf diese Weise wird ein Benutzer, der einen Dienst anfordert, der von einer der Kundenanwendungen in dem zu migrierenden Satz bereitgestellt wird, während des Migrationsprozesses keine Unterbrechung des Dienstes erfahren.
  • Die veranschaulichenden Ausführungsformen rufen auch den API-Server auf dem Steuerknoten auf, um die Konfigurationsübersicht des Reverse-Proxys auf dem Arbeitsknoten zu aktualisieren, indem der Anwendung entsprechende Informationen aus der Konfigurationsübersicht entfernt werden, um den Reverse-Proxy daran zu hindern, während eines Migrierens des Satzes von Anwendungen Benutzerdienstanforderungen, die der Anwendung entsprechen, von der ersten Datenverarbeitungsplattform an die zweite Datenverarbeitungsplattform zu leiten, da die Anwendung migriert wurde. Darüber hinaus rufen die veranschaulichenden Ausführungsformen die zweite Datenverarbeitungsplattform auf, um die Anwendung aus dem Satz von Anwendungen auf der zweiten Datenverarbeitungsplattform zu löschen. Infolgedessen schließen die veranschaulichenden Ausführungsformen jede Möglichkeit aus, den der gelöschten Anwendung entsprechenden Dienst nach einem Migrieren der Anwendung auf die erste Datenverarbeitungsplattform von der zweiten Datenverarbeitungsplattform anzufordern.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen, in dem veranschaulichende Ausführungsformen implementiert werden können;
    • 2 ist eine Darstellung eines Datenverarbeitungssystems, in dem veranschaulichende Ausführungsformen implementiert werden können;
    • 3 ist eine Darstellung, die eine Cloud-Computing-Umgebung darstellt, in der veranschaulichende Ausführungsformen implementiert werden können;
    • 4 ist eine Darstellung, die ein Beispiel von Abstraktionsschichten einer Cloud-Computing-Umgebung gemäß einer veranschaulichenden Ausführungsform zeigt;
    • 5 ist eine Darstellung, die ein Beispiel eines Systems zum Verwalten eines Migrierens von Anwendungen gemäß einer veranschaulichenden Ausführungsform zeigt; und
    • Die 6A bis 6B sind Ablaufpläne, die einen Prozess zum Verwalten eines Migrierens von Kundenanwendungen von einer Cloud-Anwendungsplattform auf eine Container-Orchestrierungsplattform gemäß einer veranschaulichenden Ausführungsform zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit jedem möglichen technischen Integrationsgrad handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit 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 nichterschö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 erhabene 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 Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltkreise oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache 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 entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten 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 Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwenden 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 Ausführungsformen 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 Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbaren 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 zum Umsetzen der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder 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 bzw. Schaubilder festgelegten 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 Erfindung. 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 zum Ausführen der festgelegten 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. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt, gleichzeitig, im Wesentlichen gleichzeitig, vollständig oder teilweise zeitlich überlappend ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern 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.
  • Unter Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf die 1 bis 5 werden Darstellungen von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen implementiert werden können. Es sollte klar sein, dass die 1 bis 5 nur als Beispiele dienen und keine Einschränkung in Bezug auf die Umgebungen, in denen verschiedene Ausführungsformen implementiert werden können, geltend machen oder implizieren sollen. Es können viele Modifikationen an den dargestellten Umgebungen vorgenommen werden.
  • 1 zeigt eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen, in dem veranschaulichende Ausführungsformen implementiert werden können. Bei dem Netzwerk-Datenverarbeitungssystem 100 handelt es sich um ein Netzwerk von Computern, Datenverarbeitungssystemen und anderen Einheiten, in denen die veranschaulichenden Ausführungsformen implementiert werden können. Das Netzwerk-Datenverarbeitungssystem 100 umfasst ein Netzwerk 102, das als Medium zum Bereitstellen von Datenübertragungsverbindungen zwischen den Computern, Datenverarbeitungssystemen und anderen Einheiten dient, die im Netzwerk-Datenverarbeitungssystem 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie etwa drahtgebundene Übertragungsverbindungen, drahtlose Übertragungsverbindungen, Lichtwellenleiterkabel und dergleichen umfassen.
  • In dem gezeigten Beispiel sind ein Server 104 und ein Server 106 mit dem Netzwerk 102 verbunden, zusammen mit einem Speicher 108, einer Container-Orchestrierungsplattform 110 und einer Cloud-Anwendungsplattform 112. Bei dem Server 104 und dem Server 106 kann es sich beispielsweise um Server-Computer mit Hochgeschwindigkeitsverbindungen zum Netzwerk 102 handeln. Außerdem können der Server 104 und der Server 106 jeweils eine Gruppe von Servern in einem oder mehreren Datenzentren darstellen. Alternativ können der Server 104 und der Server 106 jeweils mehrere Verarbeitungsknoten in einer oder mehreren Cloud-Umgebungen darstellen.
  • Darüber hinaus stellen der Server 104 und der Server 106 Dienste zum Verwalten eines Migrierens von Anwendungen für Kundenentitäten bereit. Bei einer Kundenentität kann es sich beispielsweise um ein Unternehmen, eine Firma, ein Geschäft, eine Organisation, eine Institution, eine Behörde oder dergleichen handeln. Die Kundenentität verwendet einen Satz von Anwendungen, um einen Satz von Diensten für Benutzer von anfordernden Client-Einheiten bereitzustellen. Bei dem Satz von Diensten kann es sich beispielsweise um Bankdienste, Finanzdienste, Gesundheitsdienste, Bildungsdienste, Behördendienste, Unterhaltungsdienste, Versicherungsdienste, Datendienste, Transaktionsdienste oder dergleichen handeln.
  • Der Server 104 und der Server 106 führen die Dienste zum Verwalten eines Migrierens von Anwendungen aus, indem sie den Satz von Anwendungen, beispielsweise der Kundenentität entsprechende Kundenanwendungen 118, von der Cloud-Anwendungsplattform 112 auf die Container-Orchestrierungsplattform 110 migrieren, wobei eine kontinuierliche Funktionsfähigkeit und Integrität des Satzes von Kundenentitätsanwendungen während des Migrationsprozesses aufrechterhalten wird. Unter Funktionsfähigkeit und Integrität ist zu verstehen, dass jede Kundenanwendung im Satz von migrierten Kundenanwendungen in der Lage ist, ihren entsprechenden Dienst während des gesamten Migrationsprozesses kontinuierlich mit der vorgesehenen Dienstgüte mit Datenintegrität bereitzustellen, ohne dass es zu Ausfallzeiten oder Dienstunterbrechungen für Benutzer von anfordernden Client-Einheiten kommt.
  • Bei der Cloud-Anwendungsplattform 112 kann es sich beispielsweise um eine Plattform als Dienstleistung- (Platform as a Service, PaaS) Architektur oder Umgebung wie etwa Cloud Foundry® oder dergleichen handeln. Auf der Cloud-Anwendungsplattform 112 werden Kundenanwendungen 118 in einer beliebigen Programmiersprache über eine Vielfalt von Cloud-Dienstanbietern ausgeführt. Diese Multi-Cloud-Umgebung ermöglicht es Kundenentitäten, die Cloud-Anwendungsplattform 112 zum Ausführen spezifischer Anwendungslasten zu nutzen. Die Cloud-Anwendungsplattform 112 legt fest, wie eine Anwendung in einer Cloud Benutzern von anfordernden Client-Einheiten bereitgestellt wird, und arbeitet auf einer Anwendungsebene. Kundenanwendungen 118 können eine Mehrzahl verschiedener Sätze von Kundenanwendungen darstellen, die einer Kundenentität oder einer Mehrzahl verschiedener Kundenentitäten entsprechen. Außerdem können Kundenanwendungen 118 eine beliebige Art von Anwendung darstellen, die in der Lage ist, Online-Dienste für Benutzer von anfordernden Client-Einheiten bereitzustellen.
  • Bei der Container-Orchestrierungsplattform 110 kann es sich beispielsweise um eine Kubernetes®-Architektur oder Umgebung oder dergleichen handeln. Es sollte jedoch klar sein, dass Kubernetes nur als Beispielarchitektur und nicht als Einschränkung für veranschaulichende Ausführungsformen gedacht ist. Die Container-Orchestrierungsplattform 110 stellt eine Plattform zum Automatisieren eines Bereitstellens, Skalierens und Betreibens von Kundenanwendungen wie etwa Kundenanwendungen 118 bereit. Die Container-Orchestrierungsplattform 110 ermöglicht außerdem ein automatisches Bereitstellen, Skalieren und Betreiben von Pods, wobei jeder Pod einen oder mehrere Container umfasst, um Arbeitslasten von Kundenanwendungen über eine Gruppe von Arbeitsknoten 116 (auch als Host-Knoten oder Minions bezeichnet) auszuführen. Zwar wird der Begriff Pod im Allgemeinen im Kubernetes-Paradigma verwendet, der hier verwendete Begriff ist jedoch nicht auf diese Umgebung beschränkt, sondern bezieht sich vielmehr auf eine beliebige Gruppierung von einem oder mehreren Containern, in denen Arbeitslasten bereitgestellt und die laufenden Anwendungen, Bibliotheken und ihre Abhängigkeiten zwischengespeichert werden. Der Steuerknoten 114 entspricht einer Gruppe von Arbeitsknoten 116, die Arbeitslasten von Kundenanwendungen ausführen. Der Steuerknoten 114 empfängt und verfolgt Dienstanforderungen von Benutzern von Client-Einheiten, die ein Ausführen von Diensten anfordern, die Arbeitslasten von Kundenanwendungen entsprechen. Der Steuerknoten 114, bei dem es sich um eine Hauptsteuerungseinheit einer Gruppe von Arbeitsknoten 116 handelt, verwaltet die Arbeitslasten von Kundenanwendungen der Gruppe und steuert den Datenaustausch innerhalb der Gruppe. Bei einem Arbeitsknoten der Arbeitsknoten 116 handelt es sich um eine physische oder virtuelle Maschine, auf der Container (d.h. Anwendungsarbeitslasten) bereitgestellt werden. Zwar werden die Begriffe Steuerknoten und Arbeitsknoten im Allgemeinen im Kubernetes-Paradigma verwendet, wie hierin verwendet sind diese Begriffe jedoch nicht auf diese Umgebung beschränkt, sondern beziehen sich vielmehr auf jede Art von Knoten, die in der Lage sind, Arbeitslasten von Kundenanwendungen zu steuern und auszuführen.
  • Der Client 120 und der Client 122 sind ebenfalls mit dem Netzwerk 102 verbunden. Bei den Clients 120 und 122 handelt es sich um Clients der Arbeitsknoten 116. In diesem Beispiel sind die Clients 120 und 122 als Tisch-Computer oder Personal Computer mit drahtgebundenen Datenübertragungsverbindungen zum Netzwerk 102 dargestellt. Es sei jedoch darauf hingewiesen, dass es sich bei den Clients 120 und 122 lediglich um Beispiele handelt und diese andere Arten von Datenverarbeitungssystemen darstellen können, beispielsweise Netzwerkcomputer, Laptop-Computer, Handheld-Computer, Smartphones, intelligente Uhren, Smart-TVs, intelligente Fahrzeuge, intelligente Anwendungen, Spieleinheiten, Kioske und dergleichen mit drahtgebundenen oder drahtlosen Übertragungsverbindungen zum Netzwerk 102. Benutzer der Clients 120 und 122 können die Clients 120 und 122 verwenden, um die Online-Dienste anzufordern und zu nutzen, die von Kundenanwendungen 118 über die Arbeitsknoten 116 während eines Migrierens eines Satzes von Kundenanwendungen 118 von der Cloud-Anwendungsplattform 112 auf die Container-Orchestrierungsplattform 110 durch den Server 104 und/oder den Server 106 bereitgestellt werden.
  • Bei einem Speicher 108 handelt es sich um eine Netzwerkspeichereinheit, die jede Art von Daten in einem strukturierten oder unstrukturierten Format speichern kann. Darüber hinaus kann der Speicher 108 eine Mehrzahl von Netzwerkspeichereinheiten darstellen. Außerdem kann der Speicher 108 Kennungen und Netzwerkadressen für eine Mehrzahl verschiedener Datenverarbeitungsplattformen oder -umgebungen, Kennungen und Netzwerkadressen für eine Mehrzahl von Client-Einheiten, Kennungen für eine Mehrzahl von Benutzern von Client-Einheiten, Kennungen und Verweisadressen (Uniform Resource Locators, URLs) für eine Mehrzahl von Kundenanwendungen, Konfigurationsübersichten und dergleichen speichern. Darüber hinaus kann der Speicher 108 andere Datentypen wie etwa Authentifizierungs- oder Berechtigungsdaten speichern, die Benutzernamen, Passwörter und dergleichen umfassen können, die zum Beispiel Systemadministratoren und Benutzern von Client-Einheiten zugeordnet sind.
  • Zudem sei darauf hingewiesen, dass das Netzwerk-Datenverarbeitungssystem 100 eine beliebige Anzahl zusätzlicher Server, Container-Orchestrierungsplattformen, Cloud-Anwendungsplattformen, Clients, Speichereinheiten und andere nicht gezeigte Einheiten umfassen kann. Programmcode, der sich im Netzwerk-Datenverarbeitungssystem 100 befindet, kann auf einem durch einen Computer lesbaren Speichermedium oder einem Satz von durch einen Computer lesbaren Speichermedien gespeichert und zum Verwenden auf einen Computer oder eine andere Datenverarbeitungseinheit heruntergeladen werden. Beispielsweise kann ein Programmcode auf einem durch einen Computer lesbaren Speichermedium auf dem Server 104 gespeichert und über das Netzwerk 102 auf die Container-Orchestrierungsplattform 110 und die Cloud-Anwendungsplattform 112 zur Verwendung auf der Container-Orchestrierungsplattform 110 und der Cloud-Anwendungsplattform 112 heruntergeladen werden.
  • Im gezeigten Beispiel kann das Netzwerk-Datenverarbeitungssystem 100 als eine Anzahl verschiedener Arten von Datenübertragungsnetzen implementiert werden, beispielsweise ein Internet, ein Intranet, ein Weitverkehrsnetz (WAN), ein lokales Netz (LAN), ein Datenfernübertragungsnetz oder eine beliebige Kombination daraus. 1 ist nur als Beispiel gedacht und nicht als architektonische Einschränkung für die verschiedenen veranschaulichenden Ausführungsformen.
  • Wie hierin in Bezug auf Elemente verwendet, bedeutet „eine Anzahl von“, dass es sich um eines oder mehrere der Elemente handelt. Zum Beispiel handelt es sich bei „eine Anzahl verschiedener Arten von Datenübertragungsnetzen“ um eine oder mehrere verschiedene Arten von Datenübertragungsnetzen. In ähnlicher Weise bedeutet „ein Satz von“ bei Verwendung in Bezug auf Elemente eines oder mehrere der Elemente.
  • Des Weiteren bedeutet der Begriff „mindestens eine/r/s von“ bei Verwendung mit einer Liste von Elementen, dass verschiedene Kombinationen von einem oder mehreren der aufgelisteten Elemente verwendet werden können und möglicherweise nur eines von jedem Element in der Liste benötigt wird. Mit anderen Worten, „mindestens eine/r/s von“ bedeutet, dass eine beliebige Kombination von Elementen und eine beliebige Anzahl von Elementen aus der Liste verwendet werden können, aber nicht alle Elemente aus der Liste erforderlich sind. Bei dem Element kann es sich um ein bestimmtes Objekt, eine Sache oder eine Kategorie handeln.
  • Beispielsweise kann „mindestens eines von Element A, Element B oder Element C“ ohne Einschränkung Element A, Element A und Element B oder Element B umfassen. Dieses Beispiel kann auch Element A, Element B und Element C oder Element B und Element C umfassen. Selbstverständlich können alle Kombinationen dieser Elemente vorhanden sein. In einigen veranschaulichenden Beispielen kann es sich bei „mindestens eines von“ beispielsweise um zwei von Element A, eines von Element B und zehn von Element C, vier von Element B und sieben von Element C oder andere geeignete Kombinationen handeln.
  • Unter Bezugnahme auf 2 wird eine Darstellung eines Datenverarbeitungssystems gemäß einer veranschaulichenden Ausführungsform gezeigt. Bei einem Datenverarbeitungssystem 200 handelt es sich um ein Beispiel für einen Computer, beispielsweise für den Server 104 in 1, in dem sich ein durch einen Computer lesbarer Programmcode oder Anweisungen befinden können, die die Prozesse zum Verwalten eines Migrierens von Anwendungen von veranschaulichenden Ausführungsformen implementieren. In diesem Beispiel umfasst das Datenverarbeitungssystem 200 eine Datenübertagungsstruktur 202, die Datenaustauschvorgänge zwischen einer Prozessoreinheit 204, einem Speicher 206, einem dauerhaften Speicher 208, einer Datenübertragungseinheit 210, einer Ein/Ausgabe- (E/A-) Einheit 212 und einer Anzeige 214 ermöglicht.
  • Die Prozessoreinheit 204 dient zum Ausführen von Anweisungen für Software-Anwendungen und Programmen, die in den Speicher 206 geladen werden können. Bei der Prozessoreinheit 204 kann es sich in Abhängigkeit von der jeweiligen Implementierung um einen Satz von einer oder mehreren Hardware-Prozessoreinheiten oder um einen Multi-Core-Prozessor handeln.
  • Der Speicher 206 und der dauerhafte Speicher 208 sind Beispiele für Speichereinheiten 216. Wie hierin verwendet, handelt es sich bei einer durch einen Computer lesbaren Speichereinheit oder ein durch einen Computer lesbares Speichermedium um jede Hardware-Komponente, die in der Lage ist, Informationen zu speichern, beispielsweise Daten, durch einen Computer lesbaren Programmcode in funktionaler Form und/oder andere geeignete Informationen entweder auf flüchtiger Grundlage oder dauerhafter Grundlage, jedoch ohne auf diese beschränkt zu sein. Ferner schließt eine durch einen Computer lesbare Speichereinheit oder ein durch einen Computer lesbares Speichermedium ein Ausbreitungsmedium wie etwa flüchtige Signale aus. Darüber hinaus kann eine durch einen Computer lesbare Speichereinheit oder ein durch einen Computer lesbares Speichermedium einen Satz von durch einen Computer lesbaren Speichereinheiten oder einen Satz von durch einen Computer lesbaren Speichermedien darstellen. Bei dem Speicher 206 kann es sich in diesen Beispielen beispielsweise um einen Direktzugriffsspeicher (RAM) oder um eine andere geeignete flüchtige oder nichtflüchtige Speichereinheit wie etwa ein Flash-Speicher handeln. Der dauerhafte Speicher 208 kann in Abhängigkeit von der jeweiligen Implementierung verschiedene Formen annehmen. Beispielsweise kann der dauerhafte Speicher 208 eine oder mehrere Einheiten umfassen. Bei dem dauerhaften Speicher 208 kann es sich zum Beispiel um ein Plattenlaufwerk, eine Halbleiter-Festplatte, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine Kombination daraus handeln. Die vom dauerhaften Speicher 208 verwendeten Medien können austauschbar sein. Beispielsweise kann für den dauerhaften Speicher 208 eine austauschbare Festplatte verwendet werden.
  • In diesem Beispiel speichert der dauerhafte Speicher 208 eine Migrationsverwaltungseinrichtung (migration manager) 218. Es sei jedoch darauf hingewiesen, dass, obwohl die Migrationsverwaltungseinrichtung 218 als im dauerhaften Speicher 208 befindlich dargestellt ist, die Migrationsverwaltungseinrichtung 218 in einer alternativen veranschaulichenden Ausführungsform eine separate Komponente des Datenverarbeitungssystems 200 sein kann. Zum Beispiel kann es sich bei der Migrationsverwaltungseinrichtung 218 um eine Hardware-Komponente handeln, die mit der Datenübertragungsstruktur 202 verbunden ist, oder eine Kombination aus Hardware- und Software-Komponenten. In einer anderen alternativen veranschaulichenden Ausführungsform kann sich ein erster Satz von Komponenten der Migrationsverwaltungseinrichtung 218 im Datenverarbeitungssystem 200 und ein zweiter Satz von Komponenten der Migrationsverwaltungseinrichtung 218 in einem zweiten Datenverarbeitungssystem befinden, beispielsweise im Server 106 in 1.
  • Die Migrationsverwaltungseinrichtung 218 steuert den Prozess eines Migrierens eines Satzes von Anwendungen, beispielsweise Kundenanwendungen 118 in 1, die einer bestimmten Kundenentität entsprechen, von einer Cloud-Anwendungsplattform, beispielsweise von der Cloud-Anwendungsplattform 112 in 1, auf eine Container-Orchestrierungsplattform, beispielsweise die Container-Orchestrierungsplattform 110 in 1, wobei während des Migrationsprozesses eine kontinuierliche Funktionsfähigkeit und Integrität des Satzes von Kundenanwendungen aufrechterhalten wird. Die Migrationsverwaltungseinrichtung 218 macht zunächst vorhandene Dienste des Satzes von Kundenanwendungen, die sich auf der Cloud-Anwendungsplattform befinden, für anfragende Benutzer von Client-Einheiten über die Container-Orchestrierungsplattform zugänglich und migriert anschließend den Satz von Kundenanwendungen auf die Container-Orchestrierungsplattform.
  • Die Migrationsverwaltungseinrichtung 218 ruft eine Anwendungsprogrammierschnittstellen- (API-) Verwaltungseinrichtung der Cloud-Anwendungsplattform auf, um den Kontext (z.B. Kennung, URL und dergleichen) jeder Kundenanwendung des von der Cloud-Anwendungsplattform gehosteten Satzes von Kundenanwendungen abzurufen und zu erhalten, die auf die Container-Orchestrierungsplattform migriert werden soll. Die Migrationsverwaltungseinrichtung 218 ruft anschließend einen API-Server der Container-Orchestrierungsplattform auf, um einen Dienst für den Satz von Kundenanwendungen zu erzeugen, der von der Cloud-Anwendungsplattform auf die Container-Orchestrierungsplattform migriert werden soll. Zwar wird der Begriff API-Server im Allgemeinen im Kubernetes-Paradigma verwendet, der hier verwendete Begriff ist jedoch nicht auf diese Umgebung beschränkt, sondern bezieht sich vielmehr auf jede Art von Komponente, die sowohl interne als auch externe Schnittstellen für die Container-Orchestrierungsplattform bereitstellen und einen Dienst für Kundenanwendungen erzeugen kann. Die Migrationsverwaltungseinrichtung 218 wählt außerdem einen Reverse-Proxy auf einem Arbeitsknoten der Container-Orchestrierungsplattform aus, der den Satz von Kundenanwendungen nach dem Migrieren ausführen soll, und aktualisiert eine Konfiguration des Reverse-Proxys mithilfe einer Konfigurationsübersicht, so dass der Reverse-Proxy Dienstverbindungen von der Container-Orchestrierungsplattform an die Cloud-Anwendungsplattform für nichtmigrierte Kundenanwendungen im Satz von Kundenanwendungen weiterleitet, bis alle Cloud-Anwendungen im Satz auf die Container-Orchestrierungsplattform migriert worden sind. Eine Konfigurationsübersicht bindet Konfigurationsdateien, Befehlszeilenargumente, Umgebungsvariablen, Anschlussnummern und andere Konfigurationsartefakte zur Laufzeit in die Container und Systemkomponenten eines Pods ein. Die Konfigurationsübersicht ermöglicht ein Trennen von Konfigurationen von Pods und Systemkomponenten, wodurch Arbeitslasten von Anwendungen portabel bleiben. Dies erleichtert ein Ändern und Verwalten ihrer Konfigurationen und verhindert ein Hartcodieren von Konfigurationsdaten in Pod-Spezifikationen.
  • Anschließend migriert oder implementiert die Migrationsverwaltungseinrichtung 218 den Satz von Kundenanwendungen von der Cloud-Anwendungsplattform nacheinander auf die Container-Orchestrationsplattform. Die Migrationsverwaltungseinrichtung 218 ruft den API-Verwaltungseinrichtung der Cloud-Anwendungsplattform auf, um einen Quellcode und ein vorhandenes Abbild einer Kundenanwendung im Satz von zu migrierenden Kundenanwendungen zu erhalten. Die Migrationsverwaltungseinrichtung 218 erstellt auf der Grundlage des empfangenen Quellcodes und/oder des vorhandenen Abbildes ein Abbild für die jeweilige Kundenanwendung. Die Migrationsverwaltungseinrichtung 218 verwendet das erstellte Abbild, um einen Pod auf dem Arbeitsknoten zu erzeugen, der die Arbeitslast dieser bestimmten Kundenanwendung ausführt, die auf die Container-Orchestrierungsplattform migriert wird. Die Migrationsverwaltungseinrichtung 218 entfernt sodann die relevanten Informationen, die dieser bestimmten Kundenanwendung entsprechen, aus der Konfigurationsübersicht des Reverse-Proxys, um den Reverse-Proxy daran zu hindern, in Reaktion auf ein Ausführen des Migrierens dieser bestimmten Kundenwendung Dienstverbindungen für diese bestimmte Kundenanwendung von der Container-Orchestrierungsplattform an die Cloud-Anwendungsplattform weiterzuleiten. Die Migrationsverwaltungseinrichtung 218 wiederholt anschließend den gleichen Prozess für die nächste Kundenanwendung im Satz von zu migrierenden Kundenanwendungen.
  • Infolgedessen arbeitet das Datenverarbeitungssystem 200 als ein Spezialcomputersystem, wobei die Migrationsverwaltungseinrichtung 218 im Datenverarbeitungssystem 200 das Migrieren von Kundenanwendungen von der Cloud-Anwendungsplattform auf die Container-Orchestrierungsplattform ermöglicht, wobei während des gesamten Migrationsprozesses eine kontinuierliche Funktionsfähigkeit und Integrität der Kundenanwendungen aufrechterhalten wird. Insbesondere verwandelt die Migrationsverwaltungseinrichtung 218 das Datenverarbeitungssystem 200 in ein Spezialcomputersystem im Vergleich zu derzeit verfügbaren allgemeinen Computersystemen, die nicht über die Migrationsverwaltungseinrichtung 218 verfügen.
  • Die Datenübertragungseinheit 210 stellt in diesem Beispiel einen Datenaustausch mit anderen Computern, Datenverarbeitungssystemen und Einheiten über ein Netzwerk wie etwa das Netzwerk 102 in 1 bereit. Die Datenübertragungseinheit 210 kann Datenaustauschvorgänge sowohl unter Verwenden von physischen als auch drahtlosen Kommunikationsverbindungen ermöglichen. Die physische Kommunikationsverbindung kann zum Beispiel ein Kabel, einen universellen seriellen Bus oder eine andere physische Technologie verwenden, um eine physische Kommunikationsverbindung für das Datenverarbeitungssystem 200 einzurichten. Die drahtlose Kommunikationsverbindung kann beispielsweise Kurzwelle, Hochfrequenz, Ultrahochfrequenz, Richtfunk, WLAN, Bluetooth®-Technologie, GSM-Mobilfunkstandard (Global System for Mobile Communications, GSM), Codemultiplexmehrfachzugriff (Code Division Multiple Access, CDMA), 2G, 3G, 4G, 4G-LTE (Long Term Evolution), LTE-Advanced, SG oder eine andere drahtlose Kommunikationstechnik oder einen anderen drahtlosen Kommunikationsstandard verwenden, um eine drahtlose Kommunikationsverbindung für das Datenverarbeitungssystem 200 einzurichten.
  • Die Ein/Ausgabe-Einheit 212 ermöglicht ein Eingeben und Ausgeben von Daten mit Hilfe von anderen Einheiten, die mit dem Datenverarbeitungssystem 200 verbunden werden können. Zum Beispiel kann die Ein/Ausgabe-Einheit 212 eine Verbindung für Benutzereingaben über ein Tastenfeld, eine Tastatur, eine Maus, ein Mikrofon und/oder eine andere geeignete Eingabeeinheit bereitstellen. Die Anzeige 214 stellt einen Mechanismus zum Anzeigen von Informationen für einen Benutzer bereit und kann beispielsweise einen berührungsempfindlichen Bildschirm umfassen, damit der Benutzer über Benutzerschnittstellen oder Eingabedaten Auswahlen auf dem Bildschirm treffen kann.
  • Anweisungen für das Betriebssystem, Anwendungen und/oder Programme können sich in Speichereinheiten 216 befinden, die über die Datenübertragungsstruktur 202 mit der Prozessoreinheit 204 Daten austauschen. In diesem veranschaulichenden Beispiel befinden sich die Anweisungen in funktionaler Form im dauerhaften Speicher 208. Diese Anweisungen können zum Ausführen durch die Prozessoreinheit 204 in den Speicher 206 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 unter Verwenden von durch einen Computer implementierten Anweisungen ausgeführt werden, die sich in einem Speicher befinden können, beispielsweise im Speicher 206. Diese Programmanweisungen werden als Programmcode, durch einen Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode bezeichnet, der von einem Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Die Programmanweisungen können in den verschiedenen Ausführungsformen in verschiedenen physischen durch einen Computer lesbaren Speichereinheiten, beispielsweise im Speicher 206 oder im dauerhaften Speicher 208, verkörpert sein.
  • Ein Programmcode 220 befindet sich in einer funktionalen Form auf einem durch einen Computer lesbaren Medium 222, das selektiv austauschbar ist und in das Datenverarbeitungssystem 200 geladen oder dorthin übertragen werden kann, um von der Prozessoreinheit 204 ausgeführt zu werden. Der Programmcode 220 und die durch einen Computer lesbaren Medien 222 bilden ein Computerprogrammprodukt 224. In einem Beispiel kann es sich bei den durch einen Computer lesbaren Medien 222 um durch einen Computer lesbare Speichermedien 226 oder durch einen Computer lesbare Signalmedien 228 handeln.
  • In diesen veranschaulichenden Beispielen handelt es sich bei den durch einen Computer lesbaren Speichermedien 226 um eine physische oder greifbare Speichereinheit, die zum Speichern von Programmcode 220 verwendet wird, und nicht um ein Medium, das Programmcode 220 verbreitet oder überträgt. Zu den durch einen Computer lesbaren Speichermedien 226 kann beispielsweise eine optische oder magnetische Platte gehören, die zum Übertragen auf eine Speichereinheit wie etwa eine Festplatte, die Teil des dauerhaften Speichers 208 ist, in ein Laufwerk oder eine andere Einheit, die Teil des dauerhaften Speichers 208 ist, eingelegt wird. Die durch einen Computer lesbaren Speichermedien 226 können auch in Form eines dauerhaften Speichers vorliegen, beispielsweise eine Festplatte, ein Speicherstick oder ein Flash-Speicher, der mit dem Datenverarbeitungssystem 200 verbunden ist.
  • Alternativ kann der Programmcode 220 über durch einen Computer lesbare Signalmedien 228 an das Datenverarbeitungssystem 200 übertragen werden. Bei den durch einen Computer lesbaren Signalmedien 228 kann es sich beispielsweise um ein übertragenes Datensignal handeln, das den Programmcode 220 enthält. Bei den durch einen Computer lesbaren Signalmedien 228 kann es sich zum Beispiel um ein elektromagnetisches Signal, ein optisches Signal oder eine andere geeignete Signalart handeln. Diese Signale können über Kommunikationsverbindungen übertragen werden, beispielsweise über drahtlose Kommunikationsverbindungen, ein Lichtwellenleiterkabel, ein Koaxialkabel, einen Draht oder jede andere geeignete Art von Kommunikationsverbindung.
  • Wie hierin verwendet, können „durch einen Computer lesbare Medien 222“ außerdem in der Einzahl oder in der Mehrzahl vorliegen. Beispielsweise kann sich der Programmcode 220 auf durch einen Computer lesbaren Medien 222 in Form einer einzigen Speichereinheit oder eines einzigen Speichersystems befinden. In einem anderen Beispiel kann sich der Programmcode 220 in durch einen Computer lesbaren Medien 222 befinden, die auf mehrere Datenverarbeitungssysteme verteilt sind. Mit anderen Worten, einige Anweisungen im Programmcode 220 können sich in einem Datenverarbeitungssystem befinden, während sich andere Anweisungen im Programmcode 220 in einem oder mehreren anderen Datenverarbeitungssystemen befinden können. Beispielsweise kann sich ein Teil des Programmcodes 220 in durch einen Computer lesbaren Medien 222 in einem Server-Computer befinden, während sich ein anderer Teil des Programmcodes 220 in durch einen Computer lesbaren Medien 222 in einem Satz von Client-Computern befinden kann.
  • Die verschiedenen für das Datenverarbeitungssystem 200 veranschaulichten Komponenten sollen keine architektonischen Einschränkungen für die Art und Weise bedeuten, in der verschiedene Ausführungsformen implementiert werden können. In einigen veranschaulichenden Beispielen können eine oder mehrere der Komponenten in eine andere Komponente integriert sein oder auf andere Weise einen Teil einer anderen Komponente bilden. Zum Beispiel kann der Speicher 206 oder Teile davon in einigen veranschaulichenden Beispielen in die Prozessoreinheit 204 integriert sein. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem implementiert werden, das Komponenten zusätzlich zu den für das Datenverarbeitungssystem 200 dargestellten oder anstelle von diesen umfasst. Andere in 2 gezeigte Komponenten können von den gezeigten veranschaulichenden Beispielen abweichen. Die verschiedenen Ausführungsformen können unter Verwenden einer beliebigen Hardware-Einheit oder eines beliebigen Hardware-Systems implementiert werden, die/das in der Lage ist, den Programmcode 220 auszuführen.
  • In einem anderen Beispiel kann ein Bussystem verwendet werden, um die Datenübertragungsstruktur 202 zu implementieren, und dieses kann aus einem oder mehreren Bussen bestehen, beispielsweise aus einem Systembus oder einem Ein/Ausgabe-Bus. Selbstverständlich kann das Bussystem unter Verwenden von jeder geeigneten Art von Architektur implementiert werden, die ein Übertragen von Daten zwischen verschiedenen Komponenten oder Einheiten ermöglicht, die mit dem Bussystem verbunden sind.
  • Zwar umfasst diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing, es sollte jedoch klar sein, dass Implementierungen der hier wiedergegebenen Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt sind. Vielmehr können veranschaulichende Ausführungsformen in Verbindung mit jeder anderen Art von gegenwärtig bekannter oder zu einem späteren Zeitpunkt entwickelter Datenverarbeitungsumgebung implementiert werden. Cloud-Computing ist ein Dienstleistungsmodell, das einen problemlosen bedarfsgesteuerten Netzwerkzugang zu einem gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungs-Ressourcen (beispielsweise Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speicherplatz, Anwendungen, virtuelle Maschinen (VM) 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 Charakteristika, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle umfassen.
  • Die Charakteristika können beispielsweise bedarfsorientierte Selbstbedienung (on-demand self-service), allgemeiner Netzzugriff (broad network access), Ressourcen-Bündelung (resource pooling) schnelle Anpassungsfähigkeit (rapid elasticity) und Dienst für nutzungsabhängige Abrechnung (measured service) umfassen. Bedarfsorientierte Selbstbedienung ermöglicht einem Cloud-Kunden, einseitig Datenverarbeitungs-Ressourcen wie Server-Zeit und Netzspeicher je nach Bedarf und automatisch in Anspruch nehmen, ohne dass eine menschengeführte Interaktion mit dem Anbieter des Dienstes erforderlich ist. Allgemeiner Netzzugriff stellt Ressourcen bereit, die über ein Netzwerk verfügbar und über Standardmechanismen zugänglich sind, die eine Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (zum Beispiel Mobiltelefone, Laptops und elektronische Assistenten (personal digital assistants, PDAs)) unterstützen. Ressourcen-Bündelung stellt eine Bündelung der Datenverarbeitungs-Ressourcen des Anbieters bereit, um mehreren Kunden zu dienen, wobei ein Multi-Tenant-Modell verwendet wird, bei dem verschiedene physische und virtuelle Ressourcen entsprechend dem Bedarf dynamisch zugewiesen und erneut zugewiesen werden. Es besteht insofern eine gewisse Unabhängigkeit vom Standort, als der Kunde im Allgemeinen keine Kontrolle über den bzw. Kenntnis vom genauen Standort der bereitgestellten Ressourcen hat, den Standort jedoch auf einer höheren Abstraktionsebene (zum Beispiel Region, Staat oder Datenzentrum) festlegen kann. Schnelle Anpassungsfähigkeit sorgt dafür, dass Ressourcen rasch und anpassungsfähig, in einigen Fällen automatisch, bereitgestellt werden, um schnell eine Erweiterungsmöglichkeit (scale out) zu bieten, und rasch wieder freigegeben werden, wodurch eine schnelle Reduzierung (scale in) geboten wird. Aus Sicht des Kunden scheinen die zur Bereitstellung verfügbaren Ressourcen oftmals unbegrenzt zu sein und können in beliebiger Menge zu einem beliebigen Zeitpunkt erworben werden. Dienst für nutzungsabhängige Abrechnung ermöglicht es Cloud-Systemen, die Ressourcen-Nutzung automatisch durch Einsatz einer Messfunktion auf einer Abstraktionsebene steuern und optimieren, die für den Typ des Dienstes (zum Beispiel Speicherplatz, Verarbeitung, Bandbreite sowie aktive Kundenkonten) geeignet ist. Die Ressourcen-Nutzung kann überwacht, gesteuert und aufgezeichnet werden, wobei sowohl für den Anbieter als auch für den Abnehmer des verwendeten Dienstes Transparenz gegeben ist.
  • Die Dienstmodelle können beispielsweise Software als Dienstleistung (Software as a Service, SaaS), Plattform als Dienstleistung (Platform as a Service, PaaS) und Infrastruktur als Dienstleistung (Infrastructure as a Service, laaS) umfassen. Software als Dienstleistung ist die für den Kunden bereitgestellte Funktionalität, die in der Fähigkeit zur Nutzung der in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters besteht. Auf die Anwendungen kann von verschiedenen Client-Einheiten durch eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) zugegriffen werden. Der Kunde verwaltet bzw. steuert nicht die zugrundeliegende Cloud-Infrastruktur, darunter Netzwerk, Server, Betriebssysteme, Speicherplatz oder sogar einzelne Anwendungsmöglichkeiten, mit der möglichen Ausnahme begrenzter benutzerspezifischer Anwendungskonfigurationseinstellungen. Plattform als Dienstleistung ist die für den Kunden bereitgestellte Funktionalität, die in der Fähigkeit zur Verwendung von vom Kunden erstellten oder angeforderten Anwendungen besteht, die unter Verwenden von vom Anbieter unterstützten Programmiersprachen und Hilfsprogrammen erzeugt werden, in der Cloud-Infrastruktur. Der Kunde verwaltet oder steuert nicht die zugrundeliegende Cloud-Infrastruktur, darunter Netze, Server, Betriebssysteme oder Speicherplatz, hat jedoch die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendung. Infrastruktur als Dienstleistung ist die für den Kunden bereitgestellte Funktionalität, die in der Fähigkeit zur Bereitstellung von Datenverarbeitung, Speicherplatz, Netzwerken und anderen grundlegenden Datenverarbeitungs-Ressourcen besteht, wobei der Kunde eine beliebige Software einsetzen und ausführen kann, die Betriebssysteme und Anwendungen umfassen kann. Der Kunde verwaltet oder steuert nicht die zugrundeliegende Cloud-Infrastruktur, hat jedoch die Kontrolle über Betriebssysteme, Speicherplatz, eingesetzte Anwendungen und möglicherweise eine begrenzte Kontrolle über die Auswahl von Netzwerkkomponenten (zum Beispiel Host-Firewalls).
  • Die Einsatzmodelle können beispielsweise eine private Cloud (private cloud), eine gemeinschaftliche Cloud (community cloud), eine öffentliche Cloud (public cloud) und eine kombinierte Cloud (hybrid cloud) umfassen. Eine private Cloud ist eine Cloud-Infrastruktur, die wird einzig und allein für eine Organisation betrieben. Die private Cloud kann durch die Organisation selbst oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden. Eine gemeinschaftliche Cloud ist eine Cloud-Infrastruktur, die wird von mehreren Organisationen gemeinsam genutzt wird und eine spezielle Benutzergemeinschaft mit gemeinsamen Interessen (zum Beispiel Zielsetzung, Sicherheitsanforderungen, Strategie- und Konformitätsüberlegungen) unterstützt. Die gemeinschaftliche Cloud kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder fremden Räumen befinden. Eine öffentliche Cloud ist eine Cloud-Infrastruktur, die der Allgemeinheit oder einer großen Industriegruppe zur Verfügung gestellt wird und im Besitz einer Organisation ist, die Cloud-Dienste verkauft. Eine kombinierte Cloud ist eine Cloud-Infrastruktur, die sich aus zwei oder mehreren Clouds (zum Beispiel privat, gemeinschaftlich und öffentlich) zusammensetzt, die eigenständige Einheiten bleiben, jedoch durch eine standardisierte oder firmeneigene Technologie, die die Übertragbarkeit von Daten und Anwendungen ermöglicht, miteinander verbunden sind (zum Beispiel Cloud-Zielgruppenverteilung für eine Auslastungsverteilung zwischen Clouds.
  • Eine Cloud-Computing-Umgebung ist dienstleistungsorientiert mit Fokus auf Statusunabhängigkeit, loser Kopplung, Modularität und semantischer Interoperabilität. Den Kern des Cloud-Computing bildet eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten aufweist.
  • Unter Bezugnahme auf 3 wird nun eine Darstellung gezeigt, die eine Cloud-Computing-Umgebung veranschaulicht, in der veranschaulichende Ausführungsformen implementiert werden können. In diesem veranschaulichenden Beispiel umfasst eine Cloud-Computing-Umgebung 300 einen Satz von einem oder mehreren Cloud-Computing-Knoten 310, mit denen von Cloud-Kunden verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Smartphone 320A, der Desktop-Computer 320B, der Laptop-Computer 320C und/oder das Automobil-Computer-System 320N Daten austauschen können. Bei den Cloud-Computing-Knoten 310 kann es sich zum Beispiel um den Server 104 und den Server 106 in 1 handeln. Bei den lokalen Datenverarbeitungseinheiten 320A bis 320N kann es sich beispielsweise um die Clients 120 und 122 in 1 handeln.
  • Die Cloud-Computing-Knoten 310 können miteinander Daten austauschen und können physisch oder virtuell in ein oder mehrere Netzwerke wie private, gemeinschaftliche, öffentliche oder kombinierte Clouds gruppiert werden, wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 300, Infrastruktur, Plattformen und/oder Software als Dienstleistung anzubieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit, beispielsweise auf den lokalen Datenverarbeitungseinheiten 320A bis 320N, vorhalten muss. Es versteht sich von selbst, dass die Arten von lokalen Datenverarbeitungseinheiten 3204A bis 320N lediglich veranschaulichend sein sollen und dass die Cloud-Computing-Knoten 310 und die die Cloud-Computing-Umgebung 300 über eine beliebige Art von Netzwerk und/oder eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung beispielsweise unter Verwenden eines Web-Browser) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 4 wird nun eine Darstellung gezeigt, die einen Satz von funktionalen Abstraktionsschichten gemäß einer veranschaulichenden Ausführungsform zeigt. Der in diesem veranschaulichenden Beispiel gezeigte Satz von funktionalen Abstraktionsschichten kann von einer Cloud-Computing-Umgebung wie etwa der Cloud-Computing-Umgebung 300 in 3 bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 4 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt.
  • Zu den Abstraktionsschichten einer Cloud-Computing-Umgebung 400 gehören eine Hardware- und Software-Schicht (hardware and software layer) 402, eine Virtualisierungsschicht (virtualization layer) 404, eine Verwaltungsschicht (management layer) 406 und eine Arbeitslastenschicht (workloads layer) 408. Die Hardware- und Software-Schicht 402 umfasst die Hardware- und Software-Komponenten der Cloud-Computing-Umgebung. Zu den Hardware-Komponenten gehören beispielsweise Mainframe-Computer 410, auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 412, Server 414, Blade-Server 416, Speichereinheiten 418 und Netzwerke sowie Netzwerkkomponenten 420. In einigen veranschaulichenden Ausführungsformen umfassen Software-Komponenten beispielsweise eine Netzwerk-Anwendungsserver-Software 422 und eine Datenbank-Software 424.
  • Die Virtualisierungsschicht 404 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 426; virtueller Speicher 428; virtuelle Netzwerke 430, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 432; und virtuelle Clients 434.
  • In einem Beispiel kann eine Verwaltungsschicht 404 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcen-Versorgung (resource provisioning) 436 stellt dynamisches Beschaffen von Datenverarbeitungs-Ressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Die Gebührenerfassung und Preisermittlung (metering and pricing) 438 stellt eine Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftware-Lizenzen aufweisen. Die Sicherheit (security) stellt eine Identitätsüberprüfung für Cloud-Kunden und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Das Kundenportal 440 stellt den Zugang zu der Cloud-Computing-Umgebung für Nutzer und für Systemadministratoren bereit. Die Dienstgüteverwaltung (service level management) 442 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die Anforderungen an die Dienstgüte erfüllt werden. Die Planung und Erfüllung der Dienstgütevereinbarung (SLA, Service Level Agreement planning and fulfillment) 444 stellt die Vorbereitung für und die Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß einer SLA ein künftiger Bedarf vorausgesehen wird.
  • Die Arbeitslastenschicht 408 stellt Beispiele einer Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von der Arbeitslastenschicht 408 bereitgestellt werden können, können Abbildung und Navigation 446, Software-Entwicklung und Lebenszyklusverwaltung 448, virtuelles Klassenzimmer 450 als Bildungsangebot, Datenanalyseverarbeitung 452, Transaktionsverarbeitung 454 und eine Anwendungsmigrationsverwaltung 456 gehören.
  • Unter Bezugnahme auf 5 wird nun eine Darstellung gezeigt, die ein Beispiel für ein System zum Verwalten eines Migrierens von Anwendungen gemäß einer veranschaulichenden Ausführungsform zeigt. Ein System 500 zum Verwalten eines Migrierens von Anwendungen kann in einem Netzwerk von Datenverarbeitungssystemen, beispielsweise Netzwerk-Datenverarbeitungssystem 100 in 1, oder einer Cloud-Computing-Umgebung, beispielsweise Cloud-Computing-Umgebung 300 in 3, implementiert werden. Bei dem System 500 zum Verwalten eines Migrierens von Anwendungen handelt es sich um ein System aus Hardware- und Software-Komponenten zum Migrieren eines Satzes von einer Kundenentität entsprechenden Anwendungen von einer Cloud-Anwendungsplattform auf eine Container-Orchestrierungsplattform, wobei während des gesamten Migrationsprozesses eine kontinuierliche Funktionsfähigkeit und Integrität des Satzes von Anwendungen der Kundenentität aufrechterhalten wird.
  • In diesem Beispiel umfasst das System 500 zum Verwalten eines Migrierens von Anwendungen einen Migrationsverwaltungsserver 502, eine Cloud-Anwendungsplattform 504, eine Container-Orchestrierungsplattform 506 und einen Client 508. Bei dem Migrationsverwaltungsserver 502 kann es sich beispielsweise um den Server 104 in 1, das Datenverarbeitungssystem 200 in 2 oder einen Cloud-Computing-Knoten der Cloud Computing-Knoten 310 in 3 handeln. Der Migrationsverwaltungsserver 502 umfasst eine Migrationsverwaltungseinrichtung 510 wie beispielsweise die Migrationsverwaltungseinrichtung 218 in 2. Die Migrationsverwaltungseinrichtung 510 steuert den Prozess eines Migrierens von Anwendungen von einer Datenverarbeitungsplattform, -architektur oder -umgebung auf eine andere.
  • Ein Systemadministrator 512 leitet den Prozess des Migrierens von Anwendungen unter Verwenden der Migrationsverwaltungseinrichtung 510 ein. In Reaktion darauf ruft die Migrationsverwaltungseinrichtung 510 eine API-Verwaltungseinrichtung 514 auf, um die Kennung und die URL jeder Kundenanwendung in Kundenanwendungen 516 zu erhalten. Bei den Kundenanwendungen 516 kann es sich zum Beispiel um die Kundenanwendungen 118 in 1 handeln. Die Kundenanwendungen 516 stellen einen Satz von Kundenanwendungen dar, die einer bestimmten Kundenentität entsprechen, die die Kundenanwendungen 516 von der Cloud-Anwendungsplattform 504 auf die Container-Orchestrierungsplattform 506 migrieren möchte. Bei der Cloud-Anwendungsplattform 504 und der Container-Orchestrierungsplattform 506 kann es sich beispielsweise um die Cloud-Anwendungsplattform 112 bzw. die Container-Orchestrierungsplattform 110 in 1 handeln.
  • Nach Erhalten der Kennung und der URL jeder Kundenanwendung in den Kundenanwendungen 516 ruft die Migrationsverwaltungseinrichtung 510 einen API-Server 518 auf einem Steuerknoten 520 der Container-Orchestrierungsplattform 506 auf, um einen Dienst 522 zu erzeugen, der den Kundenanwendungen 516 auf einem Arbeitsknoten 524 der Container-Orchestrierungsplattform 506 entspricht, wobei die Kennung und die URL jeder Kundenanwendung in den Kundenanwendungen 516 verwendet werden. Bei dem Steuerknoten 520 und dem Arbeitsknoten 524 kann es sich zum Beispiel um den Steuerknoten 114 bzw. einen Arbeitsknoten der Arbeitsknoten 116 in 1 handeln.
  • Neben dem API-Server 518 umfasst der Steuerknoten 520 auch einen Datenspeicher 526, eine Planungseinrichtung (scheduler) 528 und eine Steuereinheit 530, die die Steuerungsebene des Steuerknotens 520 bilden. Der Datenspeicher 526 enthält Konfigurationsdaten einer Gruppe von Arbeitsknoten, zu der auch der Arbeitsknoten 524 gehört, der den Gesamtzustand der Gruppe zu jedem beliebigen Zeitpunkt darstellt. Der API-Server 518 stellt interne und externe Schnittstellen für den Steuerknoten 520 bereit. Der API-Server 518 verarbeitet und überprüft Anfragen zur Verfügbarkeit von Ressourcen und aktualisiert den Status von API-Objekten im Datenspeicher 526, so dass Kundenentitäten Arbeitslasten und Container über Arbeitsknoten in der Gruppe konfigurieren können. Die Planungseinrichtung 528 wählt auf der Grundlage der Ressourcenverfügbarkeit von jeweiligen Arbeitsknoten aus, auf welchem Arbeitsknoten ein ungeplanter Pod ausgeführt wird. Bei einem Pod handelt es sich um die von der Planungseinrichtung 528 verwaltete Grundeinheit. Die Planungseinrichtung 528 verfolgt die Ressourcennutzung auf jedem Arbeitsknoten, um sicherzustellen, dass eine Arbeitslast nicht über verfügbare Ressourcen hinaus geplant wird. Die Steuereinheit 530 steuert in einer Abstimmungsschleife den tatsächlichen Status einer Gruppe in Richtung des gewünschten Status einer Gruppe und tauscht mit dem API-Server 518 Daten aus, um die von der Steuereinheit 530 verwalteten Ressourcen (z.B. Pods, Dienstendpunkte und dergleichen) zu erstellen, zu aktualisieren und zu löschen.
  • Darüber hinaus ruft die Migrationsverwaltungseinrichtung 510 den API-Server 518 auf, um eine Konfigurationsübersicht eines Reverse-Proxys 532 auf dem Arbeitsknoten 524 zu aktualisieren, um den Reverse-Proxy 532 zu veranlassen, von einem Benutzer 538 über den Client 508 empfangene Anforderungen für den Dienst 522, der nichtmigrierten Kundenanwendungen der Kundenanwendungen 516 entspricht, von der Container-Orchestrierungsplattform 506 an die Cloud-Anwendungsplattform 504 weiterzuleiten, um eine Funktionsfähigkeit und Integrität der nichtmigrierten Kundenanwendungen während eines Migrierens der Kundenanwendungen 516 aufrechtzuerhalten. Der Benutzer 538 kann eine Mehrzahl von verschiedenen Benutzern darstellen, die den Dienst 522 anfordern. Bei dem Client 508 kann es sich zum Beispiel um den Client 120 in 1 handeln.
  • Anschließend beginnt die Migrationsverwaltungseinrichtung 510 damit, die Kundenanwendungen 516 nacheinander auf die Container-Orchestrationsplattform 506 zu migrieren. Die Migrationsverwaltungseinrichtung 510 ruft die API-Verwaltungseinrichtung 514 auf, um den Quellcode und ein vorhandenes Abbild einer Kundenanwendung in den Kundenanwendungen 516 zu erhalten. Darüber hinaus ruft die Migrationsverwaltungseinrichtung 510 den API-Server 518 auf, um auf der Grundlage des erhaltenen Quellcodes und/oder des vorhandenen Abbilds dieser Kundenanwendung ein neues Abbild für diese Kundenanwendung zu erstellen.
  • Die Migrationsverwaltungseinrichtung 510 ruft sodann den API-Server 518 auf, um auf dem Arbeitsknoten 524 einen Pod 534 zu erzeugen, um eine dieser Kundenanwendung (d.h. der Kundenanwendung 536) entsprechende Arbeitslast unter Verwenden des neu erstellten Abbilds für die Kundenanwendung 536 auszuführen. Die Kundenanwendung 536 stellt eine migrierte Kundenanwendung der Kundenanwendungen 516 dar. Außerdem ruft die Migrationsverwaltungseinrichtung 510 den API-Server 518 auf, um den Dienst 522 zu aktualisieren, um den Pod 534 auszuwählen, der die Arbeitslast der Kundenanwendung 536 ausführt. Darüber hinaus ruft die Migrationsverwaltungseinrichtung 510 den API-Server 518 auf, um die Konfigurationsübersicht des Reverse-Proxys 532 zu aktualisieren, indem Informationen (z.B. Bezeichnungen), die der Kundenanwendung 536 entsprechen, aus der Konfigurationsübersicht entfernt werden, um den Reverse-Proxy 532 daran zu hindern, Dienstanforderungen weiterzuleiten, die vom Benutzer 538 über den Client 508 für den der Kundenanwendung 536 entsprechenden Dienst 522 empfangen wurden, da die Kundenanwendung 536 auf die Container-Orchestrierungsplattform 506 migriert wurde. Darüber hinaus ruft die Migrationsverwaltungseinrichtung 510 die API-Verwaltungseinrichtung 514 auf, um die Kundenanwendung 536 aus den Kundenanwendungen 516 zu löschen, nachdem das Migrieren der Kundenanwendung 536 auf die Container-Orchestrierungsplattform 506 abgeschlossen wurde.
  • Anschließend ermittelt die Migrationsverwaltungseinrichtung 510, ob noch weitere Kundenanwendungen 516 von der Cloud-Anwendungsplattform 504 auf die Container-Orchestrierungsplattform 506 migriert werden müssen. Wenn noch weitere Kundenanwendungen migriert werden müssen, wählt die Migrationsverwaltungseinrichtung 510 eine weitere Kundenanwendung 516 zum Migrieren aus und führt den gleichen Prozess wie oben für jede zu migrierende Kundenanwendung aus. Nach Ausführen des Migrierens aller Kundenanwendungen 516 auf die Container-Orchestrierungsplattform 506 beendet die Migrationsverwaltungseinrichtung 510 den Migrationsprozess.
  • Infolgedessen ermöglichen veranschaulichende Ausführungsformen ein Migrieren eines Satzes von Kundenanwendungen mit kontinuierlicher Funktionsfähigkeit und Integrität jeder Kundenanwendung im Satz von Kundenanwendungen während des Migrationsprozesses, auch wenn sich die Zeitspanne für das Migrieren aller Kundenanwendungen im Satz in die Länge zieht. Mit anderen Worten, ein Benutzer, der einen Dienst anfordert, der von einer der Kundenanwendungen in dem zu migrierenden Satz bereitgestellt wird, wird während des Migrationsprozesses keine Unterbrechung des Dienstes erfahren. Darüber hinaus ist es bei den veranschaulichenden Ausführungsformen nicht erforderlich, dass Kundenentitäten Änderungen an den Einstellungen der Cloud-Anwendungsplattform vornehmen. Ferner benötigen veranschaulichende Ausführungsformen in der Container-Orchestrationsplattform nur eine minimale Anzahl von Ressourcen, um während des Migrationsprozesses ein Weiterleiten des Datenverkehrs für nichtmigrierte Kundenanwendungen im Satz zu gewährleisten.
  • Auf diese Weise stellen veranschaulichende Ausführungsformen eine oder mehrere technische Lösungen bereit, die ein technisches Problem beim Aufrechterhalten von Funktionsfähigkeit und Integrität von Anwendungen während des Migrierens von einer Datenverarbeitungsplattform, -infrastruktur oder -umgebung auf eine andere ohne Dienstunterbrechung für anfragende Benutzer lösen. Infolgedessen stellen diese eine oder mehrere technische Lösungen eine technische Auswirkung und eine praktische Anwendung auf dem Gebiet der Anwendungsmigration bereit.
  • Unter Bezugnahme auf die 6A bis 68 wird nun ein Ablaufplan gezeigt, der einen Prozess zum Verwalten eines Migrierens von Kundenanwendungen von einer Cloud-Anwendungsplattform auf eine Container-Orchestrierungsplattform gemäß einer veranschaulichenden Ausführungsform darstellt. Der in den 6A bis 6B gezeigte Prozess kann in einem Computer implementiert werden, beispielsweise im Server 104 in 1, im Datenverarbeitungssystem 200 in 2, in einem Cloud-Computing-Knoten der Cloud-Computing-Knoten 310 in 3 oder im Migrationsverwaltungsserver 502 in 5. Beispielsweise kann der in den 6A bis 6B gezeigte Prozess in der Migrationsverwaltungseinrichtung 218 in 2 oder in der Migrationsverwaltungseinrichtung 510 in 5 implementiert werden.
  • Der Prozess beginnt, wenn der Computer eine Eingabe von einem Systemadministrator empfängt, die ein Migrieren eines Satzes von Kundenanwendungen von einer Cloud-Anwendungsplattform auf eine Container-Orchestrierungsplattform unter Verwenden einer Migrationsverwaltungseinrichtung einleitet (Schritt 602). Als Reaktion auf das Empfangen der Eingabe ruft der Computer unter Verwenden der Migrationsverwaltungseinrichtung eine API-Verwaltungseinrichtung der Cloud-Anwendungsplattform auf, um eine Kennung und eine URL zu erhalten, die jeder jeweiligen Kundenanwendung im Satz von Kundenanwendungen entsprechen, die auf die Container-Orchestrierungsplattform migriert werden sollen (Schritt 604). Anschließend empfängt der Computer unter Verwenden der Migrationsverwaltungseinrichtung die Kennung und die URL, die jeder jeweiligen Kundenanwendung im Satz von Kundenanwendungen entsprechen, von der API-Verwaltungseinrichtung der Cloud-Anwendungsplattform (Schritt 606).
  • Der Computer ruft unter Verwenden der Migrationsverwaltungseinrichtung einen API-Server auf einem Steuerknoten der Container-Orchestrierungsplattform auf, um einen Dienst zu erzeugen, der dem Satz von Kundenanwendungen auf einem Arbeitsknoten der Container-Orchestrierungsplattform entspricht, wobei er die Kennung und die URL jeder jeweiligen Kundenanwendung verwendet (Schritt 608). Darüber hinaus ruft der Computer unter Verwenden der Migrationsverwaltungseinrichtung den API-Server auf dem Steuerknoten auf, um eine Konfigurationsübersicht eines Reverse-Proxys auf dem Arbeitsknoten zu aktualisieren, damit der Reverse-Proxy Benutzerdienstanforderungen, die nichtmigrierten Kundenanwendungen des Satzes von Kundenanwendungen entsprechen, von der Container-Orchestrierungsplattform an die Cloud-Anwendungsplattform leitet, um während des Migrierens des Satzes von Kundenanwendungen von der Cloud-Anwendungsplattform auf die Container-Orchestrierungsplattform eine kontinuierliche Funktionsfähigkeit und Integrität der nichtmigrierten Kundenanwendungen aufrechtzuerhalten (Schritt 610).
  • Außerdem wählt der Computer unter Verwenden der Migrationsverwaltungseinrichtung eine Kundenanwendung im Satz von Kundenanwendungen zum Migrieren von der Cloud-Anwendungsplattform auf die Container-Orchestrierungsplattform aus (Schritt 612). Der Computer ruft unter Verwenden der Migrationsverwaltungseinrichtung die API-Verwaltungseinrichtung der Cloud-Anwendungsplattform auf, um einen Quellcode und ein vorhandenes Abbild der Kundenanwendung zu erhalten (Schritt 614). Anschließend empfängt der Computer unter Verwenden der Migrationsverwaltungseinrichtung den Quellcode und das vorhandene Abbild der Kundenanwendung von der API- Verwaltungseinrichtung der Cloud-Anwendungsplattform (Schritt 616).
  • Der Computer ruft unter Verwenden der Migrationsverwaltungseinrichtung den API-Server auf dem Steuerknoten auf, um auf der Grundlage des Quellcodes und/oder des vorhandenen Abbilds der Kundenanwendung, die von der API-Verwaltungseinrichtung der Cloud-Anwendungsplattform empfangen wurden, ein Abbild für die Kundenanwendung zu erstellen (Schritt 618). Außerdem ruft der Computer unter Verwenden der Migrationsverwaltungseinrichtung den API-Server auf dem Steuerknoten auf, um einen Pod auf dem Arbeitsknoten zu erzeugen, um eine Arbeitslast der Kundenanwendung unter Verwenden des Abbilds der Kundenanwendung auszuführen (Schritt 620). Darüber hinaus ruft der Computer unter Verwenden der Migrationsverwaltungseinrichtung den API-Server auf dem Steuerknoten auf, um den Dienst auf dem Arbeitsknoten zu aktualisieren, um den Pod auf dem Arbeitsknoten auszuwählen, der die Arbeitslast der Kundenanwendung ausführt, um ein Migrieren der Kundenanwendung von der Cloud-Anwendungsplattform auf die Container-Orchestrierungsplattform durchzuführen (Schritt 622).
  • Darüber hinaus ruft der Computer unter Verwenden der Migrationsverwaltungseinrichtung den API-Server auf dem Steuerknoten auf, um die Konfigurationsübersicht des Reverse-Proxys auf dem Arbeitsknoten zu aktualisieren, indem er der Kundenanwendung entsprechende Informationen aus der Konfigurationsübersicht entfernt, um den Reverse-Proxy daran zu hindern, während des Migrierens des Satzes von Kundenanwendungen Benutzerdienstanforderungen, die der Kundenanwendung entsprechen, von der Container-Orchestrierungsplattform an die Cloud-Anwendungsplattform zu leiten, da die Kundenanwendung migriert wurde (Schritt 624). Außerdem ruft der Computer unter Verwenden der Migrationsverwaltungseinrichtung die API-Verwaltungseinrichtung auf der Cloud-Anwendungsplattform auf, um die Kundenanwendung aus dem Satz von Kundenanwendungen auf der Cloud-Anwendungsplattform zu löschen (Schritt 626).
  • Anschließend ermittelt der Computer unter Verwenden der Migrationsverwaltungseinrichtung, ob eine weitere Kundenanwendung im Satz von zu migrierenden Kundenanwendungen vorhanden ist (Schritt 628). Wenn der Computer unter Verwenden der Migrationsverwaltungseinrichtung feststellt, dass eine weitere Kundenanwendung im Satz von zu migrierenden Kundenanwendungen vorhanden ist, Ja-Ausgabe von Schritt 628, kehrt der Prozess zu Schritt 612 zurück, in dem der Computer unter Verwenden der Migrationsverwaltungseinrichtung eine weitere Kundenanwendung aus dem Satz von zu migrierenden Kundenanwendungen auswählt. Wenn der Computer unter Verwenden der Migrationsverwaltungseinrichtung feststellt, dass keine weitere Kundenanwendung im Satz von zu migrierenden Kundenanwendungen vorhanden ist, Nein-Ausgabe von Schritt 628, endet der Prozess anschließend.
  • Daher stellen veranschaulichende Ausführungsformen der vorliegenden Erfindung ein durch einen Computer implementiertes Verfahren, ein Computersystem und ein Computerprogrammprodukt zum Migrieren eines Satzes von Anwendungen, die einer Kundenentität entsprechen, von einer Cloud-Anwendungsplattform auf eine Container-Orchestrierungsplattform bereit, wobei während des Migrationsprozesses eine kontinuierliche Funktionsfähigkeit und Integrität des Satzes von Kundenentitätsanwendungen aufrechterhalten wird. Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung dienen der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Änderungen sind für Fachleute offensichtlich, ohne vom Schutzumfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt befindlichen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hier offenbarten Ausführungsformen zu verstehen.

Claims (20)

  1. Durch einen Computer implementiertes Verfahren zum Verwalten eines Migrierens von Anwendungen, wobei das durch einen Computer implementierte Verfahren umfasst: Aufrufen eines Anwendungsprogrammierschnittstellen- (API-) Servers auf einem Steuerknoten einer ersten Datenverarbeitungsplattform durch einen Computer, um eine Konfigurationsübersicht eines Reverse-Proxys auf einem Arbeitsknoten der ersten Datenverarbeitungsplattform zu aktualisieren, damit der Reverse-Proxy Benutzerdienstanforderungen, die nichtmigrierten Anwendungen eines Satzes von Anwendungen entsprechen, von der ersten Datenverarbeitungsplattform an eine zweite Datenverarbeitungsplattform leitet, um eine Funktionsfähigkeit der nichtmigrierten Anwendungen während eines Migrierens des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform aufrechtzuerhalten; Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um auf der Grundlage eines von der zweiten Datenverarbeitungsplattform erhaltenen Quellcodes der Anwendung ein Abbild für eine auf die erste Datenverarbeitungsplattform zu migrierende Anwendung des Satzes von Anwendungen auf der zweiten Datenverarbeitungsplattform zu erstellen; Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um einen Pod auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform zu erzeugen, um unter Verwenden des durch den API-Server erstellten Abbildes der Anwendung eine Arbeitslast der Anwendung auszuführen; und Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um einen Dienst auf dem Arbeitsknoten zu aktualisieren, um den Pod auf dem Arbeitsknoten auszuwählen, der die Arbeitslast der Anwendung ausführt, um ein Migrieren der Anwendung von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform abzuschließen.
  2. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das außerdem umfasst: Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um die Konfigurationsübersicht des Revers-Proxys auf dem Arbeitsknoten zu aktualisieren, indem der Anwendung entsprechende Informationen aus der Konfigurationsübersicht entfernt werden, um den Reverse-Proxy daran zu hindern, während eines Migrierens des Satzes von Anwendungen Benutzerdienstanforderungen, die der Anwendung entsprechen, von der ersten Datenverarbeitungsplattform an die zweite Datenverarbeitungsplattform zu leiten, da die Anwendung migriert wurde.
  3. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das außerdem umfasst: Aufrufen der zweiten Datenverarbeitungsplattform durch den Computer, um die Anwendung aus dem Satz von Anwendungen auf der zweiten Datenverarbeitungsplattform zu löschen.
  4. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das außerdem umfasst: Aufrufen der zweiten Datenverarbeitungsplattform durch den Computer, um als Reaktion darauf, dass der Computer eine Eingabe von einem Systemadministrator empfängt, die ein Migrieren des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform einleitet, eine Kennung und eine Verweisadresse (URL) zu erhalten, die jeder jeweiligen Anwendung im Satz von Anwendungen entspricht, die von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform migriert werden sollen; und Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um unter Verwenden der Kennung und der URL von jeder jeweiligen Anwendung den Dienst zu erzeugen, der dem Satz von Anwendungen auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform entspricht.
  5. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das außerdem umfasst: Auswählen der Anwendung im Satz von Anwendungen durch den Computer zum Migrieren von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform; und Aufrufen der zweiten Datenverarbeitungsplattform durch den Computer, um den Quellcode der Anwendung zu erhalten.
  6. Durch einen Computer implementiertes Verfahren nach Anspruch 5, das außerdem umfasst: Ermitteln durch den Computer, ob eine weitere Anwendung im Satz von zu migrierenden Anwendungen vorhanden ist; und Auswählen einer weiteren Anwendung aus dem Satz von zu migrierenden Anwendungen durch den Computer als Reaktion auf ein Feststellen, dass eine weitere Anwendung in dem Satz von zu migrierenden Anwendungen vorhanden ist.
  7. Durch einen Computer implementiertes Verfahren nach Anspruch 1, wobei Funktionsfähigkeit bedeutet, dass jede Anwendung im Satz von Anwendungen, die migriert wird, in der Lage ist, Benutzern einer anfordernden Client-Einheit ihren entsprechenden Dienst während des Migrierens mit der vorgesehenen Dienstgüte ohne Ausfallzeit oder Dienstunterbrechung bereitzustellen.
  8. Durch einen Computer implementiertes Verfahren nach Anspruch 1, wobei es sich bei der ersten Datenverarbeitungsplattform um eine Container-Orchestrierungsplattform und bei der zweiten Datenverarbeitungsplattform um eine Cloud-Anwendungsplattform handelt.
  9. Computersystem zum Verwalten eines Migrierens von Anwendungen, wobei das Computersystem umfasst: ein Bussystem; eine mit dem Bussystem verbundene Speichereinheit, wobei die Speichereinheit Programmanweisungen speichert; und einen mit dem Bussystem verbundenen Prozessor, wobei der Prozessor die Programmanweisungen ausführt, um: einen Anwendungsprogrammierschnittstellen- (API-) Server auf einem Steuerknoten einer ersten Datenverarbeitungsplattform aufzurufen, um eine Konfigurationsübersicht eines Reverse-Proxys auf einem Arbeitsknoten der ersten Datenverarbeitungsplattform zu aktualisieren, damit der Reverse-Proxy Benutzerdienstanforderungen, die nichtmigrierten Anwendungen eines Satzes von Anwendungen entsprechen, von der ersten Datenverarbeitungsplattform an eine zweite Datenverarbeitungsplattform leitet, um während eines Migrierens des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform die Funktionsfähigkeit der nichtmigrierten Anwendungen aufrechtzuerhalten; den API-Server auf dem Steuerknoten aufzurufen, um auf der Grundlage eines von der zweiten Datenverarbeitungsplattform erhaltenen Quellcodes einer Anwendung ein Abbild für die Anwendung des Satzes von Anwendungen auf der zweiten Datenverarbeitungsplattform zu erstellen, die auf die erste Datenverarbeitungsplattform migriert werden soll; den API-Server auf dem Arbeitsknoten aufzurufen, um unter Verwenden des vom API-Server erstellten Abbildes der Anwendung einen Pod auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform zu erzeugen, um eine Arbeitslast der Anwendung auszuführen; und den API-Server auf dem Steuerknoten aufzurufen, um einen Dienst auf dem Arbeitsknoten zu aktualisieren, um den Pod auf dem Arbeitsknoten auszuwählen, der die Arbeitslast der Anwendung ausführt, um ein Migrieren der Anwendung von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform abzuschließen.
  10. Computersystem nach Anspruch 9, wobei der Prozessor außerdem die Programmanweisungen ausführt, um: den API-Server auf dem Arbeitsknoten aufzurufen, um die Konfigurationsübersicht des Revers-Proxys auf dem Arbeitsknoten zu aktualisieren, indem der Anwendung entsprechende Informationen aus der Konfigurationsübersicht entfernt werden, um den Reverse-Proxy daran zu hindern, während eines Migrierens des Satzes von Anwendungen der Anwendung entsprechende Benutzerdienstanforderungen von der ersten Datenverarbeitungsplattform an die zweite Datenverarbeitungsplattform zu leiten, da die Anwendung migriert wurde.
  11. Computersystem nach Anspruch 9, wobei der Prozessor außerdem die Programmanweisungen ausführt, um: die zweite Datenverarbeitungsplattform aufzurufen, um die Anwendung aus dem Satz von Anwendungen auf der zweiten Datenverarbeitungsplattform zu löschen.
  12. Computersystem nach Anspruch 9, wobei der Prozessor außerdem die Programmanweisungen ausführt, um: die zweite Datenverarbeitungsplattform aufzurufen, um eine Kennung und eine Verweisadresse (URL) zu erhalten, die jeder jeweiligen Anwendung im Satz von Anwendungen entsprechen, die als Reaktion darauf, dass eine Eingabe von einem Systemadministrator empfangen wird, die ein Migrieren des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform einleitet, auf die erste Datenverarbeitungsplattform migriert werden sollen; und den API-Server auf dem Steuerknoten aufzurufen, um unter Verwenden der Kennung und der URL von jeder jeweiligen Anwendung den Dienst zu erzeugen, der dem Satz von Anwendungen auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform entspricht.
  13. Computersystem nach Anspruch 9, wobei der Prozessor außerdem die Programmanweisungen ausführt, um: die Anwendung im Satz von Anwendungen zum Migrieren von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform auszuwählen; und die zweite Datenverarbeitungsplattform aufzurufen, um den Quellcode der Anwendung zu erhalten.
  14. Computerprogrammprodukt zum Verwaltungen eines Migrierens von Anwendungen, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf gespeicherten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Computer ausführbar sind, um den Computer zu veranlassen, ein Verfahren auszuführen zum: Aufrufen eines Anwendungsprogrammierschnittstellen- (API-) Servers auf einem Steuerknoten einer ersten Datenverarbeitungsplattform durch einen Computer, um eine Konfigurationsübersicht eines Reverse-Proxys auf einem Arbeitsknoten der ersten Datenverarbeitungsplattform zu aktualisieren, damit der Reverse-Proxy Benutzerdienstanforderungen, die nichtmigrierten Anwendungen eines Satzes von Anwendungen entsprechen, von der ersten Datenverarbeitungsplattform an eine zweite Datenverarbeitungsplattform leitet, um eine Funktionsfähigkeit der nichtmigrierten Anwendungen während eines Migrierens des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform aufrechtzuerhalten; Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um auf der Grundlage eines von der zweiten Datenverarbeitungsplattform erhaltenen Quellcodes der Anwendung ein Abbild für eine auf die erste Datenverarbeitungsplattform zu migrierende Anwendung des Satzes von Anwendungen auf der zweiten Datenverarbeitungsplattform zu erstellen; Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um einen Pod auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform zu erzeugen, um unter Verwenden des durch den API-Server erstellten Abbildes der Anwendung eine Arbeitslast der Anwendung auszuführen; und Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um einen Dienst auf dem Arbeitsknoten zu aktualisieren, um den Pod auf dem Arbeitsknoten auszuwählen, der die Arbeitslast der Anwendung ausführt, um ein Migrieren der Anwendung von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform durchzuführen.
  15. Computerprogrammprodukt nach Anspruch 14, das außerdem aufweist: Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um die Konfigurationsübersicht des Revers-Proxys auf dem Arbeitsknoten zu aktualisieren, indem der Anwendung entsprechende Informationen aus der Konfigurationsübersicht entfernt werden, um den Reverse-Proxy daran zu hindern, während eines Migrierens des Satzes von Anwendungen Benutzerdienstanforderungen, die der Anwendung entsprechen, von der ersten Datenverarbeitungsplattform an die zweite Datenverarbeitungsplattform zu leiten, da die Anwendung migriert wurde.
  16. Computerprogrammprodukt nach Anspruch 14, das außerdem aufweist: Aufrufen der zweiten Datenverarbeitungsplattform durch den Computer, um die Anwendung aus dem Satz von Anwendungen auf der zweiten Datenverarbeitungsplattform zu löschen.
  17. Computerprogrammprodukt nach Anspruch 14, das außerdem aufweist: Aufrufen der zweiten Datenverarbeitungsplattform durch den Computer, um als Reaktion darauf, dass der Computer eine Eingabe von einem Systemadministrator empfängt, die ein Migrieren des Satzes von Anwendungen von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform einleitet, eine Kennung und eine Verweisadresse (URL) zu erhalten, die jeder jeweiligen Anwendung im Satz von Anwendungen entspricht, die von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform migriert werden sollen; und Aufrufen des API-Servers auf dem Steuerknoten durch den Computer, um unter Verwenden der Kennung und der URL von jeder jeweiligen Anwendung den Dienst zu erzeugen, der dem Satz von Anwendungen auf dem Arbeitsknoten der ersten Datenverarbeitungsplattform entspricht.
  18. Computerprogrammprodukt nach Anspruch 14, das außerdem aufweist: Auswählen der Anwendung im Satz von Anwendungen durch den Computer zum Migrieren von der zweiten Datenverarbeitungsplattform auf die erste Datenverarbeitungsplattform; und Aufrufen der zweiten Datenverarbeitungsplattform durch den Computer, um den Quellcode der Anwendung zu erhalten.
  19. Computerprogrammprodukt nach Anspruch 18, das außerdem aufweist: Ermitteln durch den Computer, ob eine weitere Anwendung im Satz von zu migrierenden Anwendungen vorhanden ist; und Auswählen einer weiteren Anwendung aus dem Satz von zu migrierenden Anwendungen durch den Computer als Reaktion auf ein Feststellen, dass eine weitere Anwendung im Satz von zu migrierenden Anwendungen vorhanden ist.
  20. Computerprogrammprodukt nach Anspruch 14, wobei Funktionsfähigkeit bedeutet, dass jede Anwendung im Satz von Anwendungen, die migriert wird, in der Lage ist, Benutzern einer anfordernden Client-Einheit während eines Migrierens ihren entsprechenden Dienst mit der vorgesehenen Dienstgüte ohne Ausfallzeit oder Dienstunterbrechung bereitzustellen.
DE112022002615.4T 2021-07-06 2022-05-24 Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs Pending DE112022002615T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/305,344 US20230009930A1 (en) 2021-07-06 2021-07-06 Continuous Liveness and Integrity of Applications During Migration
US17/305,344 2021-07-06
PCT/CN2022/094602 WO2023279869A1 (en) 2021-07-06 2022-05-24 Continuous liveness and integrity of applications during migration

Publications (1)

Publication Number Publication Date
DE112022002615T5 true DE112022002615T5 (de) 2024-03-28

Family

ID=84798845

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022002615.4T Pending DE112022002615T5 (de) 2021-07-06 2022-05-24 Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs

Country Status (5)

Country Link
US (1) US20230009930A1 (de)
CN (1) CN117616395A (de)
DE (1) DE112022002615T5 (de)
GB (1) GB2621503A (de)
WO (1) WO2023279869A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11900094B2 (en) * 2021-10-25 2024-02-13 Oracle International Corporation System and method for providing software rollouts within a controller-based container orchestration system
CN116389252B (zh) * 2023-03-30 2024-01-02 安超云软件有限公司 容器网络的更新方法、装置、***、电子设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429645B2 (en) * 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
US8745233B2 (en) * 2010-12-14 2014-06-03 International Business Machines Corporation Management of service application migration in a networked computing environment
US10083026B1 (en) * 2016-03-31 2018-09-25 Juniper Networks, Inc. In-service software upgrade of software-defined networking controller
US11089064B1 (en) * 2016-09-12 2021-08-10 Skyhigh Networks, Llc Cloud security policy enforcement for custom web applications
US10356214B2 (en) * 2017-03-29 2019-07-16 Ca, Inc. Composing monolithic applications based on multi-container applications
US10691514B2 (en) * 2017-05-08 2020-06-23 Datapipe, Inc. System and method for integration, testing, deployment, orchestration, and management of applications
CN109697114B (zh) * 2017-10-20 2023-07-28 伊姆西Ip控股有限责任公司 用于应用迁移的方法和机器
US11894984B2 (en) * 2017-11-27 2024-02-06 Lacework, Inc. Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments
LT3780557T (lt) * 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
CN112153098B (zh) * 2019-06-28 2023-09-29 华为技术有限公司 一种应用迁移方法及装置
US11494509B2 (en) * 2020-06-19 2022-11-08 Salesforce.Com, Inc. Controlling just in time access to a cluster

Also Published As

Publication number Publication date
CN117616395A (zh) 2024-02-27
US20230009930A1 (en) 2023-01-12
GB202317264D0 (en) 2023-12-27
GB2621503A (en) 2024-02-14
WO2023279869A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112020000629T5 (de) Vereinheitlichte und automatisierte installation, einsatz, konfiguration und verwaltung von softwaredefinierten speicheranlagen
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112020000912T5 (de) Verwalten von software-programmen
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112020006449T5 (de) Verteilen von arbeitslasten bei berechnungen auf der grundlage einer berechneten berechnungsschwerkraft innerhalb unterschiedlicher datenverarbeitungsparadigmen
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE102016103713A1 (de) Erkennung virtueller Maschineneinheiten auf der Grundlage eines Katalogs
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112021003402T5 (de) Blockchain-verwaltung von bereitstellungsfehlern
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten
DE102021125847A1 (de) Auf blockchain beruhende reservierung und delegierung von diensten
DE112021004577T5 (de) Verwalten eines aufgabenablaufs in einer edge-datenverarbeitungsumgebung
DE112021004695T5 (de) Umgang mit zurückstellbaren netzwerkanforderungen
DE112020005326T5 (de) Erzeugen eines skalierungsplans für externe systeme während eines cloud-tenant-onboardings/offboardings

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0067148000

Ipc: G06F0015177000