Method, apparatus and computer program product for virtual system updating

By recording the access data of the virtual system, determining the workload prediction mode and user upgrade preferences, and selecting suitable cloud services to upgrade the virtual system, solving the problems of low upgrade efficiency and inability to personalize in the existing technology, and achieving efficient and personalized cloud service recommendations and virtual system upgrades.

CN119718362APending Publication Date: 2025-03-28DELL PROD LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311289953.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-28
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

It is difficult for the existing technology to efficiently upgrade virtual systems, especially when choosing cloud services that meet users' usage habits and business needs, it often depends on the test and recommendation of operation and maintenance engineers, and is inefficient and cannot be personalized.

Method used

By recording access data from the virtual system, based on this data, determine the workload prediction mode and user upgrade preferences, select suitable cloud services for upgrades, and generate recommendation reports.

Benefits of technology

It realizes personalized recommendation of cloud services based on users' access habits and performance needs, improves the efficiency and user experience of virtual system upgrades, and can more accurately meet users' performance and security requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119718362A_ABST
    Figure CN119718362A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to a method and equipment for upgrading a virtual system and a computer program product. The method includes recording access data for a virtual system using a cloud service, and in response to receiving a set of attributes for a set of candidate cloud services, determining a predicted mode of workload for the virtual system based on the access data. The method also includes determining an upgrade preference for the virtual system based on at least one of the access data and user settings of the virtual system. The method further includes selecting a cloud service for upgrading the virtual system from a set of candidate cloud services based on the prediction mode and the upgrade preference, and generating a recommendation report indicating the selected cloud service. According to the scheme, personalized cloud service recommendation can be made according to the access habit of the user to the virtual system and the emphasized performance aspect, so that the user experience can be improved by using the recommended cloud service to upgrade the virtual system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to virtualization technology, and more particularly, to methods, devices, and computer program products for virtual system upgrades. Background Art

[0002] With the rapid development of cloud-based technologies, more and more users are migrating their electronic businesses to virtual systems hosted by one or more cloud platforms. The resources required to run these virtual systems do not need to be managed and maintained by the users themselves, but can be provided by one or more cloud providers in the form of cloud services.

[0003] Cloud providers can provide virtual machine (VM) services of various specifications with different computing capabilities for users to create VM instances to run virtual systems. Cloud providers can also provide cloud storage services of various types and sizes for users to choose for data storage of virtual systems. Users can subscribe or purchase the required cloud services to create, maintain or upgrade their own virtual systems. Summary of the invention

[0004] Embodiments of the present disclosure provide a solution for upgrading a virtual system.

[0005] In a first aspect of the present disclosure, a method for upgrading a virtual system is provided, comprising: recording access data of a virtual system that uses a cloud service; determining a predicted pattern of a workload of the virtual system based on the access data in response to receiving a set of attributes of a set of candidate cloud services; determining an upgrade preference for the virtual system based on the access data and at least one of user settings of the virtual system; selecting a cloud service for upgrading the virtual system from a set of candidate cloud services based on the predicted pattern and the upgrade preference; and generating a recommendation report indicating the selected cloud service.

[0006] In a second aspect of the present disclosure, an electronic device is provided, comprising a processor and a memory coupled to the processor, the memory having instructions stored therein, which, when executed by the processor, causes the device to perform actions, the actions comprising: recording access data of a virtual system that uses a cloud service; determining a predicted pattern of a workload of the virtual system based on the access data in response to receiving a set of attributes of a set of candidate cloud services; determining an upgrade preference for the virtual system based on the access data and at least one of user settings of the virtual system; selecting a cloud service for upgrading the virtual system from a set of candidate cloud services based on the predicted pattern and the upgrade preference; and generating a recommendation report indicating the selected cloud service.

[0007] In a third aspect of the present disclosure, a computer program product is provided, which is tangibly stored on a computer-readable medium and includes machine-executable instructions, which when executed cause a machine to perform the method according to the first aspect of the present disclosure.

[0008] Please note that the present summary is provided to introduce a selection of concepts in a simplified form, which concepts will be further described in the following detailed description. The present summary is not intended to identify key features or essential features of the present disclosure, nor is it intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, in which:

[0010] Figure 1 A schematic diagram illustrating an example environment in which various embodiments of the present disclosure can be implemented;

[0011] Figure 2 A flowchart illustrating an example method for virtual system upgrade according to some embodiments of the present disclosure is shown;

[0012] Figure 3 A flowchart illustrating an example method of upgrading a virtual system according to some embodiments of the present disclosure;

[0013] Figure 4 A visualization diagram showing a predicted pattern of workload of a virtual system determined according to some embodiments of the present disclosure;

[0014] Figure 5 An example architecture illustrating user virtual system upgrades according to some embodiments of the present disclosure; and

[0015] Figure 6 A schematic block diagram of a device that can be used to implement an embodiment of the present disclosure is shown.

[0016] Throughout the drawings, the same or similar reference numerals refer to the same or similar elements. DETAILED DESCRIPTION

[0017] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be interpreted as being limited to the embodiments described herein, but rather these embodiments are provided for a more thorough and complete understanding of the present disclosure.

[0018] The term "including" and its variations used in this document are open-ended, i.e., "including but not limited to". The term "based on" means "based at least in part on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment". The relevant definitions of other terms will be given in the following description.

[0019] When deploying a virtual system on the cloud, users can choose cloud services that provide various system resources for the virtual system based on their business needs and workloads, such as virtual machine series / models that provide the required computing power, and cloud disk specifications that provide the required storage space. The cloud services used by the same virtual system can be provided by multiple cloud providers, and the underlying physical resources that run these cloud services can be distributed in multiple different geographical locations.

[0020] By deploying virtual systems using cloud services, users can focus on their core business without having to worry about the maintenance of underlying resources. During the operation of the virtual system, over time, the cloud provider may release new series or versions of cloud services. Users of the virtual system can subscribe to notifications so that they can be pushed relevant messages when new cloud services are released and decide whether to upgrade the relevant resources of the virtual system to new cloud services (for example, migrate to new VM instances, etc.). However, simple message push cannot enable users to efficiently identify cloud services that meet their upgrade requirements from the upgrade information, for example, cloud services that can improve specific performance metrics that they care about and / or meet their security requirements.

[0021] Some virtual system operation and maintenance engineers continuously monitor the latest cloud services released by cloud providers and test them in order to release recommended cloud services to customers. During testing, operation and maintenance engineers usually need to create a test instance that uses the new cloud service, as well as a control instance of the same cloud service currently used by the virtual system. The operation and maintenance engineer can test the network and file system performance of the two instances, and recommend the corresponding cloud service to the user when the test instance performs better. Conventional recommendation methods based on testing tend to recommend cloud services with stronger capabilities during operation, while ignoring the actual usage habits and business needs of users for virtual systems.

[0022] To at least partially solve the above problems and other potential problems, an embodiment of the present disclosure proposes a solution for upgrading a virtual system. The solution records access data of a virtual system using a cloud service during operation, and upon receiving a set of attributes of a candidate cloud service for recommendation, determines a predicted pattern of the next workload of the virtual system based on the recorded access data. Further, the solution determines an upgrade preference for the virtual system based on at least one of the access data and the user settings of the virtual system. On this basis, the solution selects a cloud service for upgrading the virtual system from the candidate cloud services based on the predicted pattern and the upgrade preference and generates a recommendation report indicating the selected cloud service.

[0023] This solution can make personalized cloud service recommendations based on the user's access habits and performance aspects of the virtual system. A recommendation report is generated for a specific virtual system, and using the recommended cloud servers to upgrade the virtual system can improve the performance aspects of the specific system that the user is concerned about and meet their performance constraints. As a result, the upgrade of the virtual system can better meet the user's usage habits and needs, thereby improving the user experience.

[0024] Figure 1 1 is a schematic diagram of an example environment 100 in which various embodiments of the present disclosure can be implemented. Figure 1 As shown, the environment 100 may include a cloud 110. The cloud 110 includes various system resources provided by multiple cloud providers (not shown). These systems can be provided in the form of cloud services on multiple cloud platforms, such as virtual machine services that provide computing resources and cloud disk services that provide cloud storage. The cloud provider may update the provided cloud services regularly or irregularly and publish update information, such as the properties of new cloud services.

[0025] Enterprises or individual users can subscribe to and / or purchase the required cloud services according to their business needs. After obtaining the right to use the required cloud services, users can create a set of cloud service instances (such as a combination of virtual machines and cloud disks with specific configurations) on the cloud 110 and deploy their virtual systems on these instances to run their business online.

[0026] For example, environment 100 includes a virtual system 120 deployed on cloud 110. It should be understood that for ease of explanation, virtual system 120 is shown as a single logical entity, but due to the characteristics of the cloud, the underlying physical resources of the cloud services used by virtual system 120 may be deployed in different physical locations. In addition, the cloud services used by virtual system 120 may be provided by multiple cloud service providers.

[0027] Each user of the virtual system 120 can access the virtual system 120 through multiple terminal devices 130-1, 130-2, ..., and 130-N (individually or collectively referred to as terminal devices 130) to read and write to the virtual system 120, request the virtual system 120 to perform a certain function, etc. For example, a user can request to write data from a local or another device to the cloud storage space of the virtual system 120, or download data from the cloud storage space of the virtual system 120 to a local or another device through the terminal device 130. The terminal device 130 can be implemented as any suitable form of fixed or mobile electronic device, such as a desktop computer, a smart phone, a tablet computer, and a wearable device, etc.

[0028] Figure 1 Also shown is a computing device 140, which is capable of communicating with other entities in the environment 100 and performing various actions according to embodiments of the present disclosure. For example, a cloud provider may update its cloud services regularly or irregularly and publish various attributes about the updated cloud services. The computing device 140 may actively (e.g., by listening) or passively (e.g., by subscribing) obtain update information from the cloud provider. For example, using a method according to an embodiment of the present disclosure, the computing device 140 may directly or instruct the virtual system 120 to record access data of the virtual system 120, determine predicted access patterns and user upgrade preferences for the virtual system 120, and generate cloud service recommendations for the virtual system 120, and so on. For ease of explanation, this article will be described in the context of the computing device 140 performing the corresponding actions.

[0029] Although computing device 140 is Figure 1 140 is shown as a single entity, but in various embodiments, computing device 140 may exist and be distributed in any suitable form. As a non-limiting example, computing device 140 may be a computing device of a certain operation and maintenance party. The operation and maintenance party may serve as an intermediary between the cloud provider and the user to assist multiple users in deploying and maintaining multiple virtual systems. Computing device 140 may also be a device of a cloud provider that also provides related recommendation functions. Computing device 140 itself may also be a virtual device deployed on cloud 110, and the scope of the present disclosure is not limited in this regard.

[0030] The architecture and functions in the example environment 100 are described only for exemplary purposes, and do not imply any limitation on the scope of the present disclosure. Other devices, systems, or components not shown may also exist in the example environment 100. For example, multiple other virtual systems other than the virtual system 120 may be deployed on the cloud 110, and the computing device 140 may perform recommendations for other virtual devices. In addition, the embodiments of the present disclosure may also be applied to other environments with different structures and / or functions.

[0031] Figure 2 FIG. 2 is a flowchart of an example method 200 for virtual system upgrade according to some embodiments of the present disclosure. The example method 200 may be performed by, for example, Figure 1 It should be understood that method 200 may also include additional actions not shown, and the scope of the present disclosure is not limited in this respect. Figure 1 The method 200 is described in detail with reference to the example environment 100 of FIG.

[0032] At 210, access data of a virtual system that uses a cloud service is recorded. For example, computing device 140 may record access data of virtual system 120. In some embodiments, computing device 140 may directly monitor user access to virtual system 120 and record the access data. In some embodiments, virtual system 120 itself may record access logs, and computing device 140 may obtain its access logs from virtual system 120 periodically or on demand for recording.

[0033] In some embodiments, the computing device 140 may record one or more of the following access data: the login IP address of the user accessing the virtual system 120, the source IP address and the destination IP address of the data traffic (e.g., data upload, download and migration, and transmission of computing results, etc.) generated during the access to the virtual system 120. Thus, the computing device 140 may learn the distribution of various geographical locations associated with the user access to the virtual system 120.

[0034] In some embodiments, as access data, computing device 140 may record the occurrence time of read / write (I / O) operations generated during access to virtual system 120 , so that computing device 140 may learn the historical read / write I / O pattern for virtual system 120 .

[0035] At 220, in response to receiving the attribute sets of the set of candidate cloud services, a predicted pattern of workload of the virtual system is determined based on the access data. For example, computing device 140 may determine a predicted pattern of workload of virtual system 120 based on the access data recorded at 210 in response to receiving the attribute sets of the set of candidate cloud services.

[0036] In some embodiments, computing device 140 may receive a set of attribute sets of candidate cloud services from update information published by one or more cloud providers. In response to receiving the attribute sets, computing device 140 may determine a predicted pattern of workload of virtual system 120, thereby starting a cloud service recommendation process.

[0037] The attribute set of a cloud service may include an indication of the resources that the cloud service can provide. For example, a candidate cloud service may be a virtual machine service of a specific type, and its attribute set may include the number of virtual central processing units (vCPUs), memory size, maximum throughput / bandwidth, disk IOPS available region, and price of the virtual machine of this type. For example, a candidate cloud service may be a cloud storage service, and its attribute set may include cloud disk type (e.g., SSD), maximum capacity, maximum throughput, maximum IOPS, and price.

[0038] In some embodiments, based on the access data of the virtual system 120, the computing device 140 may use a machine learning model to perform predictions to identify a predicted access pattern of the virtual system 120 in a future period. For example, the machine learning model may be a regression model such as a regression random forest model. The predicted access pattern is determined based on historical access data, and thus generally reflects the user's access habits to the virtual system 120.

[0039] In some embodiments, the prediction pattern includes a geographic location distribution associated with future traffic to the virtual system 120, such as an expected distribution of user login locations, and / or an expected distribution of source locations and destination locations of traffic to the virtual system 120, etc. The computing device 140 may perform such predictions based on corresponding IP addresses in the recorded access data.

[0040] In some embodiments, the predicted pattern includes the user's expected I / O pattern for the virtual system, for example, the time when future I / O operations will occur. Similarly, computing device 140 may perform such predictions based on historical I / O records.

[0041] At 230 , an upgrade preference for the virtual system is determined based on at least one of the access data and the user settings of the virtual system. For example, computing device 140 may determine an upgrade preference for virtual system 120 based on at least one of the access data recorded at 220 and the user settings of virtual system 120 .

[0042] In some embodiments, the determined upgrade preference may indicate one or more performance metrics of the virtual system 120. The one or more performance metrics reflect aspects that the user of the virtual system 120 values, for example, the performance metric may prompt the user to value the service latency of the virtual system 120. For example, the performance metric may prompt the user of the virtual system 120 to be price sensitive. In some embodiments, the upgrade preference also includes restrictions on upgrading the virtual system 120, such as geographic location restrictions on cloud service deployment locations.

[0043] At 240, a cloud service for upgrading the virtual system is selected from a set of candidate cloud services based on the prediction pattern and the upgrade preference. For example, computing device 140 may select a cloud service for upgrading virtual system 120 from a set of candidate cloud services at 220 based on the prediction pattern determined at 220 and the upgrade preference determined at 230.

[0044] In some embodiments, for a cloud service in a set of candidate cloud services, computing device 140 may determine an expected value of a performance metric indicated in the upgrade preference when the cloud service is used for virtual system 120 based on a property set of the cloud service and a predicted pattern of the workload of virtual system 120. If the expected value is better than the current expected value of the corresponding performance metric without upgrading, computing device 140 may select the cloud service as a recommendation.

[0045] For example, the computing device 140 may determine the expected billing (e.g., monthly billing, billing per unit of data volume, etc.) when using the candidate cloud storage service for the virtual system 120 based on the predicted user's read / write pattern for the virtual system 120 and the unit price of the read / write operation of the candidate cloud storage service (e.g., price per time, price per 10,000 times, etc.). Figure 3 Determination of prediction patterns and upgrade preferences and selection of cloud services for upgrades are described in more detail.

[0046] At 250, a recommendation report indicating the selected cloud service is generated. For example, computing device 140 may generate a recommendation report for virtual system 120, the recommendation report indicating the cloud service selected at 240. For example, the recommendation report may include the name, version number, and / or recommended parameters of the selected candidate cloud service. The generated recommendation report may be pushed to an administrator user of virtual system 120 for subsequent upgrade decisions and guidance, such as later in conjunction with Figure 3 Will be described in detail.

[0047] Using method 200, personalized cloud service recommendations can be made based on the user's access mode and performance aspects of a specific virtual system, thereby improving the quality of recommendations. Virtual system upgrades based on the recommendations can better meet the user's usage habits and needs, thereby improving user experience.

[0048] Figure 3 1 is a flowchart showing an example method 300 for upgrading a virtual system according to some embodiments of the present disclosure. The example method 300 may be performed by, for example, Figure 1 It should be understood that method 300 may also include additional actions not shown, and some actions in method 300 may be omitted, and the scope of the present disclosure is not limited in this respect. In addition, the actions in method 300 are not necessarily performed in the order shown. Figure 1 The method 300 is described in detail with reference to the example environment 100 of FIG.

[0049] At 310, computing device 140 may receive a set of attribute sets of a set of candidate cloud services. Computing device 140 may actively or passively receive attribute sets of available cloud services from multiple cloud providers. For example, computing device 140 may extract newly released cloud service update information from the pages of one or more cloud providers periodically or according to instructions. For example, computing device 140 may subscribe to update notifications of one or more cloud providers, and receive newly released attribute sets of available cloud services from the cloud service provider due to the subscription (e.g., via email).

[0050] In response to receiving a set of attribute sets of a candidate cloud service, computing device 140 may begin a recommendation process. At 320, computing device 140 may determine a predicted pattern of workload of virtual system 120 based on the access data. As described above with respect to 210, computing device 140 may record access data of virtual system 120. In some embodiments, when a recommendation is needed, computing device 140 may use access data from a recent period of time to perform a prediction (e.g., the past week, month, or year). In some embodiments, computing device 140 may use an appropriate machine learning model (e.g., a regression model) to determine a predicted pattern from the access data.

[0051] In some embodiments, computing device 140 may predict the geographic location distribution associated with the traffic to virtual system 120 based on the corresponding IP addresses in the access data. The geographic location distribution may be, for example, the expected distribution of the login locations of the users, and / or the expected distribution of the source and destination locations of the traffic to virtual system 120. In some embodiments, computing device 140 may predict the expected distribution of I / O occurrence times for virtual system 120 in a future period based on the historical I / O records in the access data. The prediction pattern is determined based on the historical access behavior of the user, which reflects the possible characteristics of the user's future access to virtual system 120.

[0052] At 330, the computing device 140 may determine an upgrade preference for the virtual system 120 based on at least one of the access and user settings of the virtual system 120. The upgrade preference may indicate one or more performance metrics that are important to the user of the virtual system 120. When upgrading the virtual system 120, the one or more performance metrics should be optimized first.

[0053] In some embodiments, as access data, computing device 140 may record the user's upgrade actions for virtual system 120, such as the model and configuration of the cloud service selected for update. Thus, computing device 140 may learn the historical upgrade decisions of the user of virtual system 120 and identify the user's upgrade preference therefrom. For example, computing device 140 may identify that the user prefers to select low-priced cloud services. Therefore, expected billing may be used as a performance metric in the upgrade preference. In some embodiments, computing device 140 may also determine that the user is price sensitive through tags set by the user, and therefore use expected billing as a performance metric to be optimized in the upgrade preference.

[0054] In some embodiments, computing device 140 may identify that users of virtual system 120 tend to choose cloud services with shorter latency, and use latency as a performance metric to be optimized, based on one or more of the following: access data indicates that there is frequent real-time interactive traffic in virtual system 120; or user-set tags indicate that virtual system 120 is used in latency-sensitive fields, such as online games, e-shopping, etc. In some embodiments, computing device 140 may use bandwidth as a performance metric to be optimized based on user tags or access data indicating that virtual system 120 is used in high-throughput fields such as data backup and video download.

[0055] In some embodiments, computing device 140 may determine that the user prefers to utilize cloud services deployed as close to the country and / or region as possible based on the geographic location distribution indicated in the access data. For example, based on the fact that user login and data reading / writing of virtual system 120 all occur in a certain country and / or region, computing device 140 may determine that the user prefers to utilize cloud services deployed as close to the country and / or region as possible.

[0056] In some embodiments, the upgrade preferences also include restrictions on upgrading the virtual system 120, such as restrictions on the geographical locations where the cloud services to be used are deployed. In some embodiments, the computing device 140 may determine that the user has high requirements for the security of the virtual system 120 based on one or more of the following: the user has enabled functions related to high security (such as encryption functions) in the settings of the virtual system 120 or the tags set by the user indicate that the virtual system 120 is applied to security-sensitive fields (such as finance, government business), etc. Furthermore, the computing device 140 may determine the specific area where the cloud services of the virtual system 120 should be deployed based on the geographical location where the virtual system 120 business occurs as indicated in the access data or user settings, and include it in the determined upgrade preferences.

[0057] In embodiments where the upgrade preferences include restrictions on geographic location (e.g., must be deployed in a certain region due to security reasons), computing device 140 may determine whether the deployment location of the candidate cloud service satisfies the geographic location restriction, and may only continue to evaluate the candidate cloud service as a potential recommendation if it satisfies the restriction.

[0058] At 340, for a plurality of candidate cloud services in a set of candidate cloud services, computing device 140 may determine an expected value of the performance metric indicated by the performance preference when the candidate cloud service(s) is / are used for virtual system 120. Computing device 140 may determine the expected value based on a prediction pattern and a property set of the candidate cloud service.

[0059] In one non-limiting example, the upgrade preference for virtual system 120 indicates that the unit billing of its workload should be optimized, and the candidate cloud service is an object storage service (OSS). Operations in OSS can be implemented by calling OSS application programming interface (API) operations, and its fees can be calculated based on the number of API calls, or can be calculated based on the amount of data.

[0060] API read requests may include, for example, PUT, COPY, POST, UPLOAD, RESTORE, and DELETE requests. API write requests may include, for example, GET, HEAD, and SELECT requests. The unit price of a read request and a write request for calling an API of the same storage service may be different. It should be understood that the object storage service is shown only as an example, and in an embodiment of the present disclosure, the supported read and write of the storage service may be block-based storage or object-based storage, and the computing device 140 may select a candidate storage service from the services of multiple providers.

[0061] In this example, according to the predicted pattern of the workload of virtual system 120, the workload of virtual system 120 will include 80% reads and 20% writes. In addition, among the candidate cloud services, there is a storage service including version Y, whose attribute set indicates that the read price of using the service is 5 currency units / Gb and the write price is 0.2 currency units / Gb. On this basis, computing device 140 can determine that if version Y of the storage service is used, the expected unit billing of virtual system 120 is 80%*5 currency units / Gb+20%*2 currency units / Gb=4.4 currency units / Gb.

[0062] In some embodiments, computing device 140 may recommend a combination of multiple different types of candidate cloud services (e.g., a specific combination of virtual machine services and cloud storage services) for upgrading. In such embodiments, computing device 140 may determine the expected value of one or more performance metrics indicated in the upgrade preference when such a combination is used for virtual system 120.

[0063] Then, at 350, the computing device 140 may determine whether the expected value determined at 340 is better than the current expected value of the corresponding performance metric without upgrading the virtual system 120. Continuing with the example of the candidate storage service described above. In this example, the virtual system 120 is using a storage service of version X, which has a read price of 10 currency units / Gb and a write price of 0.5 currency units / Gb. Therefore, if the virtual system 120 is not upgraded, its current expected unit billing is 80%*10 currency units / Gb+20%*0.5 currency units / Gb=8.1 currency units / Gb. If the virtual system 120 is upgraded to use the storage service of version Y, the usage price of this particular virtual system 120 will be significantly reduced, which is in line with the upgrade preference of the user of the virtual system 120.

[0064] In this way, the computing device 140 can make more personalized recommendations for different workload patterns and upgrade preferences. For example, among a first candidate service that is deployed in region A and has a higher price, and a second candidate service of the same type that is deployed in region B and has a lower price, the computing device 140 can choose to recommend the first candidate service to security-sensitive users whose businesses are located in region A, and recommend the second candidate service to price-sensitive users, in order to upgrade their virtual systems.

[0065] In some embodiments, recommendations determined for different performance metrics may conflict with each other, for example, a recommendation to increase latency may increase costs. In determining upgrade preferences, weights of performance metrics may also be determined, which weights reflect the relative importance of the corresponding performance among the various performances of interest. Furthermore, computing device 140 may take the weights into consideration when determining whether the expected value is better. For example, computing device 140 may perform a weighted sum of the values ​​of each metric and compare the sum of the weighted expected values ​​with the sum of the current weighted expected values ​​without upgrading.

[0066] In some embodiments, when recommending cloud services, computing device 140 may also determine whether the recommended cloud services are compatible with each other and with the remaining cloud services retained by virtual system 120 in terms of geography and functionality. For example, object service storage (OSS) buckets created in different regions may not be able to communicate through the intranet, which may hinder the use of virtual system 120. If virtual system 120 uses multiple cloud storage services, computing device 140 may only recommend cloud storage services that are deployed in the same region as the remaining cloud storage services of virtual system 120.

[0067] If it is determined that the expected value is better than the current expected value without upgrading, method 300 may proceed to 360, where computing system 140 may select the candidate cloud service(s) currently being processed (i.e., a single cloud service or a combination of cloud services) as a recommendation. In the above example of cloud storage services, computing device 140 may select version Y of the storage service as a recommendation. Then, method 300 proceeds to 370. If it is determined at 360 that the expected value is not better than the current expected value, method 300 may proceed directly to 370.

[0068] The computing device 140 may determine at 370 whether there is a candidate cloud service to be evaluated, i.e., another candidate cloud service or another combination of candidate cloud services. If so, the method 300 returns to 340 to continue to determine whether to recommend the other candidate cloud service or another combination. Otherwise, the computing device 140 completes the selection. And the method 300 proceeds to 380.

[0069] At 380, computing device 140 may generate a recommendation report indicating the selected cloud service and present the report to the user. In some embodiments, the recommendation report may also include a description of how the selected cloud service satisfies the user's upgrade preferences. For example, computing device 140 may list the performance metrics that the selected cloud service can improve in the recommendation report.

[0070] In some embodiments, the computing device 140 may generate a user-readable natural language report. For example, after recommending a cloud service that can reduce the usage billing of a virtual system to a price-sensitive user, the computing device may generate a recommendation report similar to "Example XXX will reduce your average monthly billing for the system by Y%".

[0071] In some embodiments, computing device 140 may include multiple recommendations that meet the upgrade preferences in the recommendation report for the user to make a final upgrade decision later. In some embodiments, computing device 140 may further select the best recommendation from multiple recommendations that meet the upgrade preferences and include it in the recommendation report.

[0072] In some embodiments, an administrator user of the virtual system 120 may log in on the terminal 130. The computing device 140 may therefore push the recommendation report to the terminal 130 to display the report on the display of the terminal 130. In some embodiments, the administrator user may instruct the computing device 140 to perform an upgrade based on the recommendation report. For example, the administrator user may click on the displayed "Confirm Upgrade" button to cause the terminal 130 to send an upgrade instruction to the computing device 140. For example, the administrator user may select a cloud service that is ultimately used for the upgrade from a plurality of recommended cloud services in the displayed recommendation report.

[0073] In response to receiving the instruction to perform an upgrade based on the recommendation report, computing device 140 may schedule and perform an upgrade of virtual system 120 at 390 to upgrade the corresponding type of cloud service currently used by virtual system 120 to the recommended candidate cloud service. For example, computing device 140 may migrate virtual system 120 to a virtual machine instance of the recommended version, and / or update the storage device of virtual system 140 to the recommended cloud disk specification, and so on.

[0074] In some embodiments, the computing device 140 may schedule the upgrade of the virtual system 120 based on a previously determined predicted pattern of the workload of the virtual system 120. For example, the computing device 140 may schedule the upgrade of the virtual system 120 during a period when the workload of the virtual system 120 is expected to be the smallest, that is, the most idle period. For example, the computing device 140 may schedule the upgrade in batches and determine the portion of each batch to be upgraded. Taking into account the predicted pattern of the workload when scheduling the upgrade, the upgrade is performed in a manner that is expected to have the least impact on the business of the virtual system 120, which can minimize the impact on the user experience such as interruptions that may be caused by the upgrade operation.

[0075] Reference now Figure 4 . Figure 4 A diagram 400 is shown that illustrates a visualization of an example predicted pattern of workload for a virtual system determined according to some embodiments of the present disclosure. The diagram 400 reflects a graph showing predicted values ​​of disk usage of a virtual system determined based on access data over time.

[0076] exist Figure 4 In FIG. 4 , the horizontal axis 410 indicates the date, and the vertical axis 420 indicates the predicted value of the disk usage rate. In this example, the predicted value is determined by the computing device 140 based on the access data of the virtual system using the random forest model. Figure 4 Represented by the curve y_pred. As a control, Figure 4 The actual value of the disk usage rate detected for the virtual system is also shown in FIG. , which is represented by the curve y_true. From the comparison between the predicted value and the actual value, it can be seen that the computing device 140 is able to well predict the subsequent usage of the virtual system.

[0077] according to Figure 4According to the prediction shown, the disk usage of the virtual system presents a peak once a week, for example, at the time point shown by reference numeral 430. For example, this may be caused by the weekly backup operation of virtual system 140. Thereafter, the disk usage of the virtual system will drop sharply and enter a relatively idle period. Therefore, computing device 140 can schedule the upgrade of the virtual system during the period when the virtual system is the idlest, for example, around the time point shown by reference numeral 440. In this way, computing device 140 can determine an upgrade schedule suitable for a specific virtual system, compared to assuming a common idle period to perform the upgrade.

[0078] After the upgrade is completed, the computing device 140 can continue to execute the method 300 to perform the next round of upgrades when necessary. Using the method 300, personalized cloud service recommendations are made for the access mode of a specific virtual system and the performance aspects that the user cares about, and the cloud service recommendations are used for upgrading, so that the upgraded virtual system can be optimized in terms of the performance aspects that its users care about, thereby improving the user experience. In addition, such recommendations do not require the actual running of test instances, thereby saving testing costs.

[0079] Figure 5 An example architecture 500 for upgrading a virtual system according to some embodiments of the present disclosure is shown. The architecture 500 may be an example implementation of a logic module in a computing device 140 for upgrading a virtual system (e.g., virtual system 120) according to an embodiment of the present disclosure (e.g., methods 200 and 300). Figure 1 The example environment 100 is described Figure 5 It should be understood that some modules in the architecture 500 may be omitted, and the device 140 may also have other modules not shown. In addition, the architecture 500 is only used as an example, and other suitable architectures capable of executing the solutions described in the present disclosure may also be used.

[0080] Architecture 500 may include update receiving module 510 and access recording module 520. During operation of virtual system 120, computing device 140 may use update receiving module 510 to actively or passively receive attribute sets of candidate cloud services, and use access recording module 520 to directly or indirectly record access data of virtual system 120, as described above.

[0081] The update receiving module 510 can monitor the updates of the cloud services so that the computing device 140 can make update recommendations for the user in a timely manner. The update receiving module 510 can use the available cloud services for which it has received the attribute set as recommendation candidates, or preliminarily filter out cloud services that obviously do not meet the upgrade requirements from the available cloud services based on the attribute set of the cloud services, for example, a virtual machine service whose CPU speed does not meet the minimum requirements of the service level agreement (SLA) associated with the virtual system 120.

[0082] The architecture 500 may further include an upgrade recommendation module 530, which may include multiple submodules, such as a preference detection module 531, a pattern prediction module 532, and an upgrade analysis module 533. In response to the update receiving module 510 receiving a set of candidate cloud services, the computing device 140 may use the preference detection module 531 to determine an upgrade preference for the virtual system 120. The upgrade preference may be determined based on at least one of the access data recorded by the access recording module 510 and the user settings of the virtual system 120.

[0083] Furthermore, the computing device 140 may use the pattern prediction module 532 to determine the predicted pattern of the workload of the virtual system 120. The pattern prediction module 532 may implement a machine learning model such as a regression model, and take the access data recorded by the access recording module 520 as data to determine the predicted pattern of the workload.

[0084] Based on the determined prediction pattern and upgrade preference, the upgrade analysis module 533 can select a recommended cloud service for upgrading the virtual system 120 from the candidate cloud services. The analysis module 533 can perform calculations based on the attribute set and prediction pattern of the candidate cloud services to determine the expected value of the performance metric indicated in the upgrade preference, and select the recommended cloud service accordingly, as described above with respect to Figures 2 to 3 Described in detail.

[0085] Based on the recommended cloud services selected by the upgrade recommendation module 530, the computing device 140 may utilize the report generation module 540 to generate a recommendation report and present it to an administrator user of the virtual system 120. The architecture 500 may also include an upgrade scheduling module 550. For example, the upgrade scheduling module may receive an instruction to upgrade the virtual system 120 based on the recommendation report from the terminal device 130. In response to the instruction, the upgrade scheduling module may schedule the upgrade of the virtual system 120 based on the predicted pattern of the workload of the virtual system 120, such as arranging an upgrade schedule, etc.

[0086] The modules of the architecture 500 can be described in detail in the previous section. Figure 2-4 The above actions are performed by the method described above, which will not be described in detail here. The architecture 500 provides a virtual system upgrade framework integrating multiple functional modules, which can provide timely and personalized upgrade recommendations for the virtual system that meet its usage mode and user preferences.

[0087] Figure 6 1 shows a schematic block diagram of a device 600 that can be used to implement an embodiment of the present disclosure. The device 600 may be a device or apparatus described in an embodiment of the present disclosure. Figure 6As shown, the device 600 includes a central processing unit (CPU) 601, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 602 or loaded from a storage unit 608 to a random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the device 600 can also be stored. The CPU 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604. Although not shown in FIG. Figure 6 As shown in FIG. 6 , device 600 may also include a co-processor.

[0088] A number of components in the device 600 are connected to the I / O interface 605, including: an input unit 606, such as a keyboard, a mouse, etc.; an output unit 607, such as various types of displays, speakers, etc.; a storage unit 608, such as a disk, an optical disk, etc.; and a communication unit 609, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 609 allows the device 600 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0089] The various methods or processes described above may be performed by the processing unit 601. For example, in some embodiments, the methods may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as the storage unit 608. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 600 via the ROM 602 and / or the communication unit 609. When the computer program is loaded into the RAM 603 and executed by the CPU 601, one or more steps or actions in the methods or processes described above may be performed.

[0090] In some embodiments, the methods and processes described above may be implemented as a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.

[0091] Computer readable storage medium can be a tangible device that can hold and store instructions used by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer readable storage medium include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, for example, a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination thereof. The computer readable storage medium used here is not interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (for example, a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.

[0092] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.

[0093] The computer program instructions for performing the disclosed operation can be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, and the programming languages ​​include object-oriented programming languages, and conventional procedural programming languages. Computer-readable program instructions can be executed completely on a user's computer, partially on a user's computer, executed as an independent software package, partially on a user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer by any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider to connect to the Internet). In certain embodiments, by utilizing the state information of computer-readable program instructions to customize electronic circuits, such as programmable logic circuits, field programmable gate arrays (FPGAs) or programmable logic arrays (PLAs), the electronic circuits can execute computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0094] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device for implementing the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0095] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0096] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the equipment, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each frame in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the frame can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous frames can actually be executed substantially in parallel, and they can also be executed in the opposite order sometimes, depending on the functions involved. It should also be noted that each frame in the block diagram and / or flow chart, and the combination of frames in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0097] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The choice of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method for upgrading a virtual system, comprising: recording access data of the virtual system, the virtual system using cloud services; In response to receiving a set of attributes of a candidate set of cloud services, determining a predicted pattern of workload of the virtual system based on the access data; determining an upgrade preference for the virtual system based on at least one of the access data and a user setting of the virtual system; selecting, based on the prediction pattern and the upgrade preference, a cloud service for upgrading the virtual system from the set of candidate cloud services; as well as A recommendation report is generated indicating the selected cloud service.

2. The method of claim 1 , wherein the upgrade preference indicates one or more performance metrics of a virtual system, and selecting the cloud service for upgrading the virtual system comprises: determining, for a candidate cloud service in the set of candidate cloud services, based on the prediction pattern and the attribute set, expected values ​​of the one or more performance metrics when the candidate cloud service is used in the virtual system; as well as determining, based on the prediction model, currently expected values ​​of the one or more performance metrics without upgrading; In response to determining that the expected value is better than the current expected value, the candidate cloud service is selected.

3. The method according to claim 2, wherein selecting the candidate cloud service comprises: determining expected values ​​of the one or more performance metrics when a combination of a plurality of candidate cloud services of different types is used for the virtual system; as well as In response to the expected value of the combination being better than the current expected value, the combination is selected.

4. The method of claim 2, wherein the upgrade preference further comprises weights of the one or more performance metrics, and determining that the expected value is better than the current expected value comprises: Based on the weight, it is determined that the expected value is better than the current expected value.

5. The method according to claim 1, further comprising: In response to receiving an indication to upgrade the virtual system based on the recommendation report, an upgrade of the virtual system is scheduled based on the predicted pattern.

6. The method of claim 1 , wherein determining the predicted pattern comprises identifying an expected distribution of geographic locations associated with traffic to the virtual system, and selecting the cloud service that can be used to upgrade the virtual system comprises: For a candidate cloud service in the set of candidate cloud services, based on the expected distribution and the attribute set, determining an expected service delay of the virtual system when the candidate cloud service is used for the virtual system; as well as In response to determining that the expected service delay is less than the expected service delay of the virtual system without upgrading, the candidate cloud service is selected.

7. The method of claim 1 , wherein determining the predicted pattern comprises identifying a user's expected read / write pattern for the virtual system, and selecting the cloud service that can be used to upgrade the virtual system comprises: For a candidate cloud service in the set of candidate cloud services, based on the expected read / write mode and the attribute set, calculating an expected unit billing of the virtual system when the candidate cloud service is used for the virtual system; as well as In response to determining that the expected billing is lower than the expected unit billing of the virtual system without upgrading, the candidate cloud service is selected.

8. The method of claim 1 , wherein the upgrade preference includes a geographic location restriction, and selecting a cloud service that can be used to upgrade the virtual system from the set of candidate cloud services comprises: Determine whether the deployment location of the cloud service satisfies the geographic location restriction.

9. An electronic device, comprising: processor; as well as a memory coupled to the processor, the memory having instructions stored therein, the instructions, when executed by the processor, causing the device to perform actions, the actions comprising: Recording access data of a virtual system, the virtual system using a cloud service; In response to receiving a set of attributes of a candidate set of cloud services, determining a predicted pattern of workload of the virtual system based on the access data; determining an upgrade preference for the virtual system based on at least one of the access data and a user setting of the virtual system; selecting a cloud service for upgrading the virtual system from the set of candidate cloud services based on the prediction pattern and the upgrade preference; and A recommendation report is generated indicating the selected cloud service.

10. The apparatus of claim 9, wherein the upgrade preferences indicate one or more performance metrics of a virtual system, and selecting the cloud service for upgrading the virtual system comprises: determining, for a candidate cloud service in the set of candidate cloud services, based on the prediction pattern and the attribute set, expected values ​​of the one or more performance metrics when the candidate cloud service is used in the virtual system; as well as determining, based on the prediction model, currently expected values ​​of the one or more performance metrics without upgrading the virtual system; In response to determining that the expected value is better than the current expected value, the candidate cloud service is selected.

11. The apparatus of claim 10, wherein selecting the candidate cloud service comprises: determining expected values ​​of the one or more performance metrics when a combination of a plurality of candidate cloud services of different types is used for the virtual system; Tuhu In response to the expected value of the combination being better than the current expected value, the combination is selected.

12. The apparatus of claim 10, wherein the upgrade preference further comprises weights of the one or more performance metrics, and determining that the expected value is better than the current expected value comprises: Based on the weight, it is determined that the expected value is better than the current expected value.

13. The apparatus of claim 9, the actions further comprising: In response to receiving an indication to upgrade the virtual system based on the recommendation report, an upgrade of the virtual system is scheduled based on the predicted pattern.

14. The apparatus of claim 9, wherein determining the predicted pattern comprises identifying an expected distribution of geographic locations associated with traffic to the virtual system, and selecting the cloud service that can be used to upgrade the virtual system comprises: For a candidate cloud service in the set of candidate cloud services, based on the expected distribution and the attribute set, determining an expected service delay of the virtual system when the candidate cloud service is used for the virtual system; as well as In response to determining that the expected service delay is less than the expected service delay of the virtual system without upgrading, the candidate cloud service is selected.

15. The apparatus of claim 9, wherein determining the predicted pattern comprises identifying a user's expected read / write pattern for the virtual system, and selecting the cloud service that can be used to upgrade the virtual system comprises: For a candidate cloud service in the set of candidate cloud services, based on the expected read / write mode and the attribute set, calculating an expected unit billing of the virtual system when the candidate cloud service is used for the virtual system; as well as In response to determining that the expected billing is lower than the expected unit billing of the virtual system without upgrading, the candidate cloud service is selected.

16. The apparatus of claim 9, wherein the upgrade preference comprises a geographic location restriction, and selecting a cloud service that can be used to upgrade the virtual system from the set of candidate cloud services comprises: Determine whether the deployment location of the cloud service satisfies the geographic location restriction.

17. A computer program product tangibly stored on a computer readable medium and comprising machine executable instructions which, when executed, cause a machine to perform: Recording access data of a virtual system, the virtual system using a cloud service; In response to receiving a set of attributes of a candidate set of cloud services, determining a predicted pattern of workload of the virtual system based on the access data; determining an upgrade preference for the virtual system based on at least one of the access data and a user setting of the virtual system; selecting, based on the prediction pattern and the upgrade preference, a cloud service for upgrading the virtual system from the set of candidate cloud services; as well as A recommendation report is generated indicating the selected cloud service.

18. The computer program product of claim 17, wherein the upgrade preferences indicate one or more performance metrics of a virtual system, and selecting the cloud service for upgrading the virtual system comprises: determining, for a candidate cloud service in the set of candidate cloud services, based on the prediction pattern and the attribute set, expected values ​​of the one or more performance metrics when the candidate cloud service is used in the virtual system; as well as determining, based on the prediction model, currently expected values ​​of the one or more performance metrics without upgrading the virtual system; In response to determining that the expected value is better than the current expected value, the candidate cloud service is selected.

19. The computer program product of claim 18, wherein selecting the candidate cloud service comprises: determining expected values ​​of the one or more performance metrics when a combination of a plurality of candidate cloud services of different types is used for the virtual system; as well as In response to the expected value of the combination being better than the current expected value, the combination is selected.

20. The computer program product of claim 18, wherein the upgrade preferences further include weights of the one or more performance metrics, and determining that the expected value is better than the current expected value comprises: Based on the weight, it is determined that the expected value is better than the current expected value.