IP Library › Granted Patent US 10,009,284
Granted Patent B2
US 10,009,284 · App. 13/931,410 · Granted Jun 26, 2018

Policy-based session establishment and transfer in a virtualized/cloud environment

Inventors: Naseem A. Khan (Oak Hill, VA); John K. Connell (Quincy, MA)
Assignee: Verizon Patent and Licensing Inc.
H04L47/70H04L47/805H04L47/808H04L47/822H04L47/829
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,009,284
App. No.
13/931,410
Granted
Jun 26, 2018
Kind
B2
Abstract

A device may receive a request for a particular service from a user device. The device may determine a priority class associated with the service. The device may determine, based on the priority class, quality of service requirements associated with providing the service. The device may determine, based on the quality of service requirements, one or more cloud resources for providing the service to a user of the user device. The device may allocate the one or more cloud resources to provide the service to the user.

Claims (164)

1. A method comprising:

determining, periodically and by a device, a current utilization of one or more cloud resources,

the current utilization of the one or more cloud resources including at least one of:

CPU utilization, or

compute utilization, and

the current utilization of the one or more cloud resources being determined more frequently during a first period than a second period,

the first period being associated with a higher demand for the one or more cloud resources than the second period;

receiving, by the device, a request for a service from a user device,

the service to be provided, by the one or more cloud resources, during a particular period of time;

obtaining, by the device, subscriber profile information associated with the user device based on the request,

the subscriber profile information identifying a subscription level associated with the user device;

determining, by the device, that the request is for a particular type of service;

determining, by the device, a priority class associated with the request based on the subscriber profile information and based on the particular type of the service;

determining, by the device and based on historical data associated with the particular period of time, an expected utilization of cloud resources during the particular period of time,

the expected utilization of cloud resources including:

an expected quantity of sessions,

an expected quantity of sessions per service class, and

an expected duration of expected sessions, and

the particular period of time including at least one of:

a time of day,

a day of a week, or

a time period during a day;

determining, by the device and based on the priority class and the expected utilization of cloud resources, quality of service requirements associated with providing the service during the particular period of time;

determining, by the device, an allocation of the one or more cloud resources required for providing the service based on load balancing information and the expected utilization of cloud resources;

generating, by the device and based on determining the expected utilization of cloud resources, a service graph associated with an available set of cloud resources for providing the service during the particular period of time,

the service graph representing an application flow within the available set of cloud resources for providing the service during the particular period of time;

determining, by the device, that the available set of cloud resources is insufficient for the quality of service requirements based on the service graph and based on the allocation of the one or more cloud resources required for providing the service;

determining, by the device and based on the quality of service requirements, a location from which to launch the service,

the location being geographically closer to the user device than the one or more cloud resources;

starting, by the device, based on determining that the available set of cloud resources is insufficient, and based on the location, a new instance of cloud resources for providing the service, to the user device, during the particular period of time,

the new instance of cloud resources being geographically closer to the user device than the one or more cloud resources; and

performing, by the device, a traffic steering function to allocate the new instance of cloud resources to provide the service, to the user device, during the particular period of time,

the traffic steering function being implemented dynamically such that traffic is re-routed to one or more other cloud resources while a session of the service is ongoing based on a problem occurring at the new instance of cloud resources.

2. The method of claim 1 , further comprising:

obtaining service information,

the service information being associated with the user device; and

where determining the priority class includes:

determining the priority class based on the service information.

3. The method of claim 1 , further comprising:

obtaining service information,

the service information including a set of rules for allocating the new instance of cloud resources; and

where performing the traffic steering function to allocate the new instance of cloud resources includes one or more of:

applying a first rule, included in the set of rules, to map a priority, associated with the request, to the priority class, or

applying a second rule, included in the set of rules, for allocating the one or more cloud resources in geographically diverse locations.

4. The method of claim 1 , further comprising:

determining a load associated with the one or more cloud resources; and

where performing the traffic steering function to allocate the new instance of cloud resources includes:

performing the traffic steering function to allocate the new instance of cloud resources based on the load associated with the one or more cloud resources.

5. The method of claim 1 , further comprising:

simulating a behavior of a network associated with providing the service to the user device; and

determining performance data associated with simulating the behavior of the network; and

where performing the traffic steering function to allocate the new instance of cloud resources includes:

performing, based on the performance data and based on the quality of service requirements, the traffic steering function to allocate the new instance of cloud resources to provide the service to the user device via the network.

6. A device comprising:

a processor to:

determine, periodically, a current utilization of cloud resources,

the current utilization of the cloud resources including at least one of:

CPU utilization, or

compute utilization, and

the current utilization of the cloud resources being determined more frequently during a first period than a second period,

the first period being associated with a higher demand for the cloud resources than the second period;

receive a request for a service from a user device,

the service to be provided, by the cloud resources, during a particular period of time;

obtain subscriber profile information associated with the user device based on the request,

the subscriber profile information identifying a subscription level associated with the user device;

determine that the request is for a particular type of service;

determine a priority class associated with the request based on the subscriber profile information and based on the particular type of the service;

determine, based on historical data associated with the particular period of time, an expected utilization of cloud resources during the particular period of time,

the expected utilization of cloud resources including:

an expected quantity of sessions,

an expected quantity of sessions per service class, and

an expected duration of expected sessions, and

the particular period of time including at least one of:

a time of day,

a day of a week, or

a time period during a day;

determine, based on the priority class and the expected utilization of cloud resources, quality of service requirements associated with providing the service during the particular period of time;

determine, based on load balancing information and the expected utilization of cloud resources, an allocation of the one or more cloud resources required for providing the service;

generate, based on determining the expected utilization of cloud resources, a service graph associated with a pool of available cloud resources for providing the service during the particular period of time,

the service graph representing an application flow within the pool of available cloud resources for providing the service during the particular period of time;

determine, based on the service graph and based on the allocation of the one or more cloud resources required for providing the service, that the pool of available cloud resources are insufficient for the quality of service requirements;

determine, based on the quality of service requirements, a location from which to launch the service,

the location being geographically closer to the user device than the one or more cloud resources;

start, based on determining that the pool of available cloud resources are insufficient and based on the location, a new instance of cloud resources for providing the service, to the user device, during the particular period of time,

the new instance of cloud resources being geographically closer to the user device than the cloud resources; and

perform a traffic steering function to allocate the new instance of cloud resources to provide the service, to the user device, during the particular period of time,

the traffic steering function being implemented dynamically such that traffic is re-routed to one or more other instances of cloud resources while a session of the service is ongoing based on a problem occurring at the new instance of cloud resources.

7. The device of claim 6 , where the service includes a high priority service.

8. The device of claim 6 , where, when determining the expected utilization of cloud resources, the processor is to:

determine a quantity of service requests for the service expected to be received by the device during the particular period of time.

9. The device of claim 6 , where the location is a first location;

where the processor is further to:

determine performance data,

the performance data including information identifying a latency associated with the pool of available cloud resources; and

determine a second location to reduce the latency associated with the pool of available cloud resources; and

where, when starting the new instance of cloud resources, the processor is to:

start the new instance of cloud resources based on determining the second location.

10. A non-transitory computer readable medium storing instructions, the instructions comprising:

one or more instructions that, when executed by a processor, cause the processor to:

determine, periodically, a current utilization of a pool of cloud resources,

the current utilization of the pool of cloud resources including at least one of:

CPU utilization, or

compute utilization,

the current utilization of the pool of cloud resources being determined more frequently during a first period than a second period,

the first period being associated with a higher demand for the pool of cloud resources than the second period;

receive a request for a service from a user device,

the service to be provided, by the pool of cloud resources, during a particular period of time;

obtain subscriber profile information associated with the user device based on the request,

the subscriber profile information identifying a subscription level associated with the user device;

determine that the request is for a particular type of service;

determine a priority class associated with the request based on the subscriber profile information and based on the particular type of service;

determine, based on historical data associated with the particular period of time, an expected utilization of cloud resources during the particular period of time,

the expected utilization of cloud resources including:

an expected quantity of sessions,

an expected quantity of sessions per service class, and

an expected duration of expected sessions, and

the particular period of time including at least one of:

a time of day,

a day of a week, or

a time period during a day;

determine, based on the priority class and the expected utilization of cloud resources, quality of service requirements associated with providing the service during the particular period of time;

determine an allocation of cloud resources required for providing the service based on load balancing information and the expected utilization of cloud resources;

generate, based on determining the expected utilization of cloud resources, a service graph associated with an available set of cloud resources for providing the service during the particular period of time,

the service graph representing an application flow within the available set of cloud resources for providing the service during the particular period of time;

determine that the available set of cloud resources is insufficient for the quality of service requirements based on the service graph and based on the allocation of cloud resources required for providing the service;

determine, based on the quality of service requirements, a location from which to launch the service,

the location being geographically closer to the user device than the one or more cloud resources;

start, based on determining that the available set of cloud resources is insufficient, and based on the location, a new instance of cloud resources for providing the service, to the user device, during the particular period of time,

the new instance of cloud resources being geographically closer to the user device than the pool of cloud resources; and

perform a traffic steering function to allocate the new instance of cloud resources to provide the service, to the user device, during the particular period of time,

the traffic steering function being implemented dynamically such that traffic is re-routed to one or more other cloud resources while a session of the service is ongoing based on a problem occurring at the new instance of cloud resources.

11. The non-transitory computer readable medium of claim 10 , where the one or more instructions, when executed by the processor, further cause the processor to:

obtain service information,

the service information being associated with the user device; and

where the one or more instructions, that cause the processor to determine the priority class, cause the processor to:

determine the priority class based on the service information.

12. The non-transitory computer readable medium of claim 10 , where the one or more instructions, when executed by the processor, further cause the processor to:

obtain service information,

the service information including a set of rules for determining the priority class; and

map a priority associated with the request to the priority class based on applying the set of rules.

13. The non-transitory computer readable medium of claim 10 , where one or more instructions when executed by the processor, further cause the processor to:

determine a load associated with the pool of cloud resources; and

where the one or more instructions, that cause the processor to perform the traffic steering function to allocate the new instance of cloud resources, cause the processor to:

perform the traffic steering function to allocate the new instance of cloud resources based on the load associated with the pool of cloud resources.

14. The non-transitory computer readable medium of claim 10 , where the one or more instructions, when executed by the processor, further cause the processor to:

simulate a behavior of a network associated with providing the service to the user device; and

determine performance data associated with simulating the behavior of the network; and

where the one or more instructions, that cause the processor to perform the traffic steering function to allocate the new instance of cloud resources, cause the processor to:

perform, based on the performance data and based on the quality of service requirements, the traffic steering function to allocate the new instance of cloud resources.

15. The method of claim 1 , further comprising:

obtaining service information,

the service information being associated with the user device; and

where determining the priority class includes:

determining the priority class based on the service information.

16. The device of claim 6 , where the processor is further to:

divide the particular period of time into time segments; and

where, when determining the expected utilization of cloud resources during the particular period of time, the processor is to:

determine the expected utilization of cloud resources for a subsequent time segment.

17. The device of claim 6 , where, when generating the service graph, the processor is to:

generate the service graph dynamically based on available cloud resources being identified.

18. The non-transitory computer readable medium of claim 10 , where the one or more other cloud resources are virtual machines.

19. The method of claim 1 , where the expected utilization of cloud resources includes:

aggregate cloud resource requirements for the particular period of time.

20. The non-transitory computer readable medium of claim 10 , where the service graph is modified in real time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2013
From: KHAN, NASEEM A.; CONNELL, JOHN K.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 030713/0888 →
Continuity (1)
Related Publication 20150006733A1 · Jan 1, 2015