Method and system for pre-provisioning to cloud workload migration through cyclic deployment and evaluation of migration

By employing a cyclical monitoring, deployment, and evaluation approach, the system addresses the resource-intensive nature of workload migration, enabling automated and optimal migration strategies in public cloud environments and improving workload interoperability.

CN114661458BActive Publication Date: 2026-02-13DELL PROD LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111460557.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-22
Filing Date
2021-12-02
Publication Date
2026-02-13
Estimated Expiration
2041-12-02

AI Technical Summary

Technical Problem

The existing technology for migrating on-premises workloads to the public cloud is laborious and time-consuming, making it difficult to achieve proper workload interoperability between different infrastructures.

Method used

Employing a cyclical monitoring, deployment, and evaluation approach, the workload monitor collects provisioning information, the cloud architecture recommender selects a cloud model, and the deployment accelerator tunes the model to achieve the optimal migration strategy. The workload migration service automates the migration of workloads in public or hybrid cloud environments.

Benefits of technology

It improves the automation of workload migration processes, ensures the implementation of optimal strategies in public cloud environments, and reduces manual intervention and time costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114661458B_ABST
    Figure CN114661458B_ABST
Patent Text Reader

Abstract

A method and system for provisioning to cloud workload migration through a cycle of deployment and evaluation. To ensure proper workload interoperability between different infrastructures, existing processes for transferring provisioned workloads onto public clouds are typically laborious and arduous. To address this existing challenge in inter-infrastructural workload migration, the disclosed method and system employs a cycle of monitoring, deployment, and evaluation scheme to automate and implement an optimal strategy for migrating provisioned workloads onto public and / or hybrid cloud computing environments.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] To ensure proper workload interoperability between different infrastructures, existing processes for migrating pre-production workloads onto public clouds are typically laborious and arduous. SUMMARY

[0002] Generally, in one aspect, the present disclosure is directed to a method for pre-production to cloud workload migration. The method includes collecting pre-production information related to a workload while the workload is deployed on a pre-production infrastructure; generating a set of cloud model recommendations based on the pre-production information; selecting a cloud model from the set of cloud model recommendations; deploying the workload onto a test cloud infrastructure using the cloud model; tuning the cloud model until an optimal cloud model is obtained; and migrating the workload onto a public cloud infrastructure using the optimal cloud model.

[0003] Generally, in one aspect, the present disclosure is directed to a non-transitory computer readable medium (CRM). The non-transitory CRM includes computer readable program code that, when executed by a computer processor, enables the computer processor to: collect pre-production information related to a workload while the workload is deployed on a pre-production infrastructure; generate a set of cloud model recommendations based on the pre-production information; select a cloud model from the set of cloud model recommendations; deploy the workload onto a test cloud infrastructure using the cloud model; tune the cloud model until an optimal cloud model is obtained; and migrate the workload onto a public cloud infrastructure using the optimal cloud model.

[0004] Other aspects of the present disclosure will become apparent from the following description and the accompanying drawings. BRIEF DESCRIPTION OF DRAWINGS

[0005] Figure 1A A system according to one or more embodiments of the present disclosure is shown.

[0006] Figure 1B A workload migration service according to one or more embodiments of the present disclosure is shown.

[0007] Figure 2A A flow diagram is shown that describes a method for pre-production to cloud workload migration by iterative deployment and evaluation according to one or more embodiments of the present disclosure.

[0008] Figure 2B A flow diagram is shown that describes a method for tuning a cloud model according to one or more embodiments of the present disclosure.

[0009] Figure 3An exemplary computing system in accordance with one or more embodiments of the application is shown. DETAILED DESCRIPTION

[0010] Specific embodiments will now be described in detail with reference to the accompanying drawings. In the following detailed description of embodiments of the application, numerous specific details are set forth in order to provide a more thorough understanding of the application. However, it will be apparent to one of ordinary skill in the art that the application can be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.

[0011] In Figures 1A to 3 In the following description of examples, any components described with reference to a figure can be identical to one or more similarly-named components described with reference to any other figure, in various embodiments of the application. Descriptions of these components will not be repeated with reference to each figure for the sake of brevity. Thus, each embodiment of components of each figure is incorporated by reference and is presumed to be optionally present within each of the other figures having one or more similarly-named components. Additionally, any description of a component of a figure, in accordance with various embodiments of the application, should be interpreted as an optional embodiment that can be implemented in addition to, in conjunction with, or in place of, an embodiment described with reference to a corresponding similarly-named component in any other figure.

[0012] Throughout this application, ordinal numbers (e.g., first, second, third, etc.) can be used as adjectives to refer to an element (i.e., any noun in this application). The use of ordinal numbers does not necessarily imply or create any particular order for the elements, nor limit any element to only a single element, unless expressly disclosed such as through the use of the terms “before,” “after,” “single,” and other such terms. Rather, the use of ordinal numbers is to distinguish elements. By way of example, a first element is distinct from a second element, and a first element can encompass more than one element and follow (or precede) a second element in an order of elements.

[0013] Generally, embodiments of the present application relate to a method and system for provisioning to cloud workload migration through a cycle of deployment and evaluation. To ensure proper workload interoperability between different infrastructures, existing processes for transitioning provisioned workloads onto public clouds are typically laborious and arduous. To address this existing dilemma in inter-infrastructural workload migration, the disclosed method and system employs a cycle of monitoring, deployment, and evaluation scheme to automate and implement an optimal strategy for migrating provisioned workloads onto public and / or hybrid cloud computing environments.

[0014] Figure 1AA system in accordance with one or more embodiments of the application is shown. The system (100) can include a on-premise infrastructure (102), a public cloud infrastructure (104), a public cloud gateway (106), a hybrid cloud infrastructure (108), and a workload migration service (110). Each of these system (100) components is described below.

[0015] In one embodiment of the application, the on-premise infrastructure (102) (also referred to as a data center) can represent any privately owned and maintained enterprise information technology (IT) environment. The on-premise infrastructure (102) can include any number and any configuration of physical servers, storage systems, network security appliances, management systems, application or service delivery controllers, routers, switches, and other known data center subsystems. Any subset of the on-premise infrastructure (102) can be implemented using computing systems similar to the example computing system shown. In addition, the on-premise infrastructure (102) can include functionality for hosting one or more workloads (described below) that can be implemented and provided locally or over a network. Figure 3

[0016] In one embodiment of the application, a workload (not shown) can refer to an allocation of IT resources, in addition to computer readable program code and data, that can collectively support a defined process, such as an application or service. The previously mentioned IT resources can include, but are not limited to, computer resources (e.g., computer processors and memory), storage resources (e.g., temporary and / or permanent storage devices), and networking resources (e.g., bandwidth). In addition, an instance of a workload can include, but is not limited to, a virtual machine, a container, a database, a web server, and a collection of microservices.

[0017] In one embodiment of the application, the public cloud infrastructure (104) (also referred to as a public cloud) can represent a virtual pool of IT resources and / or computing services that can be provided by a third party provider to a plurality of tenants or clients over the public Internet. Any given third party provider can implement any given portion of the public cloud (104) using a group of data centers that can be partitioned by virtualization and shared among multiple tenants / clients. The public cloud (104) can also include functionality for hosting one or more workloads (described above) that can be instantiated natively or ported from another infrastructure (i.e., the on-premise infrastructure (102) or the hybrid cloud infrastructure (108)).

[0018] ​In one embodiment of the present application, the complexity associated with the portability of any given workload onto the public cloud (104) (or hybrid cloud infrastructure (108) (described below)) can depend on various considerations. These considerations can include, but are not limited to: networking and storage requirements associated with the given workload (indicated by network topology configuration and historical resource utilization metrics); workload configuration based on the tiered architecture associated with the given workload; selection of the cloud service model (also referred to as cloud model) onto which the given workload can be ported; environmental, administrative, and / or external dependency information; and cost and / or performance considerations. Additional or alternative considerations can be used without departing from the scope of the present application.

[0019] In one embodiment of the present application, the public cloud gateway (106) can represent any physical (or hardware-based) device configured to provide connectivity or workload migration services (110) between the public cloud (104) and the management components (not shown) of the on-premise infrastructure (102). In such an embodiment, the public cloud gateway (106) can be implemented using a network device (i.e., a switch, router, or multilayer switch), a server, or a similar computing system to the exemplary computing system shown. In another embodiment of the present application, the public cloud gateway (106) can be implemented as a virtual (or software-based) device that can execute on the underlying hardware of a physical hosting device. Furthermore, the public cloud gateway (106) can include functionality for providing basic protocol translation, thereby allowing incompatible technologies (among the on-premise infrastructure (102), the public cloud infrastructure (104), and the workload migration services (110)) to communicate. Those of ordinary skill will appreciate that the public cloud gateway (106) can perform other functionality without departing from the scope of the present application. Figure 3

[0020] In one embodiment of the present application, the hybrid cloud infrastructure (108) (also referred to as a hybrid cloud) can represent a composite computing, storage, and service environment that combines two or more IT platforms. Specifically, the hybrid cloud (108) can integrate the on-premise infrastructure (102) with the resources and services provided through the public cloud infrastructure (104) and possibly a private cloud infrastructure (not shown). The private cloud infrastructure can refer to a cloud computing environment that provides services to a private organization, rather than the public, over the Internet or a private internal network. The hybrid cloud (108) can also integrate orchestration and management tools to facilitate resource sharing and workload deployment across the hybrid cloud (108).

[0021] In one embodiment of the present application, the workload migration services (110) can represent a data center or cloud service configured for inter-infrastructural workload migration. In this sense, the workload migration services (110) can include functionality for at least performing Figure 2A ​The method of provisioning functionality for cloud workload migration through cyclic deployment and evaluation outlined in the middle; and the following Figure 2B The method for tuning a cloud model outlined in the middle. A person of ordinary skill will appreciate that the workload migration service (110) can perform other functionality without departing from the scope of the invention. Moreover, the workload migration service (110) can be implemented using one or more servers (not shown). Each server can represent a physical or virtual server that can reside in a cloud center or a cloud computing environment. Additionally or alternatively, the workload migration service (110) can be implemented using one or more computing systems of the example computing system shown. Moreover, the workload migration service (110) is described in further detail in the following Figure 3 Figure 1B

[0022] In one embodiment of the invention, the above-mentioned system (100) components can communicate with one another over a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, a mobile network, any other network type, or a combination thereof). The network can be implemented using any combination of wired and / or wireless connections. Moreover, the network can encompass various interconnected network-enabled subcomponents (or systems) (e.g., switches, routers, other gateways, etc.) that can facilitate communication between the above-mentioned system (100) components. Furthermore, in communicating with one another, the above-mentioned system (100) components can employ any combination of wired and / or wireless communication protocols.

[0023] While Figure 1A Other system (100) configurations can be used without departing from the scope of the invention.

[0024] Figure 1B A workload migration service according to one or more embodiments of the invention is shown. The workload migration service (110) can include a workload monitor (120), a cloud architecture recommender (122), and a deployment accelerator (124). Each of these workload migration service (110) subcomponents is described below.

[0025] ​​In one embodiment of the present invention, the workload monitor (120) can refer to a computer program executing on the underlying hardware of the workload migration service (110). Further, the workload monitor (120) can be responsible for workload information and metric collection. In this sense, the workload monitor (120) can include functionality to: identify one or more pre-existing workloads (or workloads operating on the pre-existing infrastructure (102)) that can have been selected for migration by an administrator; obtain pre-existing information (described below) related to the identified one or more pre-existing workloads; provide the obtained pre-existing information to the cloud infrastructure recommender (122) for processing; receive a notification from the deployment accelerator (124) indicating that the identified one or more pre-existing workloads have been deployed onto a test cloud infrastructure (the hybrid cloud infrastructure (108) if available; otherwise, the public cloud infrastructure (104)), thereby becoming cloud workloads; in response to the received notification, collect performance metrics associated with the deployed one or more cloud workloads; and provide the collected performance metrics associated with the deployed one or more cloud workloads to the deployment accelerator (124) for processing.

[0026] Further, in one embodiment of the present invention, the workload monitor (120) can continuously monitor any deployed one or more cloud workloads (throughout the tuning process of re-deploying the one or more cloud workloads onto the test cloud infrastructure using different cloud models (described below)) until notified to stop the observation and data collection operations by the deployment accelerator (124). Further, one of ordinary skill will appreciate that the workload monitor (120) can perform other functions without departing from the scope of the present invention.

[0027] In one embodiment of the present invention, the above-mentioned pre-existing information related to any given pre-existing workload can include a tier architecture configuration associated with the given pre-existing workload. The tier architecture configuration can outline and describe the logical separation of the given pre-existing workload into a plurality of tiers (or modules) of logical computation— each tier (or module) can be responsible for performing a given subset of the functionality of the given pre-existing workload. Examples of the previously mentioned tiers can include, but are not limited to: a presentation tier intended for content delivery, a user interface (UI) tier intended for user interaction interpretation, a logic tier intended for data validation and / or processing, a data access tier intended for data retrieval and / or manipulation, and a data storage tier intended for data persistence. Further, additional tiers, alternative tiers, or any combination of tiers into composite tiers can be used without departing from the scope of the present invention.

[0028] In one embodiment of the present application, the above-mentioned pre-set information related to any given pre-set workload can further include a tiered architecture configuration associated with the given pre-set workload. The tiered architecture configuration can outline and describe the physical separation of the given pre-set workload into one or more physical computing tiers - each tier can host a subset (or all) of the given pre-set workload's designated logical computing tiers (described above). For example, in a single-tiered architecture configuration, all of the given pre-set workload's logical computing tiers can be deployed (or co-located) on a single server. On the other hand, in a multi-tiered (or N-tiered) architecture configuration, different logical computing tiers of the given pre-set workload can be distributed across two or more servers - for example, in a 3-tiered architecture configuration: the presentation and UI tiers can be grouped into and implemented by a first tier or first server, the logic and data access tiers can be grouped into and implemented by a second tier or second server, and the data storage tier can be implemented by a third tier or third server.

[0029] In one embodiment of the present application, the above-mentioned pre-set information related to any given pre-set workload can further include a resource requirement configuration associated with the given pre-set workload. The resource requirement configuration can outline and detail the computing resource requirements, storage resource requirements, and network resource requirements of the given pre-set workload on each of the given pre-set workload's designated physical computing tiers (described above) for implementing and / or supporting the given pre-set workload. The computing resource requirements can for example specify the physical or virtual type of computer processor (e.g., central processing unit or graphics processing unit) and its number of cores allocated to each physical computing tier, as well as the physical or virtual type of computer memory (e.g., volatile or non-volatile) and its number of bytes allocated to each physical computing tier. Meanwhile, the storage resource requirements can for example specify the storage topology of the physical and / or virtual data storage zones (i.e., the protocols, transport mechanisms, physical connections, etc. employed among the data storage zones) allocated to each physical computing tier, as well as the physical or virtual type of computer storage device (e.g., hard disk drive or solid state drive), the number of disks / volumes, and their class (e.g., capacity or cache) of disks / volumes allocated to each physical computing tier. Furthermore, the network resource requirements can for example specify the network topology of the physical and / or virtual network adapters (i.e., the protocols, transport mechanisms, physical connections, etc. employed among the adapters) among and / or between each physical computing tier, the network security requirements for securing each physical computing tier (and their communications among each other), and the networking bandwidth allocated to each physical computing tier. Moreover, one of ordinary skill will appreciate that additional or alternative computing, storage, and network requirements can be used without departing from the scope of the present application.

[0030] In one embodiment of the present application, the above-mentioned pre-set information related to any given pre-set workload can also include historical resource utilization and / or performance metrics associated with the given pre-set workload. Generally, historical metrics can refer to a collection of real-time metrics captured or recorded over a long period of time. Moreover, the historical resource utilization and / or performance metrics associated with a given pre-set workload can include a collection of metrics recorded for each of the given pre-set workload's specified physical computing tiers (described above). Examples of resource utilization and / or performance metrics can include, but are not limited to: computing resource usage and / or performance metrics (e.g., percentage of allocated computer processor cores used, percentage of allocated computer memory bytes used, etc.), storage resource usage and / or performance metrics (e.g., percentage of allocated disk space used, disk latency, disk input-output operations per second, disk throughput, etc.), and network resource usage and / or performance metrics (e.g., percentage of allocated network bandwidth used, network path speed or latency, network packet loss rate, network throughput, etc.). Those of ordinary skill will appreciate that additional or alternative resource utilization and / or performance metrics can be used without departing from the scope of the present application.

[0031] In one embodiment of the present application, the above-mentioned pre-set information related to any given pre-set workload can also include one or more dependency mappings associated with the given pre-set workload, if any. Dependency mappings can refer to location information (e.g., local physical memory / storage addresses, local logical directory paths, or remote uniform resource locators / identifiers), as well as one or more interaction protocols required to access a database, computer-readable program code library, service, another workload, or any other resource on which the given pre-set workload can depend to achieve proper functionality. Moreover, any given dependency mapping can fall under one of a variety of dependency categories - which can include, but are not limited to: a transaction dependency category reflecting dependencies between one or more of the given pre-set workload's specified physical computing tiers (described above), a service dependency category reflecting dependencies between the given pre-set workload and the specified logical computing tiers (described above) of infrastructure services (e.g., domain name system (DNS), lightweight directory access protocol (LADP), network file system (NFS), etc.), a system dependency category reflecting dependencies between the given pre-set workload and the specified logical computing tiers of its respective hosting server or computing system, a library dependency category reflecting dependencies between the given pre-set workload and the specified logical computing tiers of a local or remote software library, and a co-workload dependency category reflecting dependencies between the given pre-set workload and one or more other pre-set (or other infrastructure-based) workloads. Those of ordinary skill will appreciate that additional or alternative dependency categories can be used without departing from the scope of the present application.

[0032] In one embodiment of the present application, the cloud architecture recommender (122) can refer to a computer program executing on the underlying hardware of the workload migration service (110). The cloud architecture recommender (122) can be responsible for cloud service model (or cloud model) selection (described below). In this sense, the cloud architecture recommender (122) can include functionality to obtain prepositioned information (described above) related to one or more prepositioned workloads from the workload monitor (120); interact with the hybrid cloud infrastructure (108) (if available) and / or the public cloud infrastructure (104) (through the public cloud gateway (106)) using one or more respective application programming interfaces (APIs) to identify different cloud models offered thereon; recommend one or more cloud models (i.e., one or more cloud model recommendations) from the identified offered cloud models based on a translation of the obtained prepositioned information to available features, components, and / or functionality of the offered cloud models; select a cloud model from the set of recommended cloud models based on cost, management expense, service level agreement (SLA) compliance, any other criteria, or a combination thereof; and provide the selected cloud model to the deployment accelerator (124) for processing. The cloud architecture recommender (122) can also include functionality to recommend one or more cloud models based on performance metric differences discovered between the deployed cloud workload and the prepositioned workload. Furthermore, one of ordinary skill will appreciate that the cloud architecture recommender (122) can perform other functions without departing from the scope of the present application.

[0033] In one embodiment of the present invention, a cloud model can refer to a service delivered through resources available and provided on a cloud-based infrastructure (e.g., hybrid cloud infrastructure (108) or public cloud infrastructure (104)). The range of resources offered by a cloud vendor and the size of control or management responsibilities expected of a subscriber or user can depend on the type or class of cloud model. Examples of cloud models can include, but are not limited to, infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). Through an IaaS cloud model, a cloud vendor can own (and can be responsible for managing) any physical IT infrastructure (e.g., computing resources, storage resources, and network resources) as well as any network security employed throughout them, however a subscriber can be responsible for managing operating systems, databases, business intelligence services, development tools, middleware, and hosted applications (e.g., workloads). Through a PaaS cloud model, in addition to the previously mentioned resources offered through an IaaS cloud model, a cloud vendor can also own (and can be further responsible for managing) operating systems, databases, business intelligence services, development tools, and middleware, however a subscriber can only be responsible for managing their hosted applications. Finally, through a SaaS cloud model, all previously mentioned resources (including hosted applications) can be owned and managed by a cloud vendor, however a subscriber can not be responsible for managing anything. Those of ordinary skill will appreciate that additional or alternative cloud model types can be used without departing from the scope of the present invention.

[0034] In one embodiment of the present invention, a deployment accelerator (124) can refer to a computer program that executes on the underlying hardware of the workload migration service (110). The deployment accelerator (124) can be responsible for looping workload deployment and evaluation. In this sense, the deployment accelerator (124) can include functionality for obtaining a selected cloud model (described above) from the cloud architecture recommender (122); converting the obtained cloud model into a deployable phantom package (described below); deploying the deployable phantom package (and, thereby, the workload through the cloud model) onto a test cloud infrastructure (i.e., the hybrid cloud infrastructure (108) (if available) or the public cloud infrastructure (104)); invoking the workload monitor (120) to collect performance metrics related to the workload while the workload is deployed on the test cloud infrastructure; tuning the cloud model to achieve optimal performance based on the collected performance metrics (see, e.g., FIG. 6) relative to an iterative evaluation of similar performance metrics collected for the workload while the workload is deployed on the on-premise infrastructure (102); obtaining an optimal cloud model; and migrating the workload from the test cloud infrastructure to the public cloud infrastructure (104) using the deployable phantom package of the obtained optimal cloud model. Moreover, those of ordinary skill will appreciate that the deployment accelerator (124) can perform other functions without departing from the scope of the present invention. Figure 2B ) relative to an iterative evaluation of similar performance metrics collected for the workload while the workload is deployed on the on-premise infrastructure (102) to achieve optimal performance, obtaining an optimal cloud model, and migrating the workload from the test cloud infrastructure to the public cloud infrastructure (104) using the deployable phantom package of the obtained optimal cloud model. Moreover, those of ordinary skill will appreciate that the deployment accelerator (124) can perform other functions without departing from the scope of the present invention.

[0035] In one embodiment of the present application, a deployable artifact package can refer to a logical container (e.g., an archive file or an executable binary file) through which a set of components required to integrate a cloud model onto a desired cloud infrastructure can be housed. Ideally, any deployable artifact package should be cross-cloud compatible, thereby allowing any deployable artifact package to implement an associated cloud model across different cloud infrastructures. Further, the set of components mentioned previously can include, but are not limited to: one or more deployable artifacts (i.e., computer readable program code outputted from one or more software build processes, respectively) related to implementing a cloud model; one or more dependency mappings (if any) that link one or more of the above-mentioned deployable artifacts; and computer readable program code responsible for orchestrating the proper integration of a cloud model onto a desired cloud infrastructure. Those of ordinary skill will appreciate that additional or alternative components can be included within a deployable artifact package without departing from the scope of the present application.

[0036] While Figure 1B A configuration of sub-components is shown, but other workload migration service (110) configurations can be used without departing from the scope of the present application.

[0037] Figure 2A A flow diagram is shown that describes a method for provisioning to cloud workload migration through iterative deployment and evaluation in accordance with one or more embodiments of the present application. The various steps outlined below can be performed by a workload migration service (see, e.g., workload migration service (110) of FIG. 1). Figure 1A and Figure 1B ) can be performed. Further, while the various steps in the flow diagram are presented and described sequentially, one of ordinary skill will appreciate that some or all of the steps can be executed in different orders, can be combined or omitted, and some or all of the steps can be executed in parallel.

[0038] Turning to Figure 2A In step 200, one or more workloads for migration are identified. In one embodiment of the present application, the workloads can reside and operate on a provisioning infrastructure (described above) (see, e.g., provisioning infrastructure (120) of FIG. 1). Figure 1A

[0039] ​In step 202, pre-existing information related to one or more workloads (identified in step 200) can be obtained. In one embodiment of the present invention, the pre-existing information for each identified workload can include: (a) a tier architecture configuration outlining and describing logical separation of the workload into multiple tiers (or modules) of logical computing; (b) a hierarchy architecture configuration outlining and describing physical separation of the workload into one or more physical tiers of computing; (c) a resource requirement configuration outlining and describing computing resource requirements, storage resource requirements, and network resource requirements for implementing and / or supporting the workload (or a portion thereof) on each specified physical tier of computing for the workload; (d) historical resource utilization and / or performance metrics recorded for each specified physical tier of computing for the workload; and (e) one or more dependency mappings (if any) referencing location information and interaction protocols required for accessing databases, computer readable code repositories, services, another workload, or any other resource on which the workload can depend to implement proper functionality. The pre-existing information is described in further detail in the description above Figure 1B .

[0040] In step 204, a set of cloud model recommendations is generated based on the pre-existing information (obtained in step 202). Specifically, in one embodiment of the present invention, any subset or all of the pre-existing information for a given workload can be analyzed and compared to available cloud computing resources to determine one or more cloud models that are best suited for implementing and / or supporting the given workload in a cloud computing environment. For example, the resource requirement configuration and historical resource utilization metrics of the pre-existing information can be used, at least in part, collectively to compute virtual storage and virtual network configurations that can be accommodated by one or more cloud model types (e.g., IaaS, PaaS, SaaS, etc.).

[0041] In step 206, a cloud model is selected from the set of cloud model recommendations (generated in step 204). In one embodiment of the present invention, the selection of the cloud model can take into account one or more factors including, but not limited to: cost, management expense, service level agreement (SLA) compliance, any other criteria, or a combination thereof.

[0042] In step 208, the workloads (identified in step 200) are then deployed onto a test cloud infrastructure using the cloud model (selected in step 206). In one embodiment of the present invention, the test cloud infrastructure can refer to a hybrid cloud infrastructure (if available). In another embodiment of the present invention, the test cloud infrastructure can refer to a public cloud infrastructure (if a hybrid cloud infrastructure is not available). Furthermore, deploying each workload onto the test cloud infrastructure can require deploying a respective deployable artifact package (described above) associated with the cloud model (see, e.g., Figure 1B ).

[0043] In step 210, the cloud model (selected in step 206 and deployed in step 208) is tuned until an optimal cloud model is obtained. Specifically, in one embodiment of the application, the cloud model can be tuned through an iterative (or looped) process of cloud model deployment and performance-based cloud model evaluation by deriving the cloud model while one or more workloads (identified in step 200) are operating on the test cloud infrastructure. The tuning of the cloud model is described in further detail in Figure 2B . Hereinafter, in step 212, the workloads (identified in step 200) are migrated to the public cloud infrastructure using the optimal cloud model (obtained through the tuning in step 210).

[0044] Figure 2B A flowchart is shown that describes a method for tuning a cloud model according to one or more embodiments of the application. The various steps outlined below can be performed by a workload migration service (see, e.g., Figure 1A and Figure 1B ). Moreover, although the various steps in the flowchart are presented in a sequence, one of ordinary skill in the art will appreciate that some or all of the steps can be executed in a different order, can be executed at the same time, can be omitted, and some or all of the steps can be executed in parallel.

[0045] Turning to Figure 2B , in step 220, performance metrics (or cloud workload metrics) for the one or more workloads are collected while the workloads are deployed on the test cloud infrastructure using the selected cloud model. In one embodiment of the application, the test cloud infrastructure can refer to a hybrid cloud infrastructure (if available). In another embodiment of the application, the test cloud infrastructure can refer to a public cloud infrastructure (if a hybrid cloud infrastructure is not available). Moreover, the selected cloud model can refer to a service delivered through resources available and provided on a cloud-based infrastructure (e.g., infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS), etc.). Examples of the performance metrics collected are disclosed within the description of Figure 1B above.

[0046] In step 222, the cloud workload metric (collected in step 220) is compared with a similar performance metric (or pre-built workload metric) used to evaluate the workload while it was already deployed on the provisioned infrastructure prior to its deployment on the test cloud infrastructure. Then, in step 224, a determination is made as to whether the cloud workload metric matches or exceeds the provisioned workload metric. In one embodiment of the invention, if it is determined that the cloud workload metric at least matches the provisioned workload metric, the process proceeds to step 226. Alternatively, in another embodiment of the invention, if it is determined that the provisioned workload metric exceeds the cloud workload metric, the process alternatively proceeds to step 228.

[0047] In step 226, after determining (in step 224) that the cloud workload metric (collected in step 220) at least matches the preset cloud workload metric, the selected cloud model (the workload has been deployed to the test cloud infrastructure through the selected cloud model) is designated as the optimal cloud model.

[0048] In step 228, after an alternative determination (in step 224) is made where the cloud workload metric (collected in step 220) fails to at least match the provisioned workload metric, a new set of cloud model recommendations is generated. In one embodiment of the invention, the new set of cloud model recommendations may be generated based on an annotated δ (or difference) between the cloud workload metric and the provisioned metric. In another embodiment of the invention, the generation of the new set of cloud model recommendations may be further based on administrator or user feedback. Furthermore, each newly recommended cloud model may reflect one or more upgraded features, components, functions, etc., intended to reduce the performance gap exhibited by workloads when deployed on a previously recommended cloud model versus when deployed on provisioned infrastructure.

[0049] In step 230, a (new) cloud model is selected from a set of new cloud model recommendations (generated in step 228). In one embodiment of the invention, the selection of the (new) cloud model may take into account one or more factors, including but not limited to: cost, administrative expenses, service level agreement (SLA) compliance, any other criteria or combinations thereof.

[0050] In step 232, the workload is then redeployed to the test cloud infrastructure. In one embodiment of the invention, the workload redeployment at this point is instead performed using a deployable artifact package (described above) associated with the cloud model (selected in step 230) (see, for example...). Figure 1B In the following section, the process proceeds to step 220, in which new performance metrics are collected and evaluated for the one or more workloads while deploying the workloads on the test cloud infrastructure using the newly selected cloud model.

[0051] Figure 3 An exemplary computing system in accordance with one or more embodiments of the application is shown. The computing system (300) can include one or more computer processors (302), non-persistent storage (304) (e.g., volatile memory, such as random access memory (RAM), cache memory), persistent storage (306) (e.g., a hard disk, optical, floppy, or other disk drive, flash memory, etc.), a communication interface (312) (e.g., a Bluetooth, infrared, network, or other interface), input devices (310), output devices (308), and numerous other elements (not shown) and functionalities. Each of these components can be connected to the computer processor(s) (302) through the communication interface (312), which can be comprised of both hardware and software components.

[0052] In one embodiment of the application, the computer processor(s) (302) can be an integrated circuit for processing instructions. For example, the computer processor(s) can be one or more cores or micro-cores of a central processing unit (CPU) and / or a graphics processing unit (GPU). The computing system (300) can also include one or more input devices (310), such as a touchscreen, keyboard, mouse, microphone, trackpad, electronic pen, or any other type of input device. Further, the communication interface (312) can include an integrated circuit for connecting the computing system (300) to a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, a mobile network, or any other type of network) and / or another device (such as another computing device).

[0053] In one embodiment of the application, the computing system (300) can include one or more output devices (308), such as a screen (e.g., a liquid crystal display (LCD), a plasma display, a touchscreen, a cathode ray tube (CRT) monitor, a projector, or other display device), a printer, an external storage device, or any other output device. One or more of the output devices can be the same as or different from one or more of the input devices. The input device(s) and output device(s) can be connected locally or remotely to the computer processor(s) (302), the non-persistent storage (304), and the persistent storage (306). There are many different types of computing systems, and the input device(s) and output device(s) previously mentioned can take other forms.

[0054] Software instructions in the form of computer readable program code to perform embodiments of the application can be stored completely or partially, temporarily or permanently, on a non-transitory computer readable medium such as a CD, DVD, storage device, floppy disk, tape, flash memory, physical memory, or any other computer readable storage medium. In particular, the software instructions can correspond to computer readable program code that, when executed by a processor, is configured to perform one or more embodiments of the application.

[0055] While the application has been described with respect to a limited number of embodiments, those skilled in the art, having the benefit of this disclosure, will appreciate that other embodiments can be devised which do not depart from the scope of the technology disclosed herein. Accordingly, the scope of the application should be limited only by the appended claims.

Claims

1. A method for migrating provisioned workloads to the cloud, comprising: While the workload is deployed on the pre-built infrastructure, pre-built information related to the workload is collected; Generate a set of cloud model recommendations based on the preset information, wherein generating the set of cloud model recommendations involves: using at least part of the preset information to calculate the virtual resource configuration of the workload, comparing the virtual resource configuration with available cloud computing resources, and determining the set of cloud model recommendations to adapt to the virtual resource configuration; Select a cloud model from the set of cloud model recommendations; The workload is deployed to the test cloud infrastructure using the cloud model described above. Tune the cloud model until the optimal cloud model is obtained; and The workloads are migrated to public cloud infrastructure using the optimal cloud model described above.

2. The method of claim 1, wherein the preset information includes a layer architecture configuration that outlines a set of logical computing layers associated with the workload.

3. The method of claim 2, wherein the preset information includes a hierarchical architecture configuration outlining a set of physical computing layers associated with the workload, wherein each physical computing layer hosts at least a subset of the set of logical computing layers.

4. The method of claim 3, wherein the preset information further includes a resource requirement configuration that outlines the information technology (IT) resources allocated to the workload at each of the set of physical computing tiers of the workload.

5. The method of claim 3, wherein the preset information further includes historical resource utilization metrics, the historical resource utilization metrics capturing the performance of each physical computing layer of the set of physical computing layers associated with the workload.

6. The method of claim 3, wherein the preset information further includes a set of dependency mappings that respectively outline a set of dependencies required to implement the workload.

7. The method of claim 1, wherein the test cloud infrastructure is selected from the group consisting of a hybrid cloud infrastructure and the public cloud infrastructure.

8. The method of claim 1, wherein the cloud model is selected from the set of cloud model recommendations taking into account at least one of the group consisting of cost, administrative fees, and service level agreement (SLA) compliance.

9. The method of claim 1, wherein the cloud model is selected from the group consisting of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).

10. The method of claim 1, wherein tuning the cloud model until the optimal cloud model is obtained comprises: When a condition is not met, an iterative process is performed, the process including: While deploying the workload on the test cloud infrastructure using the cloud model, cloud workload metrics are collected to evaluate the first performance of the workload on the test cloud infrastructure. Make a determination confirming that the conditions are not met; Based on the above determination, a new set of cloud model recommendations will be generated; Select a new cloud model from the set of new cloud model recommendations; and The workloads are deployed to the test cloud infrastructure using the new cloud model. The iteration process terminates when the condition is met; and After the iteration process terminates, the new cloud model is designated as the optimal cloud model. The conditions include the cloud workload metric, which at least matches a pre-built workload metric that evaluates the second performance of the workload while the workload is deployed on the pre-built infrastructure.

11. A non-transitory computer-readable medium (CRM) comprising computer-readable program code, which, when executed by a computer processor, causes the computer processor to: While the workload is deployed on the pre-built infrastructure, pre-built information related to the workload is collected; A set of cloud model recommendations is generated based on the preset information, wherein... The generation of the set of cloud model recommendations involves: using at least part of the preset information to calculate the virtual resource configuration of the workload, comparing the virtual resource configuration with available cloud computing resources, and determining the set of cloud model recommendations to adapt to the virtual resource configuration; Select a cloud model from the set of cloud model recommendations; The workload is deployed to the test cloud infrastructure using the cloud model described above. Tune the cloud model until the optimal cloud model is obtained; and The workloads are migrated to public cloud infrastructure using the optimal cloud model described above.

12. The non-transitory CRM of claim 11, wherein the preset information includes a layer architecture configuration that outlines a set of logical computing layers associated with the workload.

13. The non-transitory CRM of claim 12, wherein the provisioning information includes a hierarchical architecture configuration outlining a set of physical computing tiers associated with the workload, wherein each physical computing tier hosts at least a subset of the set of logical computing tiers.

14. The non-transitory CRM of claim 13, wherein the provisioned information further includes a resource requirement configuration that outlines the information technology (IT) resources allocated to the workload at each of the set of physical computing tiers of the workload.

15. The non-transitory CRM of claim 13, wherein the preset information further includes historical resource utilization metrics that capture the performance of each physical computing layer of the set of physical computing layers associated with the workload.

16. The non-transitory CRM of claim 13, wherein the preset information further includes a set of dependency mappings that respectively outline a set of dependencies required to implement the workload.

17. The non-transitory CRM of claim 11, wherein the test cloud infrastructure is selected from the group consisting of a hybrid cloud infrastructure and the public cloud infrastructure.

18. The non-temporary CRM of claim 11, wherein the cloud model is selected from the set of cloud model recommendations taking into account at least one of the group consisting of cost, administrative fees, and service level agreement (SLA) compliance.

19. The non-transitory CRM of claim 11, wherein the cloud model is selected from the group consisting of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).

20. The non-transitory CRM of claim 11, further comprising computer-readable program code for tuning the cloud model, the computer-readable program code further enabling the computer processor, when executed by the computer processor, to: When a condition is not met, an iterative process is performed, the process including: While deploying the workload on the test cloud infrastructure using the cloud model, cloud workload metrics are collected to evaluate the first performance of the workload on the test cloud infrastructure. Make a determination confirming that the conditions are not met; Based on the above determination, a new set of cloud model recommendations will be generated; Select a new cloud model from the set of new cloud model recommendations; and The workloads are deployed to the test cloud infrastructure using the new cloud model. The iteration process terminates when the condition is met; and After the iteration process terminates, the new cloud model is designated as the optimal cloud model. The conditions include the cloud workload metric, which at least matches a pre-built workload metric that evaluates the second performance of the workload while the workload is deployed on the pre-built infrastructure.

Citation Information

Patent Citations

  • Method and system for intelligent cloud planning and decommissioning

    CN106445652A

  • Configuration and Usage Pattern of a Cloud Environment Based on Iterative Learning

    US20180287864A1