# US 11,442,764 B2 · Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,764 B2
- Document ID: US11442764B2
- Status: Granted
- Kind: B2
- Application number: 16/427,429
- Filed: 2019-05-31
- Published: 2019-09-19
- Granted: 2022-09-13
- Earliest claimed: 2016-01-12
- Assignees: Kyndryl, Inc.
- Applicants: Kyndryl, Inc.
- Inventors: Bin Cao; David M. Egle; Daniel L. Hiebert; Cory J. Kleinheksel
- Web page: https://patentgrep.com/patent/US11442764B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/3409: {for performance assessment}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2201/81: Threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented method includes: monitoring, by a computing device, performance of currently deployed virtual machines (VMs) that implement particular services; determining, by the computing device, optimal configuration options for deployment of new VMs that implement one or more of the particular services based on the monitoring the performance of the currently deployed VMs; and outputting, by the computing device, information regarding the optimal configuration options to a user requesting the deployment of a new VM implementing one or more of the particular services.

## Claims

### Claim 1

A system comprising:
a CPU, a computer readable memory and a computer readable storage medium associated with a computing device;
program instructions to monitor user actions that result in modifications made to deployed virtual machines (VMs) in a group of deployed VMs having particular characteristics;
program instructions to determine that a particular modification has been made to more than a threshold number of the deployed VMs in the group of deployed VMs;
program instructions to determine techniques used to implement the particular modification to the deployed VMs in the group of deployed VMs;
program instructions to generate a new automated action to modify other deployed VMs having the particular characteristics in response to the determining that the particular modification has been made to more than the threshold number of the deployed VMs in the group of deployed VMs, wherein the new automated action includes the determined techniques used to implement the particular modification;
program instructions to store the new automated action in a catalog of automated actions, wherein automated actions in the catalog of automated actions, including the new automated action, are each selectable to implement automated tasks by one of the other deployed VMs having the particular characteristics;
program instructions to test the new automated action to ensure that implementing the automated action results in a desired outcome;
program instructions to monitor performance of the deployed VMs in the group of deployed VMs; and
program instruction to test a performance of a VM after the new automated action is implemented in the VM to determine whether the performance satisfies a performance threshold, wherein the storing the new automated action in the catalog of automated actions is performed upon determining that the performance of the VM satisfies the performance threshold,
wherein the program instructions are stored on the computer readable storage medium for execution by the CPU via the computer readable memory.

### Claim 2 (depends on 1)

The system of claim 1, wherein the monitoring or the determining the techniques used to implement the modifications includes accessing internal and external sources including at least one of the group consisting of:
activity logs;
blogs;
RSS feeds;
press releases; and
social media pages.

### Claim 3 (depends on 2)

The system of claim 2, further comprising:
program instructions to score candidate optimal VM configurations for pre-deployment by:
selecting a first configuration as a candidate optimal VM configuration based on a first threshold number of the deployed VMs including the first configuration; and
selecting a second configuration as another candidate optimal VM configuration based on a second threshold number of the deployed VMs including the second configuration, wherein the second threshold number is smaller than the first threshold number;
determining an amount of time needed to build a VM including the first configuration and an amount of time needed to build a VM including the second configuration;
determining a cost for deploying a VM including the first configuration and a cost for deploying a VM including the second configuration;
determining a score for the first configuration based on the amount of time needed to build the VM including the first configuration and the cost for deploying the VM including the first configuration; and
determining a score for the second configuration based on the amount of time needed to build the VM including the second configuration and the cost for deploying the VM including the second configuration;
program instructions to determine whether the score of the first configuration or the score of the second configuration exceed a particular score threshold; and
program instructions to determine new VMs to pre-deploy including at least one of the first configuration and the second configuration based on the scores of the first and second configuration, in a same computing environment as the currently deployed VMs in the group of deployed VMs.

### Claim 4 (depends on 3)

The system of claim 3, wherein the determining the score for the first configuration and the determining the score for the second configuration is further based on a cost associated with resources consumed by each of the one or more deployed VMS in the group of deployed VMs including the respective first and second configurations.

### Claim 5 (depends on 4)

The system of claim 4, further comprising:
program instructions to determine a subset of the one or more optimal configuration options having scores that satisfy a score threshold;
program instructions to store the subset of the one or more optimal configuration options in a catalog of optimal configuration options; and
program instructions to pre-deploy one or more new VMs having the subset of the one or more optimal configuration options to produce pre-deployed VMs.

### Claim 6 (depends on 5)

The system of claim 5, further comprising:
program instructions to periodically update the scores of the one or more optimal configuration options based on changes to at least one of the popularity or the cost; and
program instructions to remove one or more of the pre-deployed VMs based on the periodically updating the scores.

### Claim 7 (depends on 5)

The system of claim 5, further comprising program instructions to output information regarding the subset of the one or more optimal configuration options to a user requesting deployment of a particular new VM of the one or more new VMS.

### Claim 8 (depends on 7)

The system of claim 7, further comprising program instructions to deploy the particular new VM in response to receiving a user selection corresponding to the particular new VM.

### Claim 9 (depends on 5)

The system of claim 5, wherein the particular new VM matches one of the pre-deployed VMs, the system further comprising program instructions to serve the one of the pre-deployed VMs to the user.

### Claim 10 (depends on 1)

The system of claim 1, further comprising:
program instructions to determine that another particular modification has been made to more than the threshold number of the deployed VMs in the group of deployed VMs, wherein the other particular modification is a removal of another automated action by users; and
program instructions to remove the other automated action from the catalog of automated actions in response to the determining that the other particular modification has been made to more than the threshold number of the deployed VMS in the group of deployed VMs.

### Claim 11 (depends on 1)

The system of claim 1, wherein the particular modification comprises adding a software application.

### Claim 12 (depends on 1)

The system of claim 1, wherein the particular modification comprises removing a software application.

### Claim 13 (depends on 1)

The system of claim 1, wherein the determining the techniques used to implement the particular modification to the deployed VMs in the group of deployed VMs comprises analyzing actions for relevance to prior action, creating paths between different actions, and separating unrelated action paths.

### Claim 14 (depends on 1)

The system of claim 1, further comprising program instructions to group user actions, and tag the user actions with fields.

### Claim 15 (depends on 1)

The system of claim 1, further comprising:
program instructions to discard or modify the new automated action in response to a failed test of the new automated action.

### Claim 16 (depends on 1)

The system of claim 1, wherein the monitoring of user actions comprises monitoring one or more of the group consisting of: scripts, installer, and rich site summary (RSS) feeds.

### Claim 17 (depends on 1)

The system of claim 1, further comprising program instructions to dynamically update the catalog of automated actions based on continued monitoring of user actions, wherein the dynamically updating the catalog comprises automatically removing an automated action for a service from the catalog of automated actions based on determining that another modification has been made to more than a threshold number of the deployed VMs in the group of deployed VMs.

### Claim 18

A system comprising:
a CPU, a computer readable memory and a computer readable storage medium associated with a computing device;
program instructions to monitor user actions that result in modifications made to deployed virtual machines (VMs) in a group of deployed VMs having particular characteristics;
program instructions to determine that a particular modification has been made to more than a threshold number of the deployed VMs in the group of deployed VMs;
program instructions to determine techniques used to implement the particular modification to the deployed VMs in the group of deployed VMs;
program instructions to generate a new automated action to modify other deployed VMs having the particular characteristics in response to the determining that the particular modification has been made to more than the threshold number of the deployed VMs in the group of deployed VMs, wherein the new automated action includes the determined techniques used to implement the particular modification;
program instructions to store the new automated action in a catalog of automated actions, wherein automated actions in the catalog of automated actions, including the new automated action, are each selectable to implement automated tasks by one of the other deployed VMs having the particular characteristics; and
program instructions to test the new automated action to ensure that implementing the automated action results in a desired outcome,
wherein the particular modification comprises creation of a user ID.

### Claim 19

A system comprising:
a CPU, a computer readable memory and a computer readable storage medium associated with a computing device;
program instructions to monitor user actions that result in modifications made to deployed virtual machines (VMs) in a group of deployed VMs having particular characteristics;
program instructions to determine that a particular modification has been made to more than a threshold number of the deployed VMs in the group of deployed VMs;
program instructions to determine techniques used to implement the particular modification to the deployed VMs in the group of deployed VMs;
program instructions to generate a new automated action to modify other deployed VMs having the particular characteristics in response to the determining that the particular modification has been made to more than the threshold number of the deployed VMs in the group of deployed VMs, wherein the new automated action includes the determined techniques used to implement the particular modification;
program instructions to store the new automated action in a catalog of automated actions, wherein automated actions in the catalog of automated actions, including the new automated action, are each selectable to implement automated tasks by one of the other deployed VMs having the particular characteristics; and
program instructions to test the new automated action to ensure that implementing the automated action results in a desired outcome,
wherein the particular modification comprises removal of a user ID.
