IP Library › Granted Patent US 10,263,842
Granted Patent B2
US 10,263,842 · App. 14/993,806 · Granted Apr 16, 2019

Dynamic configuration in cloud computing environments

Inventor: Michael Bursell (Halstead, GB)
Assignee: Citrix Systems, Inc.
H04L41/0816G06F9/5072G06F9/5077G06F15/177H04L67/303
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 10,263,842
App. No.
14/993,806
Granted
Apr 16, 2019
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 (52)

1. A method comprising:

monitoring, by a computing device, a resource usage amount over a period of time by a virtual machine in a cloud computing environment;

determining, by the computing device, a pattern of the resource usage amount over the period of time by comparing the resource usage amount over the period of time to a processor usage threshold, a memory usage threshold, or a network bandwidth threshold;

determining, by the computing device, based on the pattern of the resource usage amount over the period of time, a virtual machine profile corresponding to a type of computing service comprising one of a voice-over-Internet Protocol (VoIP) server, a web proxy server, a video streaming server, a cache device, or a gaming server; and

assigning, by the computing device, the virtual machine profile to the virtual machine.

2. The method of claim 1 , wherein the resource usage amount is one of a relative physical resource usage amount or an absolute physical resource usage amount.

3. The method of claim 1 , wherein the virtual machine profile defines one or more of a pattern of change in the resource usage amount over the period of time, a minimum threshold for the resource usage amount over the period of time, or a maximum threshold for the resource usage amount over the period of time.

4. The method of claim 1 , wherein the virtual machine profile corresponding to the type of computing service is a new virtual machine profile, and the method comprises:

creating the new virtual machine profile based on the pattern of the resource usage amount over the period of time by the virtual machine.

5. The method of claim 4 , wherein the new virtual machine profile applies to virtual machines associated with a particular user.

6. The method of claim 1 , comprising:

determining, based on the type of computing service, an anticipated amount of computing resources needed by the virtual machine.

7. The method of claim 6 , wherein determining, based on the type of computing service, the anticipated amount of computing resources needed by the virtual machine comprises determining one or more of an anticipated amount of cache needed by the virtual machine or an anticipated amount of disk space needed by the virtual machine.

8. The method of claim 1 , wherein monitoring the resource usage amount over the period of time by the virtual machine comprises monitoring one or more of network bandwidth usage by the virtual machine, network hardware usage by the virtual machine, graphics processor usage by the virtual machine, or storage usage by the virtual machine.

9. The method of claim 1 , comprising:

receiving capability data for one or more physical resources associated with the virtual machine in the cloud computing environment;

determining, based on the capability data and the virtual machine profile, whether the one or more physical resources are capable of meeting needs of the virtual machine; and

after determining that the one or more physical resources are not capable of meeting the needs of the virtual machine, allocating one or more different physical resources to the virtual machine.

10. Non-transitory computer-readable media storing executable instructions that, when executed by at least one processor, cause a system to:

monitor a resource usage amount over a period of time by a virtual machine in a cloud computing environment;

determine a pattern of the resource usage amount over the period of time by comparing the resource usage amount over the period of time to a processor usage threshold, a memory usage threshold, or a network bandwidth threshold;

determine, based on the pattern of the resource usage amount over the period of time, a virtual machine profile corresponding to a type of computing service comprising one of a voice-over-Internet Protocol (VoIP) server, a web proxy server, a video streaming server, a cache device, or a gaming server; and

assign the virtual machine profile to the virtual machine.

11. The non-transitory computer-readable media of claim 10 , wherein the executable instructions, when executed by at least one processor, cause the system to:

create a new virtual machine profile type based on the pattern of the resource usage amount over the period of time by the virtual machine.

12. The non-transitory computer-readable media of claim 10 , wherein the executable instructions, when executed by at least one processor, cause the system to:

determine, based on the type of computing service, an anticipated amount of computing resources needed by the virtual machine.

13. The non-transitory computer-readable media of claim 10 , wherein the executable instructions, when executed by at least one processor, cause the system to:

receive capability data for one or more physical resources associated with the virtual machine in the cloud computing environment;

determine, based on the capability data and the virtual machine profile, whether the one or more physical resources are capable of meeting needs of the virtual machine; and

after determining that the one or more physical resources are not capable of meeting the needs of the virtual machine, allocate one or more different physical resources to the virtual machine.

14. The non-transitory computer-readable media of claim 12 , wherein the executable instructions, when executed by at least one processor, cause the system to:

determine, based on the type of computing service, one or more of an anticipated amount of cache needed by the virtual machine or an anticipated amount of disk space needed by the virtual machine.

15. A system comprising:

at least one processor; and

non-transitory memory storing executable instructions that, when executed by the at least one processor, cause the system to:

monitor a resource usage amount over a period of time by a virtual machine in a cloud computing environment;

determine a pattern of the resource usage amount over the period of time by comparing the resource usage amount over the period of time to a processor usage threshold, a memory usage threshold, or a network bandwidth threshold;

determine, based on the pattern of the resource usage amount over the period of time, a virtual machine profile corresponding to a type of computing service comprising one of a voice-over-Internet Protocol (VoIP) server, a web proxy server, a video streaming server, a cache device, or a gaming server; and

assign the virtual machine profile to the virtual machine.

16. The system of claim 15 , wherein the executable instructions, when executed by the at least one processor, cause the system to:

create a new virtual machine profile type based on the pattern of the resource usage amount over the period of time by the virtual machine.

17. The system of claim 15 , wherein the executable instructions, when executed by the at least one processor, cause the system to:

determine, based on the type of computing service, an anticipated amount of computing resources needed by the virtual machine.

18. The system of claim 15 , wherein the executable instructions, when executed by the at least one processor, cause the system to:

receive capability data for one or more physical resources associated with the virtual machine in the cloud computing environment;

determine, based on the capability data and the virtual machine profile, whether the one or more physical resources are capable of meeting needs of the virtual machine; and

after determining that the one or more physical resources are not capable of meeting the needs of the virtual machine, allocate one or more different physical resources to the virtual machine.

19. The system of claim 17 , wherein the executable instructions, when executed by the at least one processor, cause the system to:

determine, based on the type of computing service, one or more of an anticipated amount of cache needed by the virtual machine or an anticipated amount of disk space needed by the virtual machine.

20. The system of claim 15 , wherein the executable instructions, when executed by the at least one processor, cause the system to:

monitor one or more of network bandwidth usage by the virtual machine, network hardware usage by the virtual machine, graphics processor usage by the virtual machine, or storage usage by the virtual machine.

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 Jan 13, 2016
From: BURSELL, MICHAEL
To: CITRIX SYSTEMS, INC.
Reel/Frame 037471/0532 →
Continuity (2)
Continuation 13788445 · Mar 7, 2013
Related Publication 20160127184A1 · May 5, 2016
Cited By (12)
US 12,210,415 US 12,222,809 US 12,222,810 US 12,242,349 US 12,259,784 US 12,259,785 US 12,259,786 US 12,271,266 US 12,298,853 US 12,306,717 US 12,321,236 US 12,399,782