Methods and systems for migrating software / software code between cloud systems

Generative AI enables efficient and automated migration of software code and components across cloud hyperscalers, addressing the challenges of costly and complex transitions by ensuring fast and compliant conversions.

DE102024113218A1Pending Publication Date: 2025-11-13BAYERISCHE MOTOREN WERKE AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102024113218
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-13
Publication Date
2025-11-13

AI Technical Summary

Technical Problem

Migrating software code between different cloud hyperscalers is expensive and complicated due to the rapid change in cloud providers, exacerbated by the lack of experts with expertise in multiple hyperscalers, leading to high costs and inefficient transitions.

Method used

Utilizing generative artificial intelligence to transform software code and components between cloud systems, enabling automated and fast migration by converting source code and configurations across different cloud providers, including legal and data compliance considerations.

Benefits of technology

Facilitates quick and cost-effective transitions between cloud providers, leveraging unique hyperscaler capabilities and ensuring compliance, thereby reducing costs and enhancing technological flexibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method (100) for migrating software codes between cloud systems (HYP1, HYP2), comprising: - Provide (110) at least one first software code (SC1) specific to a first cloud-based system (HYP1); - Transforming (120) the at least one first software code (SC1) by means of a generative artificial intelligence (GAI) into at least one second software code (SC2), wherein the at least one second software code (SC2) is specific to a second cloud-based system (HYP2) that is different from the first cloud-based system (HYP1); and - Providing (130) at least one second software code (SC2) for use with the second cloud-based system (HYP2).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This disclosure relates to a method for migrating software code between cloud systems, a storage medium for executing the method, and a system for migrating software code between cloud systems. This disclosure relates in particular to rapid migrations between cloud hyperscalers. State of the art

[0002] Several cloud hyperscalers exist on the market. Despite many similarities in their functionalities, they exhibit different implementations of their offerings. Many hyperscalers have specific areas of focus (currently, for example, Google on machine learning, AWS on resilience, Alibaba on compliance with Chinese regulations, Azure on IoT devices, etc.), and ongoing competition drives them to continuous innovation. However, quickly switching between different cloud providers is problematic because migrations are expensive and complex, resulting in high, even unprofitable, costs associated with cloud switching (known as vendor lock-in). This problem is further exacerbated by the fact that there are few engineers with expertise across multiple hyperscalers. Disclosure of the invention

[0003] The purpose of this disclosure is to specify a method for migrating software code between cloud systems, a storage medium for executing the method, and a system for migrating software code between cloud systems that enables fast and (partially) automated migration between cloud systems.

[0004] This problem is solved by the subject matter of the independent claims. Advantageous embodiments are specified in the dependent claims.

[0005] According to an independent aspect of the present disclosure, a method for migrating software codes between cloud systems is specified. The method comprises providing at least one first software code specific to a first cloud-based system; transforming the at least one first software code into at least one second software code using generative artificial intelligence, wherein the at least one second software code is specific to a second cloud-based system different from the first cloud-based system; and providing the at least one second software code for use with the second cloud-based system.

[0006] According to the invention, generative artificial intelligence is used to migrate services or corresponding components from one cloud system to another. For example, the generative artificial intelligence can receive the source code and configuration of a service from a specific hyperscaler and transform this specific code for another hyperscaler. In other words, a service from one cloud system, including components such as storage, load balancers, and compute instances, along with their associated configurations, can be automatically transferred to the equivalents in another cloud system. This enables true multi-hybrid cloud configurations and rapid switching between different cloud providers, resulting in both cost and technological advantages, for example, through the utilization of the unique capabilities of the hyperscalers.Furthermore, services can also be transformed taking into account legal requirements regarding data protection, data types (e.g., geographical data, sensor data), data storage location, and encryption (algorithms).

[0007] The term “generative artificial intelligence,” as used in this disclosure, refers to systems capable of generating text, images, and / or videos, as well as other data, using generative models. These systems utilize complex algorithms to learn patterns, relationships, and data from existing datasets and, based on this, generate new data or content that corresponds to, but is not identical to, the learned patterns. Examples of generative artificial intelligence include, but are not limited to, Generative Adversarial Networks (GANs), Variational Autoencoders (VAEs), and Transformers.

[0008] The terms “hyperscaler” and “cloud hyperscaler,” as used in this disclosure, refer to companies that offer extensive cloud computing services. These services include computing power, storage space, database services, and much more. The term “hyperscaler” stems from the fact that these companies can scale their infrastructure very quickly and at a large scale to meet increasing demand. Well-known cloud hyperscalers include, but are not limited to, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and Alibaba.

[0009] Preferably, at least one first software code and / or at least one second software code are provided in a specific programming language, such as Java, JavaScript or Rust.

[0010] Preferably, at least one first software code and / or at least one second software code are provided as Infrastructure-as-Code (IaC).

[0011] The term "Infrastructure-as-Code" refers to an approach in software development where the infrastructure required for application deployment and management is defined and managed in code form. This includes servers, network components, virtual machines, load balancers, and so on. The main purpose of IaC is to automate the creation and configuration of these infrastructure elements, which increases consistency, enables reproducibility, facilitates error analysis, and thus, ideally, reduces errors and improves the efficiency of environment deployment.

[0012] Preferably, at least one first software code and / or at least one second software code are provided as source code.

[0013] The term "source code" refers to the set of instructions and statements written in a programmable language that serve to procedurally control or automate, or even declaratively describe, specific tasks within a cloud infrastructure. Source code is the foundation for creating software and applications that run on the infrastructure of hyperscalers such as AWS, Azure, Google Cloud, or Alibaba Cloud.

[0014] Preferably, the at least one first software code implements at least one first service of the first cloud-based system, and the at least one second software code implements at least one second service of the second cloud-based system. The at least one first service and the at least one second service can be equivalent services.

[0015] The term "service" refers to cloud services provided by the respective cloud-based system or company (e.g., hyperscaler). Users can utilize these cloud services to efficiently manage and scale their applications and infrastructures. These services cover various areas of IT infrastructure, platform management, and software development. Examples of services offered by hyperscalers such as Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and Alibaba Cloud include, but are not limited to: - Compute services (e.g., virtual machines (VMs), containers, and serverless computing options) - Storage services (e.g., cloud storage solutions for data, files, and objects) - Database services (e.g., managed relational and NoSQL database services) - Network services - Artificial Intelligence (AI) and Machine Learning (ML) - Development tools and DevOps (e.g., tools and services to support software development, continuous integration, and continuous deployment) - Application integration - Big Data and Analytics

[0016] Preferably, the at least one first software code implements at least one first component of the first cloud-based system, and the at least one second software code implements at least one second component of the second cloud-based system. In some embodiments, the at least one first component and the at least one second component can be equivalent components.

[0017] Preferably, one or more first components implement a service of the first cloud-based system or the corresponding company (e.g., hyperscaler), and one or more second components implement a service of the second cloud-based system or the corresponding company (e.g., hyperscaler).

[0018] Preferably, the at least one first component and / or the at least one second component comprise: - at least one compute instance (compute instances are virtual servers that run in the cloud); and / or - at least one storage solution (e.g., scalable cloud storage solutions); and / or - at least one database (e.g., managed databases that allow for the setup, maintenance, and scaling of databases); and / or - at least one load balancer (load balancers distribute incoming traffic across multiple instances to improve the reliability and availability of applications); and / or - Notifications (e.g., automated messages to users, for example via email, SMS or push notifications); and / or - Queues (Queues help to decouple components in distributed systems by temporarily storing messages in a queue).

[0019] Preferably, transforming the at least one first software code using generative artificial intelligence comprises transforming the at least one first component into the at least one second component, wherein the at least one first component and the at least one second component are equivalent components of the cloud-based systems. For example, code for Elastic Load Balancing on AWS can be transformed into code for Google Cloud Load Balancing.

[0020] Preferably, at least one first component is assigned at least one first configuration, and at least one second component is assigned at least one second configuration. The configurations can be, for example, a user-specific database configuration, a user-specific configuration of a notification service, etc.

[0021] Preferably, transforming the at least one first software code using generative artificial intelligence includes transforming the at least one first configuration into the at least one second configuration. This allows configurations to be preserved during migration and eliminates the need for (complete) re-implementation after migration.

[0022] According to another independent aspect of the present disclosure, a software (SW) program is specified. The SW program can be configured to run on one or more processors and thereby execute the procedure described in this document for migrating software code between cloud systems.

[0023] According to another independent aspect of the present disclosure, a storage medium is specified. The storage medium may include a software program configured to run on one or more processors and thereby execute the method described in this document for migrating software code between cloud systems.

[0024] According to another independent aspect of the present disclosure, software with program code is specified. The software is designed to carry out the procedure for migrating software code between cloud systems when the software runs on one or more software-controlled devices.

[0025] According to another independent aspect of the present disclosure, a system for migrating software code between cloud systems is specified. The system comprises one or more processors; and at least one memory associated with the one or more processors and containing instructions that can be executed by the one or more processors to perform the method for migrating software code between cloud systems described in this document.

[0026] A processor or processor module is a programmable computing unit, i.e., a machine or an electronic circuit that controls other elements according to given instructions and thereby advances an algorithm (process). Brief description of the drawings

[0027] Examples of the manifestation of the revelation are shown in the figures and are described in more detail below. They show: Fig. 1 a flowchart of a method for migrating software code between cloud systems according to embodiments of the present disclosure, and Fig. 2 schematically a system for migrating software codes between cloud systems according to embodiments of the present disclosure. Implementations of the revelation

[0028] Unless otherwise noted, the same reference symbols are used for identical and equivalent elements in the following.

[0029] Fig. Figure 1 schematically shows a flowchart of a method 100 for migrating software codes between cloud systems HYP1, HYP2 according to embodiments of the present disclosure. Fig. Figure 2 schematically shows a system 200 for migrating software codes between cloud systems HYP1, HYP2 according to embodiments of the present disclosure.

[0030] The method 100 comprises, in block 110, providing at least one first software code SC1, which is specific to a first cloud-based system HYP1; in block 120, transforming the at least one first software code SC1 by means of a generative artificial intelligence GKI of a migration system 200 into at least one second software code SC2, wherein the at least one second software code SC2 is specific to a second cloud-based system HPY2, which is different from the first cloud-based system HYP1; and in block 130, providing the at least one second software code SC2 for use with the second cloud-based system HYP2.

[0031] The cloud-based systems HYP1 and HYP2 can include, but are not limited to, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) and Alibaba.

[0032] In some embodiments, the at least one first software code SC1 and / or the at least one second software code SC2 are provided as Infrastructure-as-Code (IaC) or as source code, in particular provided in a specific programming language, such as Java, JavaScript or Rust.

[0033] The at least one first software code SC1 can implement at least one first service of the first cloud-based system HYP1, and the at least one second software code SC2 can implement at least one second service of the second cloud-based system HYP2. The at least one first service and the at least one second service can be equivalent services, such as a database service, a storage service, or a notification service.

[0034] Each service can be defined by one or more first components. Preferably, the at least one first software code SC1 implements at least one first component of the first cloud-based system HYP1 or a corresponding service, and the at least one second software code SC2 implements at least one second component of the second cloud-based system HYP2 or a corresponding service.

[0035] Preferably, the at least one first component and / or the at least one second component comprise: - at least one compute instance (compute instances are virtual servers that run in the cloud); and / or - at least one storage solution (e.g., scalable cloud storage solutions); and / or - at least one database (e.g., managed databases that allow for the setup, maintenance, and scaling of databases); and / or - at least one load balancer (load balancers distribute incoming traffic across multiple instances to improve the reliability and availability of applications); and / or - Notifications (e.g., automated messages to users, for example via email, SMS or push notifications); and / or - Queues (Queues help to decouple components in distributed systems by temporarily storing messages in a queue).

[0036] In some embodiments, transforming the at least one first software code SC1 using a generative artificial intelligence GKI comprises transforming the at least one first component into the at least one second component, wherein the at least one first component and the at least one second component are equivalent components of the cloud-based systems HYP1 and HYP2. For example, code for Elastic Load Balancing on AWS can be transformed into code for Google Cloud Load Balancing.

[0037] In some embodiments, at least one first component is associated with at least one first configuration, and at least one second component is associated with at least one second configuration. The configurations can be, for example, a user-specific database configuration, a user-specific configuration of a notification service, etc. In this case, transforming the at least one first software code SC1 using generative artificial intelligence (GAI) can include transforming the at least one first configuration into the at least one second configuration. This allows configurations to be preserved during migration and eliminates the need for (complete) re-implementation afterward.

[0038] According to the invention, generative artificial intelligence is used to migrate services or corresponding components from one cloud system to another. For example, the generative artificial intelligence can receive the source code and configuration of a service from a specific hyperscaler and transform this specific code for another hyperscaler. In other words, a service from one cloud system, including components such as storage, load balancers, and compute instances, along with their associated configurations, can be automatically transferred to the equivalents in another cloud system. This enables true multi-hybrid cloud configurations and rapid switching between different cloud providers, resulting in both cost and technological advantages, for example, through the utilization of the unique capabilities of the hyperscalers.Furthermore, services can also be transformed taking into account legal requirements regarding data protection, data types (e.g., geographical data, sensor data), data storage location, and encryption (algorithms).

[0039] Although the invention has been further illustrated and explained in detail by means of preferred embodiments, the invention is not limited by the disclosed examples, and other variations can be derived from them by a person skilled in the art without departing from the scope of protection of the invention. It is therefore clear that a multitude of possible variations exist. It is also clear that the embodiments mentioned as examples are truly only examples and are not to be understood in any way as limiting, for example, the scope of protection, the possible applications, or the configuration of the invention.Rather, the preceding description and the description of the figures enable the person skilled in the art to implement the exemplary embodiments in concrete terms, whereby the person skilled in the art, with knowledge of the disclosed inventive concept, can make various changes, for example with regard to the function or the arrangement of individual elements mentioned in an exemplary embodiment, without leaving the scope of protection defined by the claims and their legal equivalents, such as further explanations in the description.

Claims

[1] Method (100) for migrating software code between cloud systems (HYP1, HYP2), comprising: - Provide (110) at least one first software code (SC1) specific to a first cloud-based system (HYP1); - Transforming (120) the at least one first software code (SC1) by means of a generative artificial intelligence (GAI) into at least one second software code (SC2), wherein the at least one second software code (SC2) is specific to a second cloud-based system (HYP2) that is different from the first cloud-based system (HYP1); and - Providing (130) at least one second software code (SC2) for use with the second cloud-based system (HYP2). [2] Method (100) according to claim 1, wherein the at least one first software code (SC1) and / or the at least one second software code (SC2) are provided as Infrastructure-as-Code or source code. [3] Method (100) according to claim 1 or 2, wherein the at least one first software code (SC1) implements at least one first service of the first cloud-based system (HYP1), wherein the at least one second software code (SC2) implements at least one second service of the second cloud-based system (HYP2), and wherein the at least one first service and the at least one second service are equivalent services. [4] Method (100) according to any one of claims 1 to 3, wherein the at least one first software code (SC1) implements at least one first component of the first cloud-based system (HYP1), and wherein the at least one second software code (SC2) implements at least one second component of the second cloud-based system (HYP2). [5] Method (100) according to claim 4, wherein the at least one first component and / or the at least one second component comprise: - at least one compute instance; and / or - at least one storage device; and / or - at least one database; and / or - at least one load balancer; and / or - Notifications; and / or - Queues. [6] Method (100) according to claim 4 or 5, wherein the transformation of the at least one first software code (SC1) comprises using a generative artificial intelligence (GAI): - Transforming the at least one first component into the at least one second component, where the at least one first component and the at least one second component are equivalent components of the cloud-based systems (HYP1, HYP2). [7] Method (100) according to any one of claims 4 to 6, wherein at least one first component is assigned at least one first configuration and at least one second component is assigned at least one second configuration. [8] Method (100) according to claim 7, wherein the transformation of the at least one first software code (SC1) comprises using a generative artificial intelligence (GAI): - Transforming at least one first configuration into at least one second configuration. [9] Storage medium comprising a software program configured to run on one or more processors and thereby to execute the method (100) according to any one of claims 1 to 8. [10] System (200) for migrating software code between cloud systems (HYP1, HYP2), comprising: one or more processors; and at least one memory connected to the one or more processors and containing instructions that can be executed by the one or more processors to perform the method (100) according to any one of claims 1 to 8.