Patent Publication Number: US-11038770-B2

Title: Methods, systems, and computer readable media for managing deployment and maintenance of network tools

Description:
PRIORITY CLAIM 
     This application claims the priority benefit of U.S. Provisional Patent Application Ser. No. 62/625,321 filed Feb. 1, 2018, the disclosure of which is incorporated herein by reference in its entirety. 
    
    
     TECHNICAL FIELD 
     The subject matter described herein relates to deploying network tools in cloud and on-premises networks. More particularly, the subject matter described herein relates to methods, systems, and computer readable media for managing deployment and maintenance of network tools. 
     BACKGROUND 
     Network visibility tools are tools that monitor packets that traverse the network. Such tools can be deployed in cloud networks to monitor packets and application performance in cloud networks. One current deployment model for visibility tools in cloud network is for an end user to purchase a visibility tool, deploy the visibility tool in the user&#39;s cloud network, and operate and maintain the tool using only interfaces provided by the tool itself. Such self-deployment and maintenance using visibility-tool-specific user interfaces is labor intensive and could result in deployment, maintenance, or operation errors. 
     In addition, visibility tools available from different network visibility tool providers will have different user interfaces. A user seeking to deploy and manage visibility tools from different visibility tool providers must be trained in the user interfaces of each individual network visibility tool. Requiring users to use the individual user interfaces of each visibility tool may lead to inconsistent operation and maintenance when visibility tools from different providers are deployed. 
     Network test tools are tools that are used to test the performance and functionality of network devices. Some network test tools test network devices by transmitting packets to the network devices and monitoring the performance of the network devices based on the response of the devices to the received packets. Like network visibility tools, network test tools are available from different network test tool providers with different user interfaces, making manual deployment and maintenance of large numbers of such tools from the same or different providers labor-intensive. 
     Accordingly, there exists a need for methods, systems, and computer readable media for managing deployment and maintenance of network tools. 
     SUMMARY 
     Methods, systems, and computer readable media for managing deployment and maintenance of network tools are provided. One method includes providing a cloud network tool user interface for displaying network tools available for cloud deployment from a plurality of different network tool providers and for receiving user selection of one or more of the network tools for cloud deployment. The method further includes providing a network tool provider interface for allowing network tool providers to submit network tools for availability via the network tool user interface. The method further includes receiving, from a user and via the network tool user interface, selection of one or more of the network tools for cloud deployment. The method further includes receiving, via the network tool user interface, a location for deploying the selected network tool. The method further includes interfacing with a service orchestration system of the location for deploying the selected network tool in the location. The method further includes providing at least one user interface element for monitoring performance of deployed network tools. The method further includes providing at least one user interface element for maintaining the network tool. 
     A system for managing cloud deployment and maintenance of network tools includes at least one processor. The system further includes a network tool user interface implemented by the at least one processor for displaying network tools available for cloud deployment from a plurality of different network tool providers and for receiving user selection of one or more of the network tools for cloud deployment. The system further includes a network tool provider interface implemented by the at least one processor for network tool providers to submit network tools to be made available to users via the network tool user interface. The network tool user interface is configured to receive, from a user, selection of one or more of the network tools for cloud deployment and a location for deploying the selected network tool. The system further includes a network tool maintenance manager for interfacing with a service orchestration system of the location for deploying the selected network tool in the location. The network tool user interface provides at least one user interface element for managing operation of the network tool. 
     The subject matter described herein may be implemented in hardware, software, firmware, or any combination thereof. As such, the terms “function”, “node”, or “module” as used herein refer to hardware, which may also include software and/or firmware components, for implementing the feature being described. In one example implementation, the subject matter described herein may be implemented using a non-transitory computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer control the computer to perform steps. Example computer readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple devices or computing platforms. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a network diagram of the system for managing cloud deployment and maintenance of network tools; 
         FIGS. 2A-2E  are examples of user interface elements may be provided by a network tool user interface for cloud deployment and management of network tools; 
         FIG. 3  is a flow chart illustrating an exemplary process for managing cloud deployment and maintenance of network tools; 
         FIG. 4A  is a network diagram illustrating an initial cloud based deployment of network tools; 
         FIG. 4B  is a network diagram illustrating registration for cloud-based management of on-premises deployed network tools; 
         FIG. 4C  is a network diagram illustrating on-premises deployment and cloud management of network tools; 
         FIG. 4D  is a network diagram illustrating cloud management of network tools deployed in a tool user&#39;s network where the tools provide data to a service management function in a tool provider&#39;s network. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  is a network diagram of a system for managing cloud deployment and maintenance of network tools. Referring to  FIG. 1 , the system includes a network tool deployment and maintenance management cloud  100 . Cloud  100  may include one or more processors  102  and memory  104  on which the components in network tool deployment and maintenance management cloud  100  execute. In the illustrated example, the deployment and maintenance components executing in cloud  100  include a cloud network tool user interface  106 , which allows users to access a set of managed network tools  108  from plural different network tool providers. Examples of network tools that may be provided include virtual intrusion detection systems, application performance analyzers, and call quality analyzers from different vendors. Virtual network tools are instances of these entities that are optimized for cloud deployment. The network tools are said to be “managed” because the network tools may undergo a validation process before the tools are permitted to be made available to users via user interface  106 . 
     Cloud  100  also includes a network tool provider interface  110  for allowing network tool providers to submit new network tools to be made available to users via network tool user interface  106 . Provider interface  110  may also allow providers to submit updates to deployed tools. A network tool deployment and maintenance manager  112  interfaces with cloud service provider orchestration systems  114  of different clouds  116  to deploy network tools  118  in locations selected by users via network tool user interface  106 . 
     In one example, cloud network tool user interface  106  may provide an app store like environment that allows a user to search for and select network tools of interest.  FIG. 2A  is an example of a marketplace screen that may be provided by network tool user interface  106 . In  FIG. 2A , the marketplace screen includes selectable categories  200 ,  202 , and  204  for different cloud-based services. The marketplace screen also includes a search dialog box  208  for allowing the user to search for network tools using search criteria. User interface  106  displays icons  210  for network tools that provide different services, such as different network test or visibility services. Each icon also includes a deploy button  212  for allowing the user to initiate deployment of the corresponding network visibility service. 
     When the user clicks on one of icons  210 , the user is taken to the service detail screen illustrated in  FIG. 2B . In  FIG. 2B , the service detail screen includes additional information about the selected visibility service as well as a deploy button  212 . In  FIG. 2B , the additional information that is displayed includes text that describes the operation and charging details of a packet sniffing service. 
     If user selects deploy button  212  either from the marketplace screen in  FIG. 2A  or the detail panel in  FIG. 2B , the user is taken through a sign-up process. The sign up process will establish authentication credentials and collect necessary information and to establish billing for the service. Once the user goes through this process, the user will become authenticated. 
       FIG. 2C  illustrates an example of a deployment panel for user-managed deployment of network tools that may be displayed by network tool user interface  106  when the user selects a deploy button  212  (from either the screen illustrated in  FIG. 2A or 2B ) and completes the sign-up process. The deployment panel in  FIG. 2C  provides for user selection of cloud deployment locations of network tools. In the illustrated example, a location dialog box  300  includes one or more cloud deployment locations, which in the illustrated example are zones for hosting a tool or component. The zones may be preselected zones defined by the manager of management cloud  100  or zones that are defined by the user. A given tool can be deployed in more than one zone. 
     The deployment panel in  FIG. 2C  also provides for user selection of management locations for deployed network tools. In the illustrated example, the user also selects a location for managing deployed tools via dialog box  302  and location for storing data collected by the tools via dialog box  304 . The locations for management and storage for a network tool may be cloud locations that are in the same cloud location or zone as the network tool being deployed or in separate cloud locations or zones from the network tool being deployed. Once the user selects ok via the deployment screen, network tool deployment and maintenance manager  112  deploys the tools in the indicated zones and sets up management of storage and management locations for the network tool. The management location for a deployment of network tools may be the cloud location where the management components of cloud  100  illustrated in  FIG. 1 . For example, the user may select a cloud network where network tool deployment and maintenance manager  112  and the components of user interface associated with ongoing maintenance of deployed network services will execute. 
     In the example illustrated in  FIG. 2C , the deployment zones for network tools include cloud availability zones in the Amazon Web Services (AWS) cloud and the Microsoft Azure cloud. The subject matter described herein is not limited to deployment in AWS or Azure clouds. The availability zones that may be displayed by network tool user interface  106  as possible deployment locations can be any cloud network to which network tool user interface  106  and network tool deployment and maintenance manager  112  have access. 
     Network tool user interface  106  provides functionality for the user to manage deployed network tools, including starting tools, stopping tools, monitoring performance of deployed network tools, adding tools, and deleting tools.  FIG. 2D  illustrates an example of a service monitoring screen that may be provided by user interface  106  and which displays operating statistics of deployed network tools and allows a user to monitor performance of deployed network tools. In the illustrated example, the service monitoring screen includes icons  400  corresponding to deployed network tools, where each icon displays throughput associated with each service or deployed tool. Each icon  400  also indicates whether the service is running or paused and allows the user to change the status between running and paused. For example, each icon  400  may include a play/pause button  402  that allows the user to toggle the corresponding network tool between a running and paused state. The throughput metric associated with each deployed network tool may be useful for the user to determine whether a network tool is overloaded or not and whether or not to deploy additional network tools. 
     It should be noted that the service monitoring screen illustrated in  FIG. 2D  allows the user to easily monitor performance of network tools from different network tool providers. For example, each icon  400  may display operating statistics for a network tool available from a different network tool provider. Providing a single user interface or screen that allows the user to view operating statistics from different network tool providers is believed to be advantageous over approaches where network tools are monitored individually using user interface software provided by each different network tool provider. 
       FIG. 2E  illustrates an example of network tool maintenance functionality that is provided by network tool user interface  106 . In  FIG. 2E , a service maintenance screen is displayed. The service maintenance screen includes a total or overall traffic statistics section  410  that displays traffic statistics including throughput, total source instances, and target instances of all network tools being maintained through cloud network tool user interface  106  for a particular user or service. The service maintenance screen further includes individual statistics bars  412  that display the name of each network tool and individual traffic statistics for each tool, including throughput, source instances, and target instances. When the user clicks on one of the throughput values, the service maintenance panel displays a pop-up box  413  that displays throughput contributions of each source group for a particular network tool. Play/pause buttons  402  also included to allow the user to toggle between playing (starting) and pausing of a particular network tool provided service. 
     It should be noted that the service maintenance screen illustrated in  FIG. 2E  may display operating statistics for network tools available from different providers and allow the user to manage the network tools from different providers. For example, statistics bars  412  may display operating statistics for network tools from different providers and allow the network tools from the different providers to be individually paused and restarted. Providing a single user interface where network tools from different providers can be managed is believed to be one advantage of the subject matter described herein over individual network tool deployments without a management interface that allows consistent management of network tools from different tool providers. 
     In the illustrated example, the network tool provided service is a visibility service that consists of six different visibility tools. It may be desirable to manage the service as a whole. Accordingly, the service maintenance screen provides overall service status indicator  414 , which in the illustrated example indicates whether the service is running or not, and a global play/pause button  416  which allows the user to start and stop the monitoring by all of the visibility tools that provide the service with a single user interface action. The service maintenance screen also displays a remove service button  418 . When the user selects the move service button  418 , all of the visibility tools that are installed and providing the service are halted and removed from their respective networks. 
     The service maintenance screen further includes a list  420  of cloud locations where network tools are deployed. An edit link  422  is also provided, which allows the user to edit list  420 . 
     User interface  106  may also allow a user to link into a service specific UI, such as a user interface (UI) specific to a network tool. The UIs for specific network tools may be separate from the components described herein deploying and managing the tools. In one implementation, the user may seamlessly switch between the network tool management interfaces illustrated in  FIGS. 2C-2E  and tool specific UIs using a menu bar or other graphical construct. For example, in  FIG. 2E , each statistics bar  412  may be provided with a button labeled “tool-specific UI” that allows the user to switch to displaying a tool specific UI. A similar button may be added to or displayed concurrently with the tool-specific UI for allowing the user to switch back to the management UI illustrated in  FIGS. 2A-2E . 
     In the examples in  FIGS. 2A-2E , user interface  106  is a graphical interface for managing deployment and maintenance of network tools. User interface  106  may also include an application programming interface (API) or an event triggered interface through which a user can define conditions for automated deployment and maintenance of the network tools. For example, using an API, a network tool user, such as a business with multiple locations, can define conditions for automated updates to deployed network tools. When an update becomes available, a script written by the user via the API may automatically update the tools in locations selected by the user. User interface  106  may also allow the user to define events which trigger automated updates to deployed network tools using a Git or other data repository. A user may write conditions to trigger an update to deployed tools in the Git repository, and the operator of network tool deployment and maintenance cloud may read the conditions specified by the user, determine when an event corresponding to one of the conditions occurs, and, in response, update deployed network tools. 
       FIG. 3  is a flow chart illustrating an exemplary process for managing cloud deployment and maintenance of network tools. Referring to  FIG. 3 , in step  500 , the method includes providing a user interface for allowing user selection and deployment of network tools from a plurality of different network tool providers. For example, user interface  106  may provide an application store like environment, for example, as illustrated in  FIG. 2A  where icons  210  for different cloud visibility services are displayed and are selectable by the user for cloud deployment. 
     In step  502 , the method includes providing a network tool provider interface for network tool providers to make network tools available to users via the user interface. For example, a network tool provider interface  110  may be provided for network visibility and test tool providers to submit new network visibility and test tools and updates to existing network visibility and test tools for availability to users via network tool user interface  106 . Examples of network visibility tools include probes, packet brokers, packet filters, security devices, etc. Examples of network test tools include test packet generators/receivers for transmitting packets to a device under test, receiving a response from the device under test, and evaluating performance and/or functionality of the device under test. 
     In step  504 , the method includes receiving user selection of a network tool. For example, a user may select, via network tool user interface  106 , one or more network tools for cloud deployment. The tools may be network visibility tools or test tools 
     In step  506 , the method includes receiving user selection of a location for deployment of a network tool. For example, network tool user interface  106  may provide a deployment panel, for example, as illustrated in  FIG. 2C  for the user to select one or more cloud or on-premises locations where a network tool will be deployed. 
     In step  508 , the method includes deploying the network tool in the selected location. For example, network tool deployment and maintenance manager  112  may interface with a service orchestration system in one or more cloud or on-premises networks to deploy network tools in locations selected by the user. Interfacing with the service orchestration system may include requesting allocation of virtual and physical resources in a target cloud to host the network tools. For example, one cloud service provider requires creation of a node for hosting virtual applications. Returning to  FIG. 1 , to initiate the deployment process, network tool deployment and maintenance manager  112  may send a request to one of service orchestration systems  114  for creation of a new node in its respective cloud or zone  116 . In the example in  FIG. 1 , the new node is a virtual partition of cloud resources for hosting applications, such as network visibility or test components or applications. In response to the request, the service provider orchestration system  114  creates a new node in its respective cloud or availability zone  116 . Because cloud service providers may start metering resources where nodes are created, it is desirable that new nodes be allocated on the fly, as new network tools are needed. 
     After the creation of the new node in cloud  116 , network tool deployment and maintenance manager  112  communicates the identity of the new node to an orchestration master (not shown in  FIG. 1 ) within the target cloud  116 . Cloud service provider orchestration system  114  communicates the availability and identity of the new node to the orchestration master. In one exemplary implementation, the orchestration master may be a Kubernetes master. Kubernetes is an open source system for deployment of applications in a computer network. Kubernetes is provided as an example. However, the subject matter described herein is not limited to using Kubernetes to deploy network tools. Any system that enables deployment of network tools in desired locations, such as in specific availability zones, is intended to be within the scope of the subject matter described herein. 
     In step  510 , the method includes providing interface for the user to manage operation and maintenance of deployed network tools. For example, network tool user interface  106  may provide a panel, such as that illustrated in  FIGS. 2D and 2E  for the user to manage operation and maintenance of deployed network tools. The user interface elements for managing the operation and maintenance of deployed network tools may allow the user to monitor the performance of deployed network tools, including visibility and test tools available from different tool providers. The user interface elements for managing the operation and maintenance of deployed network tools may also allow the user to start, stop, add, delete, and update network tools from different network tool providers. 
       FIGS. 4A-4D  illustrate examples of deployment of network tools using the architecture described herein. Referring to  FIG. 4A , an initial deployment of network tools where the tools are deployed solely in the tool manager&#39;s network domain is disclosed. In  FIG. 4A , each column represents a network domain. The left-most column in  FIG. 4A  illustrates a tool user domain owned and managed by a network tool user. The tool user domain includes a virtual private cloud  600  and a data center  602 , each owned and managed by the network tool user. The central column represents a tool manager domain. The tool manager domain includes a virtual private cloud  604  and a management cloud  606  owned and managed by the network tool manager. The right-most column represents a tool provider domain where components owned and managed by the network tool provider reside. In the example in  FIG. 4A , the right-most column is empty. 
     In the deployment scenario in  FIG. 4A , sensors  608  represent deployed network visibility tools. Packets from tool user networks  600  and  602  are provided to sensors  608 . Sensors  608  analyze the data and output summary statistics to a service management component  610 . Service management component  610  performs management for sensors  608  and may provide output to a user. Multi-service tool management component  612  is deployed in cloud  606 , which is also in the tool manager domain. Multi-service tool management component  612  performs the functionality described herein for network tool deployment, management, and maintenance. 
     In  FIG. 4A , sensors  608  are deployed in the tool user domain, which may result in excessive amounts of packet traffic being forwarded from the sensors to the service management component in the tool manager domain. To reduce the packet traffic, in  FIG. 4B , preparation is being made for on-premises deployment of sensors  608 . Accordingly, processing clusters  614  and  616  register with multi-service tool management component  612 . In response to the registration, multi-service tool management component  612  deploys sensors in clusters  614  and  616  of the tool user domain. Such a deployment is illustrated in  FIG. 4C . 
     Referring to  FIG. 4C , sensors  608  are deployed in clusters  614  and  616  of the tool user domain. As such, packets are collected locally in the tool user&#39;s network by sensors  608 . The volume of traffic between sensors  608  and management component  610 , which is deployed in the tool manager owned VPC  604 , occurs within the tool user domain instead of crossing domains. Keeping packet traffic within the tool user domain may reduce cloud metering charges and latency over the implementation illustrated in  FIG. 4A   
       FIG. 4D  illustrates yet another example deployment of network tools. In  FIG. 4D , sensors  608  are deployed in the tool user domain. However, the service management component for sensors  608  resides in the tool provider domain. The management component is illustrated in  FIG. 4D  as software as a service (SaaS) portal  618 . In such an example, multi-service tool management component  612  may be used to deploy sensors  608  and configure sensors  608  to communicate summaries of monitored packets to tool provider SaaS portal  618 . 
     It will be understood that various details of the presently disclosed subject matter may be changed without departing from the scope of the presently disclosed subject matter. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation.