IP Library › Granted Patent US 10,715,403
Granted Patent B2
US 10,715,403 · App. 15/951,163 · Granted Jul 14, 2020

Scalable, standardized I.T. deployment platform

Inventors: Vadim Vladimirskiy (Chicago, IL); Amol Dalvi (Irvine, CA); George Malec (Chicago, IL)
Assignee: Nerdio, Inc.
H04L41/5054G06F9/505G06Q10/06313H04L41/0806H04L41/0886H04L43/50H04L41/082
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,715,403
App. No.
15/951,163
Granted
Jul 14, 2020
Kind
B2
Abstract

The present disclosure provides a scalable, standardized IT deployment environment that allows for deployment to any public or private cloud automatically, and without human interaction, that is resizable such that the individual resources can be released (“turned off”) when not needed and powered on when use is expected. Additionally, the present disclosure provides a cost calculation system for better understanding the costs of the IT environment as early as the pre-provisioning stage. The present disclosure also provides a system for proactively testing productivity and efficiency within the IT environment, the results of which can be fed back into the autoscaling mechanism.

Claims (49)

1. A system that automatically scales the size of a virtual machine in a cloud-based IT environment comprising:

a virtual machine having a plurality of incrementally scalable sizes of which one size is implemented at a time, wherein each size is defined by comprising a number of virtual CPU cores and a first amount of RAM;

a server including a controller controlling the size of the virtual machine;

a memory coupled to the controller, wherein the memory is configured to store program instructions executable by the controller;

wherein, in response to executing the program instructions, the controller is configured to:

receive a baseline implemented size of the virtual machine supporting a first number of user sessions including a first number of virtual CPU cores and a first amount of RAM;

receive a request to resize the virtual machine to a new implemented size supporting a new number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using a user sessions to core ratio, wherein the user sessions to core ratio is defined as the number of user sessions that can be supported per virtual CPU core, calculate a minimum number of virtual CPU cores needed to support the new implemented size by multiplying the user sessions to core ratio by the new number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using a RAM to core ratio, wherein the RAM to core ratio is defined as the amount of RAM that is needed per virtual CPU core, calculate an amount of RAM needed for the new implemented size by multiplying the RAM to core ratio by the number of virtual CPU cores needed to support the new number of user sessions;

in response to the calculation of virtual CPU cores and the calculation of RAM, and without user intervention, identify one of the plurality of incrementally scalable sizes for the virtual machine that comprises at least the minimum number of virtual CPU cores needed to support the new number of user sessions and at least the amount of RAM needed for the new size;

in response to identifying the one of the plurality of incrementally scalable sizes for the virtual machine, and without user intervention, resize the virtual machine to the identified one of the plurality of incrementally scalable sizes for the virtual machine.

2. The system of claim 1 wherein the request to resize the virtual machine to the new size supporting the new number of user sessions is derived from an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time.

3. The system of claim 2 wherein the action plan is automatically generated by a composition of a plurality of work hours profiles, each work hours profile comprising a user adjustable schedule of when an associated user is expected to use the virtual machine.

4. The system of claim 3 wherein each work hours profile is adjustable through a user adjustable graphical user interface.

5. The system of claim 1 wherein the request to resize the virtual machine to a new size supporting the new number of user sessions is triggered by the output of a testing server.

6. The system of claim 5 wherein the output of the testing server automatically adjusts an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time, and the request to resize the virtual machine to a new size supporting the new number of user sessions is derived from the action plan.

7. The system of claim 5 wherein the output of the testing server automatically adjusts at least one work hours profile comprising a user adjustable schedule of when an associated user is expected to use the virtual machine, wherein the adjustment of the at least one work hours profile modifies an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time, and the request to resize the virtual machine to a new size supporting the new number of user sessions is derived from the action plan.

8. The system of claim 1 further comprising:

a second virtual machine having a plurality of incrementally scalable sizes, wherein each size is defined by comprising a number of virtual CPU cores and an amount of RAM;

wherein, in response to executing the program instructions, the controller is configured to:

receive a baseline implemented size of the second virtual machine supporting a second number of user sessions including a second number of virtual CPU cores and a second amount of RAM;

receive a request to resize the virtual machine to a second new implemented size supporting a second number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using the users user sessions to core ratio, calculate a minimum number of virtual CPU cores needed to support the second new implemented size by multiplying the user sessions to core ratio by the second new number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using the RAM to core ratio, calculate an amount of RAM needed for the second new implemented size by multiplying the RAM to core ratio by the number of virtual CPU cores needed to support the second new number of user sessions;

in response to the calculation of virtual CPU cores and the calculation of RAM, and without user intervention, identify one of the plurality of incrementally scalable sizes for the virtual machine that comprises at least the minimum number of virtual CPU cores needed to support the second new number of user sessions and at least the amount of RAM needed for the second new implemented size;

in response to identifying the one of the plurality of incrementally scalable sizes for the second virtual machine, and without user intervention, resize the second virtual machine to the identified one of the plurality of incrementally scalable sizes for the second virtual machine.

9. The system of claim 8 further comprising a non-scalable virtual machine, wherein the request to resize the virtual machine to the new implemented size supporting the new number of user sessions is derived from an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time and the action plan includes a schedule for turning on and off the non-scalable virtual machine.

10. The system of claim 1 further comprising a non-scalable virtual machine, wherein the request to resize the virtual machine to the new implemented size supporting the new number of user sessions is derived from an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time and the action plan includes a schedule for turning on and off the non-scalable virtual machine.

11. A method for automatically scaling a virtual machine in a cloud-based IT environment including: a virtual machine having a plurality of incrementally scalable sizes, wherein each size is defined by comprising a number of virtual CPU cores and a first amount of RAM; a server including a controller controlling the size of the virtual machine; a memory coupled to the controller, wherein the memory is configured to store program instructions executable by the controller, the method comprising the step of:

in response to executing the program instructions, receiving in the controller a baseline implemented size of the virtual machine supporting a first number of user sessions including a first number of virtual CPU cores and a first amount of RAM;

receiving in the controller a request to resize the virtual machine to a new implemented size supporting a new number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using a user sessions to core ratio, wherein the user sessions to core ratio is defined as the number of user sessions that can be supported per virtual CPU core, calculating by the controller a minimum number of virtual CPU cores needed to support the new implemented size by multiplying the user sessions to core ratio by the new number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using a RAM to core ratio, wherein the RAM to core ratio is defined as the amount of RAM that is needed per virtual CPU core, calculating by the controller an amount of RAM needed for the new implemented size by multiplying the RAM to core ratio by the number of virtual CPU cores needed to support the new number of user sessions;

in response to the calculation of virtual CPU cores and the calculation of RAM, and without user intervention, identifying by the controller one of the plurality of incrementally scalable sizes for the virtual machine that comprises at least the minimum number of virtual CPU cores needed to support the new number of user sessions and at least the amount of RAM needed for the new implemented size;

in response to identifying the one of the plurality of incrementally scalable sizes for the virtual machine, and without user intervention, resizing by the controller the virtual machine to the identified one of the plurality of incrementally scalable sizes for the virtual machine.

12. The method of claim 11 wherein the request to resize the virtual machine to the new implemented size supporting the new number of user sessions is derived from an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time.

13. The method of claim 12 wherein the action plan is automatically generated by a composition of a plurality of work hours profiles, each work hours profile comprising a user adjustable schedule of when an associated user is expected to use the virtual machine.

14. The method of claim 13 wherein each work hours profile is adjustable through a user adjustable graphical user interface.

15. The method of claim 11 wherein the request to resize the virtual machine to a new implemented size supporting the new number of user sessions is triggered by the output of a testing server.

16. The method of claim 15 wherein the output of the testing server automatically adjusts an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time, and the request to resize the virtual machine to a new implemented size supporting the new number of user sessions is derived from the action plan.

17. The method of claim 15 wherein the output of the testing server automatically adjusts at least one work hours profile comprising a user adjustable schedule of when an associated user is expected to use the virtual machine, wherein the adjustment of the at least one work hours profile modifies an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time, and the request to resize the virtual machine to a new implemented size supporting the new number of user sessions is derived from the action plan.

18. The method of claim 11 wherein the cloud-based IT environment further comprises: a second virtual machine having a plurality of incrementally scalable sizes, wherein each size is defined by comprising a number of virtual CPU cores and an amount of RAM; and the method further comprises the steps of:

receiving in the controller a request to resize the second virtual machine to a second new implemented size supporting a second new number of user sessions;

in response to the request to resize the second virtual machine, and without user intervention, using the user sessions to core ratio, calculating by the controller a minimum number of virtual CPU cores needed to support the second new implemented size by multiplying the user sessions to core ratio by the second new number of user sessions;

in response to the request to resize the virtual machine, and without user intervention, using a RAM to core ratio, calculating by the controller an amount of RAM needed for the second new implemented size by multiplying the RAM to core ratio by the number of virtual CPU cores needed to support the second new number of user sessions;

in response to the calculation of virtual CPU cores and the calculation of RAM, and without user intervention, identifying by the controller one of the plurality of incrementally scalable sizes for the second virtual machine that comprises at least the minimum number of virtual CPU cores needed to support the second new number of user sessions and at least the amount of RAM needed for the second new implemented size;

in response to identifying the one of the plurality of incrementally scalable sizes for the second virtual machine, and without user intervention, resizing by the controller the second virtual machine to the identified one of the plurality of incrementally scalable sizes for the second virtual machine.

19. The method of claim 18 wherein the cloud-based IT environment further comprises a non-scalable virtual machine, and wherein the request to resize the virtual machine to the new implemented size supporting the new number of user sessions is derived from an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time and the action plan includes a schedule for turning on and off the non-scalable resource.

20. The method of claim 11 wherein the cloud-based IT environment further comprises a non-scalable virtual machine , wherein the request to resize the virtual machine to the new implemented size supporting the new number of user sessions is derived from an action plan comprising a schedule of a plurality of users scheduled to access the virtual machine at any given time and the action plan includes a schedule for turning on and off the non-scalable virtual machine.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Jan 31, 2020
From: CIBC BANK USA
To: ADAR, INC.
Reel/Frame 051767/0045 →
RELEASE OF SECURITY INTEREST Recorded Dec 19, 2019
From: PACIFIC WESTERN BANK
To: ADAR, INC.
Reel/Frame 051334/0375 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: ADAR, INC.
To: ADAR HOLDINGS, INC.
Reel/Frame 051318/0563 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: ADAR HOLDINGS, INC.
To: NERDIO, INC
Reel/Frame 051318/0599 →
SECURITY INTEREST Recorded Jun 24, 2019
From: ADAR, INC.
To: CIBC BANK USA
Reel/Frame 049570/0451 →
SECURITY INTEREST Recorded Apr 18, 2019
From: ADAR, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 048930/0244 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2018
From: VLADIMIRSKIY, VADIM; DALVI, AMOL; MALEC, GEORGE
To: ADAR, INC.
Reel/Frame 045522/0427 →
Continuity (2)
Provisional Application 62484179 · Apr 11, 2017
Related Publication 20180295033A1 · Oct 11, 2018
Cited By (2)
US 12,254,331 US 12,693,885