The present invention generally relates to providing a user interface for modeling network resource usage.
Current trends in networks include moving away from the installation of on-site hardware and appliances in favor of virtualization, cloud computing, hybrid workloads, and model-driven networking. Such trends have created new possibilities for creating and deploying dynamic workloads both on-site and in the cloud.
The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
A system includes: a processor, a display screen, and a user interface (UI) application to be executed by the processor and operative: to present policy attributes in a UI with interactive tradeoff analysis on the display screen, where the policy attributes are associated with a network workflow structure, and the interactive tradeoff analysis includes constraint-based optimization of a workflow response, and to dynamically apply said policy attributes to instantiation and deployment of networked resources associated with the network workflow structure.
A method for providing hybrid cloud network resource allocation is implemented on at least one computing device and includes: extracting attribute policies from a network work How structure, presenting the attribute policies in a user interface with interactive tradeoff analysis, where the interactive tradeoff analysis includes constraint-based optimization of a workflow response, and dynamically applying the attribute policies to instantiation and deployment of a network associated with the network workflow structure.
Service and container orchestration solutions as well as cloud platform solutions are known in the art. However, such solutions typically lack a user interface for exploring and/or optimizing policy tradeoffs for the definition and management of hybrid cloud workflows for actual implementation in the field. Accordingly, users of such solutions typically configure hybrid cloud deployments at a low level of detail and without real-time visibility of tradeoffs involved in policy decisions, thereby resulting in relatively lengthy and error-prone deployments and/or non-optimal service configurations that may not necessarily meet the users' needs.
Reference is now made to
Settings 25A and 25B may be interpreted as a series of progressively more specific, tiered policies. For example, policy 32A may be a broadly defined policy of total latency being less than 2.0 seconds: “Total latency<2.0s.” Policy 34A is a more specifically detailed policy which accounts for two different factors in total latency: device latency and link latency: “Cheapest config for 2 devices+1 link<2.0s.” It will be appreciated that in the network to be deployed in the exemplary embodiment of
Policy 34A may be more specifically detailed in policy 35A: “Each Device I/O+Write+Process<1.7s;” and policy 36A: “Each link Transmission<0.3 sec.” Policy 36A may be ever more specifically detailed in policy <8A: “Virtual Link+WAN OPTIMIZATION.” Policies 35A and 38A may be used to allocate network resources 41A, 42A, and 43A. As depicted in
Similar to policy 32A, policy 32B may be a broadly defined policy of total latency being less than 2.2 seconds: “Total latency<2.2s.” Similar to policy 34A, policy 34B is a more specifically detailed policy which accounts for two different factors in total latency: device latency and link latency: “Cheapest config for 2 devices+1 link<2.2s.” Policy 35B provides specific details for the devices addressed by policy 34B, and is similar to policy 35A. Policy 36B, however, differs from policy 36A in that a greater link latency is tolerated: “Each link Transmission<0.5s.” It will be appreciated that there are fewer tiers of policies for setting 25B than for setting 25A, reflecting a greater tolerance for total latency, i.e., 2.0s vis-a-vis 2.2s. It will be appreciated that the number of tiers for each setting 25 may vary depending on implementation requirements.
Policies 35B and 36B may be used to allocate network resources 41B, 42B, and 43B. Similar to resources 41A and 42A, resources 41B and 42B may both be associated with a cost of $40. However, due to the greater tolerance for link latency expressed by policy 36B, unlike resource 43A, resource 43B may be associated with a cost of $0 (i.e. no WAN optimization needed), such that the total allocation of resources is within the $80 budget constraint for setting 25B.
It will be appreciated that the number of x-axis values in interactive policy slider 21 may be statically defined policy tiers or be dynamically defined policy tiers based on a number of factors, including the addition of or reduction of network features or the availability of devices or resources at a given point in time.
Reference is now made to
User interface (UI) 100 is a graphical representation of an exemplary hybrid environment for a sports content provider system. UI 100 comprises representation of both physical installations 110 and production equipment 120. In accordance with the exemplary embodiment of
UI 100 comprises interactive visualizations that are presented for a number of policy attributes associated with the production and provision of a basketball game broadcast; for example, availability policy attribute 160, degradation tolerance policy attribute 165, and processing time policy attribute 169. Each of these policy attributes may be composed of an input field/slider and a graph component, where the slider may function in generally the same manner as interactive policy slider 21 (
For policy attributes 160, 165 and 169, the slider along the bottom of the graph represents a range of values which may be available In the deployment environment for the given policy attribute at a given time, and the bar heights on the y-axis of the slider represent a constraint associated with each of those values (e.g., predicted cost in the deployment environment). The values for policy attributes 160, 165, and 169 may be derived from an inventory of available resource configurations including, but not limited to, element size or element model version, or by adding “under-the-hood” inline elements. For example, in processing time policy attribute 169, cost values may be derived based on configuration characteristics of elements, e.g. video mixer 133: based on model size, based on different vendor models, or by adding a WAN optimization node between adjacent elements to reduce latency. In general, graph values may differ across policy attributes both in scale and in count, based on the element characteristics from which the graph values are derived and the available options in the deployment environment.
UI 100 also comprises budget constraint policy 150. For a given policy attribute (e.g.. 160, 165,, or 169), the shading of the associated graph's bars may correspond to those values which are possible or not possible within the constraints of budget constraint policy 150, based on the current values of all other policy attributes.
As depicted in
UI 100 may also comprise validate button 170, publish button 175 and feature description 180. Selection of validate button 170 (e.g., by clicking on it) may activate autonomous validation of the overall deployment represented in UI 100. Selection of publish button 175 may propagate the deployment to the underlying allocation systems. Feature description 180 may be used to enter comments or notes for the currently open version of UI 100, i.e., for a “home basketball game”, as per workflow title 101.
Reference is now made to
As depicted in
Reference is now made to
In accordance with an embodiment described herein, a contextual insight banner 155 may be included with budget constraint policy 150 that may present relevant “what if” scenarios to the user, providing suggestions for optimizing policy decisions. Based on a current state of the policy settings, one or more manually created or algorithmically generated recommendations may be presented which describe possible tradeoffs in the format of <marginal amount of attribute A> <affect> <marginal amount of attribute B>. For example, a possible contextual insight banner 155 may be provided with the following text: “A $150 budget increase could reduce your processing time by over 20%.” Such insights may help to further elucidate optimizations and tradeoffs that are possible as the user interactively evaluates real-time policy decisions through directly manipulating and affecting the linked policy attributes. It will be appreciated that the embodiment; described herein may support other formats for contextual insight banner 155, with more or fewer variables.
Reference is now made to
Operator dashboard 225 may be employed to toggle between different possible representations of network resource allocation, e.g., as an event, workflows, or venue. Business requirement filters 220 may provide an optional filtering mechanism for selecting items in catalog 230. For example, the exemplary workflow view presented in
It will be appreciated that the embodiments described herein are not limited specifically to the inclusion of the UI features presented in the exemplary embodiments of
In accordance with an exemplary embodiment, the user may select (see arrow) to adjust latency attribute policy 269. As illustrated in
As depicted in
As depicted in
As depicted in
Reference is now made to
Computing device 300 comprises hardware and software components, such as are well-known in the art. Computing device 300 also comprises processor 310, input/output (I/O) module 320, display screen 330 and UI application 340. It will be appreciated that computing device 300 may comprise more than one processor 310. For example, one such processor 310 may be a special purpose processor operative to at least execute UI application 340 to present UI 100 and/or UI 200. Processor 310 may be operative to execute instructions stored in a memory (not shown), such as, for example, UI application 340. I/O module 320 may be any suitable software or hardware component such as a network interface card (NIC), universal serial bus (USB) port, disk reader, modem or transceiver that may be operative to communicate with a virtual or physical resource and/or a virtual or physical resource application (e.g., service and container orchestration applications, or cloud platform applications) over a communications network such as, but not limbed to, the Internet.
Display screen 330 may implemented as an integrated or peripheral component of computing device 300. Display screen 330 may be operative to at least present the visual aspects of UI 100 and/or UI 200 as rendered by UI application 340. In some embodiments, display screen 330 may be implemented as a touchscreen operative to directly receive user input. Alternatively, or in addition, computing device 300 may be implemented with other integrated and/or peripheral input devices, e.g., a keyboard, mouse, joystick, microphone, etc. that may be operative to receive user input via other methods known in the art, such as, for example, keystrokes, mouse clicks, voice commands, etc. UI application 340 may be an application implemented in hardware or software that may be executed by processor 310 in order to at least present UI 100 and/or UI 200 to a user of computing device 300.
It will be appreciated that the embodiments described herein may also support the distribution of the functionality attributed to computing device 300 to multiple such devices. It will similarly be appreciated that in accordance with some embodiments, one or more (physical or virtual) resource applications 350 may be installed on computing device 300.
Reference is now made to
The linked physical and virtual elements that comprise a given workflow may intrinsically have certain characteristics that describe their capabilities, as well as their relationships among one another. When taken together, the commonalities or overlaps across the capabilities of the linked physical and virtual elements may be considered as higher-level characteristics of the workflow as a whole, which may then be presented as policy attributes of the workflow.
For example, in the media content production workflows described in
These policy attributes may be the building blocks of policy used to instantiate and deploy the workflow in a dynamic, elastic, hybrid physical/virtual environment. UI application 340 may visualize (step 420) these policy attributes as a multivariate, interactive data visualization in which the attributes are linked through a common constraint (i.e. budget constraint policy 150). As the user changes values for a given policy attribute, the corresponding effects on other attributes in light of the constraint are reflected in real-time, enabling the user to quickly and efficiently understand the tradeoffs involved in policy decisions and optimize his choices accordingly.
In the embodiments of
UI application 340 may receive (step 430) adjustments to attribute policies from the user in an iterative process. It will be appreciated that steps 420 and 430 may be performed iteratively as the user adjusts policies based on the ensuing changes to the visualization in UI 100 or UI 200.
UI application 340 may validate (step 440) the workflow in terms of one or more of its constraints. For example, the workflow of
UI application 340 may publish (step 450) the values entered in UI 100 or UI 200 to one or more underlying resource applications 350. Publishing may entail saving the attribute policies configured in UI 100/200, and passing the saved values as input to a resource application, such as, for example, a cloud abstraction platform. When the user chooses to validate or activate a given instance of a workflow, the associated resource application instantiates the underlying workflow elements with characteristics meeting the user's policy requirements, and deploys these elements to cloud and/or on-premise infrastructure. This dynamic instantiation based on the user's policy requirements may be possible because the attribute policies are derived from the characteristics oi a given workflow (in step 410) and the available inventory in a deployment environment.
As various factors (e.g., cloud hosting infrastructure costs) change in an on-demand deployment environment, resource application 350 may be instructed by UI application 340 to dynamically make adjustments to continue meeting the user's policy requirements. These dynamic adjustments may be possible because the set of attribute policies is a holistic representation of the workflow, rather than a one-to-one mapping of discrete elements. These dynamic adjustments may include which device models to instantiate, which clouds to deploy to, and/or which elements to spin up or spin down as the platform reallocates workloads according to the user's policy requirements. Likewise, as elements in the available inventory are added, modified, or removed, a resource application may automatically reallocate components as needed without proactive intervention by the user, as long as the overall policy constraints may still be met.
Based on the changes to the workflow instantiation, any corresponding updates to the policy attribute values may then be reflected in the interactive visualizations in steps 420 and 430, allowing the user to have continual visibility and refine the desired policy requirements as needed in a reactive feedback loop. UI 100/200 may therefore reflect the effect of real-time changes (by the user or in the deployment environment) on the set of derived workflow attributes, allowing users to dynamically make adjustments to optimize against a given constraint.
It will therefore be appreciated that by visualizing values for workflow policy attributes in the context of a constraint, and by visualizing how changes to a given attribute may directly affect tradeoffs against other attributes, UI 100/200 may enable users to define their policies more efficiently, more accurately, and more optimally. This visual tradeoff analysis enables them to more simply and easily achieve the desired business goals.
It will similarly be appreciated that as the user manipulates a given policy attribute, the effects on the overall policy and other policy attributes may be visualized in real-time, creating a tight feedback loop. Insights into error states and policy optimization recommendations may be presented, allowing the user to immediately refine policy decisions without actually instantiating the workflow first. It will also be appreciated that the embodiments described herein may also support other deployment models including, for example, live policy changes on an already deployed and active workflow. UI application 340 may also use different sets of UI controls, such as toggle buttons and/or graph components to reflect the set of policy configurations available in the deployment environments).
In accordance with some embodiments, UI application 340 may present policy attributes (in addition to, or instead of, policy attributes 160/260, 165/265, and 169/269 as described hereinabove with respect to
As depicted in
Reference is now made to
In accordance with other embodiments, UI application 340 may present policy attribute values as adjustable horizontal Hues overlaid over time-series plots of the attributes' actual measured values in an ongoing deployment. In accordance with embodiments described herein, a user may use known UI methods and techniques to set the policy attribute values by adjusting a horizontal line up or down to raise or lower a given policy attribute's value. After a value has been set for a policy attribute, UI application 340 may present an actual usage plot of the resource or target associated with the policy attribute.
For example, as depicted in
It will be appreciated that the user may use known UI gestures and techniques for adjusting policy attributes in the embodiments described herein. For example, the markers, lines, etc. in the embodiments of
It will also be appreciated that whereas traditional systems may expose predefined building blocks of configuration on an element-by-element basis, such exposure is typically at a lower level than addressed by the embodiments described herein, thereby necessitating frequent updating of multiple related options at a more granular level and obfuscating the connection between technical implementation and business requirements or needs. In contrast, the attribute policies in UI 100/200 are derived from constituent elements and compiled as a holistic representation of the workflow. Users may interactively define the desired output of the system (represented by this set of attribute policies) according to their business needs, and a resource orchestration application (e.g., a cloud abstraction platforms) may create and Instantiate the workflows according to these policies,
Furthermore, policies based on the combination of the constituent elements may simplify aid seduce the work required to instantiate a workflow. Users may specify their end goal via the workflow's policy attributes, abstracting a way from the ever-changing details of the underlying network, compute, storage, and cloud infrastructure that enable she creation and deployment of desired application capabilities. A resource application may then offload the individual element-level deployment and configuration decisions to fit within the constraints of the workflow policy, even as deployment environment characteristics (e.g. cost, inventory, hosting environment, product upgrades, alternative technologies, competing products, vendor pricing) may change dynamically. It will be appreciated that as long as a new (or modified) network component's characteristics may be modeled and measured, the tiered policy system described herein may utilize the component during implementation.
It is appreciated that software components of the present invention may, if desired, be implemented in ROM (read only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques. It is further appreciated that the software components may be instantiated, for example: as a computer program product or on a tangible medium. In some cases, it may be possible to instantiate the software components as a signal interpretable by an appropriate computer, although such an instantiation may be excluded in certain embodiments of the present invention.
It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the invention is defined by the appended claims and equivalents thereof.
The present application claims the benefit of priority from U.S. Provisional Patent Application, Ser. No. 62/488,885, filed on Apr. 24, 2017.
Number | Date | Country | |
---|---|---|---|
62488885 | Apr 2017 | US |