IP Library › Granted Patent US 11,140,030
Granted Patent B2
US 11,140,030 · App. 16/287,747 · Granted Oct 5, 2021

Dynamic configuration in cloud computing environments

Inventor: Michael Bursell (Halstead, GB)
Assignee: Citrix Systems, Inc.
H04L41/0816G06F9/45558G06F9/5072G06F9/5077G06F15/177G06F21/53G06F21/6281H04L67/303G06F2009/4557G06F2221/2101G06F2221/2149
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,140,030
App. No.
16/287,747
Granted
Oct 5, 2021
Kind
B2
Abstract

Virtual machines, virtualization servers, and other physical resources in a cloud computing environment may be dynamically configured based on the resource usage data for the virtual machines and resource capacity data for the physical resources in the cloud system. Based on an analysis of the virtual machine resource usage data and the resource capacity data of the virtualization servers and other physical resources in the cloud computing environment, each virtual machine may be matched to one of a plurality of virtualization servers, and the resources of the virtualization servers and other physical resources in the cloud may be reallocated and reconfigured to provide additional usage capacity to the virtual machines.

Claims (67)

1. A method comprising:

determining, by one or more computing devices and based on execution of a plurality of virtual machines by physical computing resources of a cloud computing environment, resource usage data for the plurality of virtual machines;

determining, by the one or more computing devices and based on the resource usage data, one or more configurations for executing the plurality of virtual machines using the physical computing resources of the cloud computing environment,

wherein the one or more configurations indicates one or more first virtual machines of the plurality of virtual machines are to be reallocated among the physical computing resources, and

wherein the one or more configurations indicates a change in the physical computing resources that are accessible to one or more second virtual machines of the plurality of virtual machines;

determining, by the one or more computing devices and based on the one or more configurations, to reconfigure the physical computing resources; and

based on determining to reconfigure the physical computing resources:

causing, by the one or more computing devices and based on the one or more configurations, a reallocation of the one or more first virtual machines among the physical computing resources, and

causing, by the computing device and based on the one or more configurations, a reconfiguration of at least one physical computing resource, resulting in the change in the physical computing resources that are accessible to the one or more second virtual machines.

2. The method of claim 1 , wherein the resource usage data comprises one or more of an indication of memory usage, an indication of processor usage, or an indication of bandwidth usage.

3. The method of claim 1 , further comprising:

determining, based on the resource usage data, additional resource usage data that indicates determined amounts of future resource usage; and

wherein determining the one or more configurations is performed based on the additional resource usage data.

4. The method of claim 3 , further comprising:

determining, based on the resource usage data, patterns of resource usage;

determining, based on the patterns of resource usage, one or more virtual machine profiles for the plurality of virtual machines; and

wherein determining the additional resource usage data is performed based on the one or more virtual machine profiles.

5. The method of claim 4 , wherein the one or more virtual machine profiles indicate one or more types of computing services for the plurality of virtual machines, wherein the one or more types comprise a voice-over-Internet Protocol (VoIP) service, a web proxy service, a video streaming service, a cache service, or a gaming server service.

6. The method of claim 1 , wherein the physical computing resources comprise a first server and a second server;

wherein the execution of the plurality of virtual machines by the physical computing resources includes execution of the one or more first virtual machines by the first server and execution of the one or more second virtual machines by the first server;

wherein the reallocation of the one or more first virtual machines among the physical computing resources includes the one or more first virtual machines being reallocated from the first server and to the second server; and

wherein the change in the physical computing resources includes a change in processor capacity of the first server that is accessible to the one or more second virtual machines.

7. The method of claim 1 , wherein determining to reconfigure the physical computing resources is performed based on a determination to notify a customer associated with the plurality of virtual machines of the reconfiguration.

8. The method of claim 1 , wherein the change in the physical computing resources is based on a bandwidth requirement for the one or more second virtual machines.

9. The method of claim 1 , wherein the change in the physical computing resources is based on a network latency requirement for the one or more second virtual machines.

10. The method of claim 1 , further comprising determining, based on the resource usage data, that one or more third virtual machines of the plurality of virtual machines are infected with malware;

wherein determining the one or more configurations is performed based on the one more third virtual machines being infected with the malware; and

causing, based on the one or more configurations, reallocation of the one more third virtual machines based on a repair for the malware or a countermeasure to the malware.

11. A system comprising:

physical computing resources configured to execute a plurality of virtual machines as part of a cloud computing environment; and

one or more computing devices comprising:

one or more processors; and

memory storing executable instructions that, when executed by the one or more processors, cause the one or more computing devices to:

determine, based on execution of the plurality of virtual machines by the physical computing resources, resource usage data for the plurality of virtual machines;

determine, based on the resource usage data, one or more configurations for executing the plurality of virtual machines using the physical computing resources of the cloud computing environment, wherein the one or more configurations indicates one or more first virtual machines of the plurality of virtual machines are to be reallocated among the physical computing resources, and wherein the one or more configurations indicates a change in the physical computing resources that are accessible to one or more second virtual machines of the plurality of virtual machines;

determine, based on the one or more configurations, to reconfigure the physical computing resources; and

based on determining to reconfigure the physical computing resources:

cause, based on the one or more configurations, a reallocation of the one or more first virtual machines among the physical computing resources, and

cause, based on the one or more configurations, a reconfiguration of at least one physical computing resource, resulting in the change in the physical computing resources that are accessible to the one or more second virtual machines.

12. The system of claim 11 , wherein the resource usage data comprises one or more of an indication of memory usage, an indication of processor usage, or an indication of bandwidth usage.

13. The system of claim 11 , wherein the executable instructions, when executed by the one or more processors, cause the one or more computing devices to:

determine, based on the resource usage data, additional resource usage data that indicates determined amounts of future resource usage; and

wherein the executable instructions, when executed by the one or more processors, cause the one or more computing devices to determine the one or more configurations based on the additional resource usage data.

14. The system of claim 13 , wherein the executable instructions, when executed by the one or more processors, cause the one or more computing devices to:

determine, based on the resource usage data, patterns of resource usage;

determine, based on the patterns of resource usage, one or more virtual machine profiles for the plurality of virtual machines; and

wherein the executable instructions, when executed by the one or more processors, cause the one or more computing devices to determine the additional resource usage data based on the one or more virtual machine profiles.

15. The system of claim 14 , wherein the one or more virtual machine profiles indicate one or more types of computing services for the plurality of virtual machines, wherein the one or more types comprise a voice-over-Internet Protocol (VoIP) service, a web proxy service, a video streaming service, a cache service, or a gaming server service.

16. The system of claim 11 , wherein the physical computing resources comprise a first server and a second server;

wherein the execution of the plurality of the virtual machines by the physical computing resources includes execution of the one or more first virtual machines by the first server and execution of the one or more second virtual machines by the first server;

wherein the reallocation of the one or more first virtual machines among the physical computing resources includes the one or more first virtual machines being reallocated from the first server and to the second server; and

wherein the change in the physical computing resources includes a change in processor capacity of the first server that is accessible to the one or more second virtual machines.

17. The system of claim 11 , wherein the executable instructions, when executed by the one or more processors, cause the one or more computing devices to determine to reconfigure the physical computing resources based on a determination to notify a customer associated with the plurality of virtual machines of the reconfiguration.

18. One or more non-transitory computer-readable media storing executable instructions that, when executed, cause one or more computing devices to:

determine, based on execution of a plurality of virtual machines by physical computing resources of a cloud computing environment, resource usage data for the plurality of virtual machines;

determine, based on the resource usage data, one or more configurations for executing the plurality of virtual machines using the physical computing resources of the cloud computing environment,

wherein the one or more configurations indicates one or more first virtual machines of the plurality of virtual machines are to be reallocated among the physical computing resources, and

wherein the one or more configurations indicates a change in the physical computing resources that are accessible to one or more second virtual machines of the plurality of virtual machines;

determine, based on the one or more configurations, to reconfigure the physical computing resources; and

based on determining to reconfigure the physical computing resources:

cause, based on the one or more configurations, a reallocation of the one or more first virtual machines among the physical computing resources, and

cause, based on the one or more configurations, a reconfiguration of at least one physical computing resource, resulting in the change to the physical computing resources that are accessible to the one or more second virtual machines.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the physical computing resources comprise a first server and a second server;

wherein the execution of the plurality of virtual machines by the physical computing resources includes execution of the one or more first virtual machines by the first server and execution of the one or more second virtual machines by the first server

wherein the reallocation of the one or more first virtual machines among the physical computing resources includes the one or more first virtual machines being reallocated from the first server and to the second server; and

wherein the change in the physical computing resources includes a change in processor capacity of the first server that is accessible to the one or more second virtual machines.

20. The one or more non-transitory computer-readable media of claim 18 , wherein the executable instruction, when executed, cause the one or more computing devices to determine to reconfigure the physical computing resources based on a determination to notify a customer associated with the plurality of virtual machines of the reconfiguration.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2019
From: BURSELL, MICHAEL
To: CITRIX SYSTEMS, INC.
Reel/Frame 048460/0027 →
Continuity (3)
Continuation 14993806 · Jan 12, 2016
Continuation 13788445 · Mar 7, 2013
Related Publication 20190199590A1 · Jun 27, 2019