The present disclosure relates generally to the field of cloud computing and networking, and in particular, to a device and a method for controlling allocation of network resources to a software application operating in a cloud environment.
Cloud computing is a technique that is being used for a wide variety of enterprise and end-user applications. Providers offer varying service portfolios that differ in resource configurations and services that can be provided. A comprehensive solution for allocation of resources is fundamental to any cloud computing service provider. Any resource allocation model has to consider available computational resources as well as network resources, to accurately reflect practical demands. Resource allocation algorithms aim to accomplish the task of scheduling virtual machines on the servers residing in data centers, in order to schedule available network resources in a way that complies with the problem constraints. Several external and internal factors that affect the performance of resource allocation models have been considered in the past.
However, as cloud computing platforms adopt virtualization as an enabling technology, it becomes an increasingly challenging task to distribute system resources to each user according to the diverse requirements.
Furthermore, although ample research has already been conducted in order to meet QoS requirements, still, the proposed solutions lack simultaneous support for multiple networks' policies, degrade the aggregated throughput of network resources, and incur CPU overhead.
One typical characteristic that is shared by the various solutions, is based on management of the computing resources by applications which are implemented in a cloud environment (either private or public environment), for example, the management is carried out by the application through adding and removing CPUs that are allocated to that specific application.
US 20110320606 describes for example a data processing system for managing network resources. Upon receiving a request for resources in the network data processing system, which comprises requested values for a plurality of attributes for the resources in the network data processing system, the potential resources in the network data processing system are identified. The request is evaluated based on proximity scores for the plurality of attributes in the potential resources relative to an ideal allocation of the potential resources and resource weights for the plurality of attributes in the potential resources.
US 20130185729 discloses an apparatus for managing resources assigned to an application or service. A resource manager maintains a set of workload classes and classifies workloads using workload signatures. For example, the resource manager minimizes or reduces resource management costs by identifying a relatively small set of workload classes during a learning phase, determining preferred resource allocations for each workload class, and then during a monitoring phase, classifying workloads and allocating resources based on the preferred resource allocation for the classified workload.
The disclosure may be summarized by referring to the appended claims.
It is an object of the present disclosure to provide a system and a method for improving performance of data processing.
It is another object of the present disclosure to provide a device and a method for affecting control over network resources via a network element such as a router.
It is another object of the present disclosure to provide a device and a method to enable a software application to communicate with a router and exchange messages therewith in order to allow the router to control network resources utilized by that software application.
Other objects of the present disclosure will become apparent from the following description.
According to a first embodiment of the present disclosure, there is provided a network element (e.g. a router) operative in an IP-based communication network (e.g. a cloud computing environment in an IP-based computer network), and configured to manage resources in the communication network that are being utilized by a software application, wherein the management of resources is carried out by affecting changes in these resources in response to obtaining information retrieved from an application program interface (API) associated with the software application.
According to another embodiment, the information retrieved from the API comprises values of key performance indicators (KPIs) associated with that software application.
By yet another embodiment, the network element is a member selected from a group that comprises a router, a switch and the like.
According to another aspect of the disclosure, there is provided a method for use by a network element operative in an IP-based communication network (e.g. a cloud computing environment in an IP-based computer network), for managing resources that are being utilized by a software application, wherein the method comprises affecting changes by the network element in these resources, in response to obtaining information retrieved from an application program interface (API) associated with that software application.
In accordance with another embodiment, the information retrieved from the API comprises values of key performance indicators (KPIs) associated with said software application.
According to anther embodiment of this aspect of the disclosure, the method comprises the steps of:
(i) registering the software application with the network element;
(ii) providing the software application with information that relates to a user experience, of users communicating with the software application;
(iii) providing the network element with information that would enable the network element to affect changes in resources associated with the communication network that are being utilized by the software application; and
(iv) affecting one or more changes in these resources based on the information provided in step (iii).
By still another embodiment, the method further comprising:
(v) retrieving information for assessing results of affecting at least one of the one or more changes; and
(vi) providing the software application with information, based on the information retrieved in step (v).
According to yet another embodiment of this aspect of the invention, the network element is a router.
In accordance with still another embodiment, the software application is registered with the router via a network API to enable the router to identify the user experience, based on retrieved values of (KPIs) associated with the software application.
According to another embodiment, the information provided in step (ii) is information that relates to a user experience as reflected by the router and/or by the communication network.
By still another embodiment, the information that would enable the network element to affect changes in the resources provided in step (iii), comprises one or more indications that respective pre-defined KPI thresholds have been crossed.
According to still another embodiment, the changes affected in step (iv) is a member of a group that consists of: changing QoS profile, changing routing metric, and changing virtual routing and forwarding (VRF) of packets.
In accordance with another embodiment, the method provided is incorporated in a firewall activity to reduce processing load (e.g. calculations) that would otherwise be required to be carried out by the firewall in the case of an attack on the software application, which in turn would result in a request that would be initiated by the firewall to divert or block traffic at the network level.
By still another embodiment, the software application is a storage software application, and the method is configured to enable routing data being conveyed for storage by the storage software application, in case that an approach to a respective storage device is currently adversely affected by a network congestion.
According to another embodiment, the method is configured to enable allocating additional bandwidth to the software application in order to overcome a temporary performance problem associated therewith.
In accordance with yet another embodiment, the software application is configured to affect one or more temporary network operational changes in order to enhance user experience.
The accompanying drawings, which are incorporated herein and constitute a part of this specification, illustrate several embodiments of the disclosure and, together with the description, serve to explain the principles of the embodiments disclosed herein.
Some of the specific details and values in the following detailed description refer to certain examples of the disclosure. However, this description is provided only by way of example and is not intended to limit the scope of the invention in any way. As will be appreciated by those skilled in the art, the claimed method and device may be implemented by using other methods that are known in the art per se. In addition, the described embodiments comprise different steps, not all of which are required in all embodiments of the invention. The scope of the invention can be summarized by referring to the appended claims.
Cloud computing is a form of Internet-based computing that provides shared computer processing resources and data to computers and other devices, on demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources (e.g., computer networks, servers, storage, applications and services), which can be rapidly provisioned and released while applying minimal management effort. Basically, cloud computing allows the users and enterprises with various capabilities to store and process their data in either privately owned cloud, or on a third-party server in order to make data accessing mechanisms much more easy and reliable. Cloud computing relies on sharing of resources to achieve coherence and economy of scale, similar to a utility (like the electricity grid) over an electricity network.
Applications that are running in a cloud environment are by definition adapted to share computing, storage and networking resources for better utilization of the available resources. The underlying assumption is that if a first application has a low demand for resources, then a second application may use these resources on request. In today's environment, computing resources may indeed be managed this way. Yet, networking resources are more complicated to manage in this manner, mainly due to the fact that the networking layer is traditionally not an integrated component of servers at which the application is installed, but is comprised of networking elements like routers and switches that are managed and dimensioned based on static configurations and pre-assumptions of the required resources for all hosted applications at a given server or data center.
Network element 10 of
Typically, an application program interface (hereinafter: “API”) is a set of routines, protocols, and tools for building software applications. An API specifies how software components should interact. Additionally, APIs may be used when programming graphical user interface (GUI) components. A good API makes it easier to develop a program by providing all the building blocks, and then incorporating these blocks together. Most operating environments, such as MS-Windows™ for example, provide APIs, thereby allowing programmers to write applications consistent with the relevant operating environment.
According to an embodiment of the present disclosure, the network element (e.g. router 10) retrieve from the relevant API of one or more software applications, information that relates to at least the following two characteristics associated with the respective software application:
The term performance indicator or key performance indicator (KPI) as used herein throughout the specification and claims is used to denote a performance measurement. Key performance indicators define a set of values against which to measure. These raw sets of values, which are fed to systems in charge of summarizing the information, are referred to as indicators. KPIs may evaluate the performance of a particular activity associated therewith, and such an evaluation may often lead to the identification of potential improvements.
Following are number of cases exemplifying various implementations of the above-described solution.
The proposed solution may be used by having it integrated with firewalls. In the case of an attack on the application, the firewall may request a traffic diversion or blocking at the network level, and using the proposed solution helps in reducing the amount of processing that would otherwise be required for the firewall to carry out, thereby allowing more services to be carried out by the firewall, and consequently, to enable increasing the firewall's capacity.
The proposed solution may be used by having it integrated with storage applications. For example, in case where there is a plurality of storage devices and the approach to one or more of this plurality of storage devices is currently adversely affected by a network congestion, the respective one or more storage applications may request that the router would change the route of data being conveyed for storage by the one or more respective storage applications, to a better performing route.
The proposed solution may be used by having it integrated with the operative router, so that any application communicating with that router may request allocation of additional bandwidth for its operations in order to overcome temporary performance problems.
The proposed solution may be used by having it integrated with the operative router, so that any application communicating with that router which suffers from a diminished user experience (as reflected by values of the relevant KPIs retrieved), may request initiating of a series of network changes in order to enhance the user experience, e.g. affecting a temporarily change to the QoS profile.
Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IL2018/050780 | 7/16/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62540583 | Aug 2017 | US |