# US 10,873,512 B2 · Methods for managing self-healing cloud infrastructure and applications

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

- Number: US 10,873,512 B2
- Document ID: US10873512B2
- Status: Granted
- Kind: B2
- Application number: 15/644,345
- Filed: 2017-07-07
- Published: 2019-01-10
- Granted: 2020-12-22
- Earliest claimed: 2017-07-07
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Vishal Gupta; Raj Yavatkar; Khoi Tran; Saar Noam
- Web page: https://patentgrep.com/patent/US10873512B2

## CPC

- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/5072: {Grid computing}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- 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/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/3495: {for systems}
- H04L 41/0659: by isolating or reconfiguring faulty entities
- H04L 43/0817: by checking functioning
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, apparatus, systems and articles of manufacture are disclosed for managing cloud applications. An example apparatus includes a monitor to determine current states of virtual machines, a cloud manager to communicate with a hybrid cloud infrastructure, a healer to: compare the current states of the virtual machines to target states to determine a value of the difference, and in response to determining that the difference indicates that there are not enough healthy virtual machines to meet the target states, instructing the cloud manager to add virtual machines based on the value of the difference.

## Claims

### Claim 1

An apparatus to manage cloud applications, the apparatus comprising:
a monitor to determine current states of virtual machines;
a cloud manager to communicate with a hybrid cloud infrastructure; and
a healer to:
determine if a virtual machine has been in an operational state of “init” or “ready” state for longer than a threshold amount of time;
in response to determining that the virtual machine has been in the “init” or “ready” state for longer than the threshold amount of time, set the virtual machine to a “fail” state;
compare the current states of the virtual machines to target states to determine a difference between the number of operational virtual machines and the number of target virtual machines requested in the target states;
in response to determining that the difference indicates that there are not enough healthy virtual machines satisfying a health check to meet the target states, instruct the cloud manager to add virtual machines based on the difference; and
in response to determining that the difference indicates that there are more healthy virtual machines than the number of target virtual machines requested in the target states, instruct the cloud manager to remove an additional virtual machine based on the difference and a health-based ranking of operational virtual machines.

### Claim 2 (depends on 1)

An apparatus as defined in claim 1, further including a driver datastore to store a first driver for accessing a first type of virtual computing cloud and a second driver to accessing a second type of virtual computing cloud.

### Claim 3 (depends on 2)

An apparatus as defined in claim 2, wherein the driver datastore is further to store a third driver for accessing a type of cluster environment.

### Claim 4 (depends on 1)

An apparatus as defined in claim 1, further including the cluster manager to transmit a virtual machine inventory for a cluster to the monitor.

### Claim 5 (depends on 4)

An apparatus as defined in claim 4, wherein the cloud manager is to determine an inventory of virtual machines in a cloud.

### Claim 6 (depends on 5)

An apparatus as defined in claim 5, wherein the monitor is to determine if a virtual machine included in the virtual machine inventory passes the health check.

### Claim 7 (depends on 6)

An apparatus as defined in claim 6, wherein the monitor is to determine if a virtual machine included in the inventory of virtual machines in the cloud passes the health check based on whether the virtual machine is included in the inventory of virtual machines in the cluster.

### Claim 8

A method to manage cloud applications, the method comprising:
determining current states of virtual machines;
determining if a virtual machine has been in an operational state of “init” or “ready” state for longer than a threshold amount of time;
in response to determining that the virtual machine has been in the “init” or “ready” state for longer than the threshold amount of time, setting the virtual machine to a “fail” state;
comparing the current states of the virtual machines to target states to determine a difference between the number of operational virtual machines and the number of target virtual machines requested in the target states
in response to determining that the difference indicates that there are not enough healthy virtual machines satisfying a health check to meet the target states, adding virtual machines based on the difference; and
in response to determining that the difference indicates that more healthy virtual machines are active than the number of target virtual machines requested in the target states, instruct the cloud manager to remove an additional virtual machine based on the difference and a health-based ranking of operational virtual machines.

### Claim 9 (depends on 8)

A method as defined in claim 8, storing a first driver for accessing a first type of virtual computing cloud and a second driver to accessing a second type of virtual computing cloud.

### Claim 10 (depends on 9)

A method as defined in claim 9, further including storing a third driver for accessing a type of cluster environment.

### Claim 11 (depends on 8)

A method as defined in claim 8, further including transmitting a virtual machine inventory for a cluster to a monitor.

### Claim 12 (depends on 11)

A method as defined in claim 11, further including determining an inventory of virtual machines in a cloud.

### Claim 13 (depends on 12)

A method as defined in claim 12, further including determining if a virtual machine included in the virtual machine inventory passes the health check.

### Claim 14 (depends on 13)

A method as defined in claim 13, further including determining if a virtual machine included in the inventory of virtual machines in the cloud passes the health check based on whether the virtual machine is included in the inventory of virtual machines in the cluster.

### Claim 15

A non-transitory computer readable storage medium comprising instructions that, when executed, cause a machine to at least:
determine current states of virtual machines;
communicate with a hybrid cloud infrastructure;
determine if a virtual machine has been in an operational state of “init” or “ready” state for longer than a threshold amount of time;
in response to determining that the virtual machine has been in the “init” or “ready” state for longer than the threshold amount of time, set the virtual machine to a “fail” state;
compare the current states of the virtual machines to target states to determine a difference between the number of operational virtual machines and the number of target virtual machines requested in the target states; and
in response to determining that the difference indicates that there are not enough healthy virtual machines to meet the target states, add virtual machines based on the difference; and
in response to determining that the difference indicates that there are more healthy virtual machines than the number of target virtual machines requested in the target states, instruct the cloud manager to remove an additional virtual machine based on the difference and a health-based ranking of operational virtual machines.

### Claim 16 (depends on 15)

A non-transitory computer readable storage medium as defined in claim 15, wherein the instructions, when executed, cause the machine to store a first driver for accessing a first type of virtual computing cloud and a second driver to accessing a second type of virtual computing cloud.

### Claim 17 (depends on 16)

A non-transitory computer readable storage medium as defined in claim 16, wherein the instructions, when executed, cause the machine to store a third driver for accessing a type of cluster environment.

### Claim 18 (depends on 15)

A non-transitory computer readable storage medium as defined in claim 15, wherein the instructions, when executed, cause the machine to transmit a virtual machine inventory for a cluster to a monitor.

### Claim 19 (depends on 18)

A non-transitory computer readable storage medium as defined in claim 18, wherein the instructions, when executed, cause the machine to determine an inventory of virtual machines in a cloud.

### Claim 20 (depends on 19)

A non-transitory computer readable storage medium as defined in claim 19, wherein the instructions, when executed, cause the machine to determine if a virtual machine included in the virtual machine inventory passes the health check.

### Claim 21 (depends on 20)

A non-transitory computer readable storage medium as defined in claim 20, wherein the instructions, when executed, cause the machine to determine if a virtual machine included in the inventory of virtual machines in the cloud passes the health check based on whether the virtual machine is included in the inventory of virtual machines in the cluster.
