US20220131767A1 - SYSTEM FOR IDENTIFYING AND ASSISTING IN THE CREATION AND IMPLEMENTATION OF A NETWORK SERVICE CONFIGURATION USING HIDDEN MARKOV MODELS (HMMs) - Google Patents
SYSTEM FOR IDENTIFYING AND ASSISTING IN THE CREATION AND IMPLEMENTATION OF A NETWORK SERVICE CONFIGURATION USING HIDDEN MARKOV MODELS (HMMs) Download PDFInfo
- Publication number
- US20220131767A1 US20220131767A1 US17/647,059 US202217647059A US2022131767A1 US 20220131767 A1 US20220131767 A1 US 20220131767A1 US 202217647059 A US202217647059 A US 202217647059A US 2022131767 A1 US2022131767 A1 US 2022131767A1
- Authority
- US
- United States
- Prior art keywords
- network service
- network
- service
- model
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013499 data model Methods 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims description 109
- 230000015654 memory Effects 0.000 claims description 46
- 230000007704 transition Effects 0.000 claims description 19
- 230000008520 organization Effects 0.000 claims description 15
- 230000002265 prevention Effects 0.000 claims description 13
- 238000010801 machine learning Methods 0.000 abstract description 22
- 238000007726 management method Methods 0.000 description 172
- 230000008569 process Effects 0.000 description 69
- 238000013500 data storage Methods 0.000 description 40
- 238000004891 communication Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 18
- 238000012549 training Methods 0.000 description 14
- 238000001914 filtration Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0889—Techniques to speed-up the configuration process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0254—Stateful filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
Definitions
- Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programmed.
- a machine learning model may be trained on a set of training data, such that the model may be used to process live data to generate useful predictions and/or classifications.
- a method may include receiving, by a device, a request associated with one or more network service configurations that are to be used to configure a set of network devices.
- the request may include parameter data that identifies one or more guidelines for the one or more network service configurations.
- the method may include selecting, by the device, a graphical data model that may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations.
- the graphical data model may have been selected based on the parameter data included in the request.
- the method may include determining, by the device and by using the graphical data model, a path through states that are part of the graphical data model. The path may correspond to a particular network service configuration of a set of candidate network service configurations.
- the method may include selecting, by the device, the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model.
- the particular network service configuration includes at least one of: a network service, one or more network service features, or a chain of network services.
- the method may include performing, by the device, one or more actions after selecting the particular network service configuration.
- the one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- a device may include one or more memories, and one or more processors, to receive a request for one or more network service configurations that are to be used to configure a set of network devices.
- the request may include parameter data that identifies one or more guidelines for the network service configuration.
- the one or more processors may determine, by using a graphical data model to analyze the parameter data, a path through states that are part of the graphical data model.
- the path may correspond to a particular network service configuration of a set of candidate network service configurations.
- the graphical data model may have been selected based on the parameter data.
- the graphical data model may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations, wherein aspects of particular network service configurations, of the set of network service configurations, have been created over time.
- the one or more processors may select the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model.
- the particular network service configuration may be for at least one network service.
- the one or more processors may determine a confidence score that represents a likelihood of the particular network service configuration satisfying the request, and may select a group of one or more actions to perform based on the confidence score.
- the one or more processors may perform the group of one or more actions that has been selected.
- the group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- a non-transitory computer-readable medium may store instructions that include one or more instructions that, when executed by one or more processors of a device, cause the one or more processors to receive a request for a network service configuration that is to be used to configure a set of network devices.
- the request may include parameter data that identifies one or more guidelines for the network service configuration.
- the one or more instructions may cause the one or more processors to select a data model that may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations.
- the data model may have been selected based on the parameter data included in the request.
- the one or more instructions may cause the one or more processors to determine, using a data model, likelihoods of particular network services or particular network service features satisfying the request.
- the data model may include values that are associated with a set of candidate network service configurations.
- the one or more instructions may cause the one or more processors to select the particular network service configuration, of the set of candidate network service configurations, based on the likelihoods of the particular network services or the particular network service features satisfying the request.
- the one or more instructions may cause the one or more processors to determine a confidence score that represents a likelihood of the particular network service configuration satisfying the request, and to select a group of one or more actions to perform based on the confidence score.
- the one or more instructions may cause the one or more processors to perform the group of one or more actions that has been selected.
- the group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network
- FIGS. 1A-1E are diagrams of one or more example implementations described herein.
- FIG. 2 is a diagram of an example environment in which systems and/or methods, described herein, may be implemented.
- FIG. 3 is a diagram of example components of one or more devices of FIG. 2 .
- FIG. 4 is a diagram of example components of one or more devices of FIG. 2 .
- FIG. 5 is a diagram of an example network service configuration.
- FIGS. 6-8 are flow charts of an example process for using machine learning to generate a recommendation of a network service configuration.
- a network service provider may use a team of network administrators to create (e.g., design) network services and/or chains of network services (often referred to as network service chains) that may be configured and/or deployed on a group of network devices.
- a client organization may wish to use the network service provider for various network services and may provide the network service provider with a list of guidelines that are intended to capture the network service needs of the client organization.
- the list of guidelines may include a first guideline that requests that network traffic be protected by network security services (e.g., a firewall service, an intrusion prevention system (IPS) service, and/or the like), a second guideline that requests that traffic be protected by content security services (e.g., network services that provide confidentiality, protect intellectual property, etc.), and/or the like.
- the guidelines may be provided to a network administrator, who may be tasked with using industry and domain knowledge to create a network service or a chain of network services based on the guidelines.
- the network administrator may not be able to effectively create a network service or a chain of network services based on the guidelines. For example, a high-level guideline indicating that traffic is to be protected by network security services may be too broad of a request to help the network administrator to make low-level determinations, such as which firewall provider to select for the firewall, which firewall rules and/or policies to use with the firewall, and/or the like. Additionally, creation of the network service or the chain of network services is a manual process that is prone to user errors. These errors translate into problems with the network after the network service or the chain of network services are deployed.
- Some implementations described herein provide a service management platform to use machine learning to recommend a network service configuration and to perform one or more actions that cause the network service configuration to be implemented (e.g., configured and/or deployed). For example, a team of network administrators many create, update, and/or implement a set of network service configurations.
- telemetry data may be gathered and provided to the service management platform. The telemetry data may identify events caused by network traffic that has traversed through the set of network devices.
- data identifying the set of network service configurations may not be provided to the service management platform.
- data identifying the set of network service configurations may be provided to the service management platform.
- the service management platform may train a data model, as will be described in detail further herein.
- the service management platform may train a data model, such as a Hidden Markov Model (HMM), in a manner that is able to analyze the telemetry data to predict an order in which the particular aspects of the network service configurations were created, updated, deleted, and/or implemented. This may allow the service management platform to train the HMM to generate a recommendation for a network service configuration, even if the data identifying the set of network service configurations was not provided to the service management platform.
- HMM Hidden Markov Model
- the data model may be used as part of an application that allows users to create network service configurations.
- a user such as a network administrator, may interact with a user device to access the application.
- the user may interact with an interface of the application to generate and provide a request for a network service configuration to the service management platform.
- the request may include, for example, parameter data that identifies one or more guidelines that may be used to create the network service configuration.
- the service management platform may select the data model (e.g., from a set of trained data models). Additionally, the service management platform may use the data model to identify likelihoods of network services and/or network service features satisfying the request. For example, if the data model is the HMM, the HMM may include a set of states that represent particular network services and/or particular network service features, and the service management platform may use the HMM to determine a path through one or more of the states. In this case, the service management platform may select a network service configuration that includes one or more network services and/or one or more network service features that were identified in the path. Additionally, the service management platform may provide data identifying the selected network service configuration to the user device, may perform one or more actions that cause the selected network service configuration to be implemented, and/or the like.
- the data model e.g., from a set of trained data models.
- the service management platform may use the data model to identify likelihoods of network services and/or network service features satisfying the request. For example, if the data model is the HMM,
- the service management platform utilizes machine learning to intelligently provide the user with a recommendation of a network service configuration.
- This conserves resources e.g., processing resources, network resources, memory resources, and/or the like
- resources e.g., processing resources, network resources, memory resources, and/or the like
- an ineffective network service configuration e.g., a network service configuration that does not adequately satisfy needs of a client organization
- resources that would be wasted trying to support network traffic using aspects of the ineffective network service configuration resources that would be wasted resolving network issues created by the ineffective network service configuration, and/or the like.
- stages of the process described herein are automated, which may remove human subjectivity and waste from the process, and which may improve speed and efficiency of the process and conserve computing resources (e.g., processor resources, memory resources, and/or the like).
- computing resources e.g., processor resources, memory resources, and/or the like.
- the user e.g., the network administrator
- This conserves resources of the user device that would otherwise be wasted were the user to create numerous drafts of the network service chain, reduces or eliminates chances of human error, and improves quality and efficiency of the process.
- implementations described herein use a rigorous, computerized process to perform tasks or roles that were not previously performed or were previously performed using subjective human intuition or input.
- FIGS. 1A-1E are diagrams of one or more example implementation(s) 100 described herein.
- Example implementation(s) 100 may include a data storage device, a group of network devices (shown as network device 1, . . . , network device M) that are part of a network, a service management platform, and a user device.
- the service management platform may train a set of data models (e.g., Hidden Markov Model (HMMs)) to recommend network service configurations.
- HMMs Hidden Markov Model
- FIGS. 1C-1E a user (e.g., a network administrator) may be tasked with creating a network service configuration, and the service management platform may use a data model to generate and provide the user with a recommended network service configuration.
- HMMs Hidden Markov Model
- a network service configuration may include a network service, a set of features of a network service, a chain of network services (e.g., two or more network services), and/or the like.
- the network service or the chain of network services may include a security service (e.g., a firewall service, an intrusion prevention system (IPS), a data leak prevention (DLP) service, a secure sockets layer (SSL) proxy service, and/or the like), a content security service, a packet filtering service, a packet translation service, an authentication service, a classification service, a proxy service, a content filtering service, a packet forwarding service, a uniform resource locator (URL) filtering service, and/or the like.
- a network service configuration may be hosted on a network device, a data center server, an endpoint device, a client device, a vendor device, a user device, and/or the like.
- a network service feature may refer to a policy of a network service, a function of a network service, a rule used as part of a network service, a characteristic of a network service, and/or the like.
- a firewall service may include features such as a firewall identifier, a vendor identifier (e.g., identifying a vendor that is providing the firewall service), capacity information and/or performance capabilities of the firewall, compatibility information of the firewall, and/or the like.
- the features of the firewall service may include one or more firewall rules or policies that indicate types of traffic to inspect, internet protocol (IP) addresses to allow or block, ports to open or close to particular types of traffic, and/or the like.
- IP internet protocol
- FIG. 5 provides an example of a more detailed chain of network services and corresponding network service features.
- the data storage device may store data that may be used to train the set of data models. For example, over time, network administrators of a network service provider may create, update, and/or implement a set of network service configurations.
- data included in a set of service requests for the set of network service configurations may be provided to the data storage device.
- the service request may be provided to a user device of a network administrator.
- the network administrator may be tasked with creating the network service configuration based on information included in the service request.
- the service request may include data identifying a type of network service configuration that is being requested, a client identifier that identifies a client providing the service request, data identifying one or more guidelines for the network service configuration that is being requested (as defined further herein), and/or the like.
- the data included in the service request may be provided to the data storage device.
- data identifying the set of network service configurations may be provided to the data storage device.
- the data identifying the set of network service configurations may include data identifying a network service, data identifying a set of network service features associated with a network service, data identifying a chain of network services, and/or the like.
- the data storage device may receive data identifying one or more network service configurations from user devices.
- the user devices may support or have access to an application that is used for creating network service configurations.
- the team of network administrators (referred to hereafter as users) may interact with the application to create network service configurations.
- a user device may be configured to provide data identifying the network service configuration to the data storage device. Additionally, or alternatively, the data storage device may request the data identifying the network service configuration from the user device.
- the data storage device may not be provided with data that indicates a time at which various aspects of the network service configurations were created, updated, deleted, and/or implemented. For example, if a chain of network services includes ten network services, the data identifying the chain may identify the ten network services, but may not include data indicating that four of the network services were created at a first time period and deployed at a second time period, that another two network services were created at a third time period and deployed at a fourth time period, and that another four network services were created at a fifth time period and deployed at a sixth time period. This information would be useful to have when training the data model, as will be shown further herein.
- the data identifying the set of network service configurations may not be provided to the data storage device.
- the user devices may not be configured with the software needed to collect the data, the data may not be collected for reasons internal to an organization utilizing the user devices (e.g., monitoring actions of employees, such as network administrators, may upset the employees), the data may not be collected for security reasons (e.g., a security breach involving this data would potentially disclose confidential information to competitor organizations), and/or for similar types of reasons.
- the service management platform may analyze the outcome data and/or the telemetry data (as each defined below) to identify a set of observations that may be used to determine a sequence of states of a data model, as will be described further herein.
- the data storage device may receive outcome data and/or telemetry data that may be used when training the data model.
- the outcome data and/or the telemetry data may be used to determine a sequence or order at which particular aspects of the set of network service configurations were created, updated, deleted, and/or implemented, as will be described further herein.
- the data storage device may receive outcome data. For example, after the users create the network service configurations, outcome data may be generated and provided to the data storage device (e.g., by the user devices).
- the outcome data may identify a manner in which the set of network service configurations were used.
- the outcome data include data identifying that a network service configuration was saved, deployed, terminated, aborted, and/or the like.
- the outcome data may include other metadata, such as data identifying a reasoning behind a particular outcome (e.g., a network administrator may input a reason why a particular network service configuration was deployed, was terminated, etc.), metadata identifying a time spent creating, updating, and/or implementing a network service configuration (e.g., an aggregate time, a time spent creating and/or implementing each network service and/or network service feature within the network service configuration, and/or the like), and/or the like.
- the metadata may be used when assisting users on making more efficient configuration and/or deployment decisions.
- the data storage device may receive telemetry data. For example, as network traffic traverses through the group of network devices that are implementing particular network configuration services, telemetry data may be collected and provided to the data storage device.
- the telemetry data may include events data that identifies events caused by network traffic that has traversed through the set of network devices that have implemented the set of network service configurations, session data associated with one or more sessions that are being used to support the network traffic, and/or the like.
- a network device may collect and report events data. For example, as the network device receives network traffic, the network device may use the one or more network services to inspect and/or analyze the network traffic. In this case, the network device may generate a log, an alert, a message, and/or the like, which may identify that an inspection and/or an analysis was performed, may identify a result of the inspection and/or analysis, and/or the like.
- the network device may create a log indicating that a firewall permitted or rejected a packet (which may indicate a time at which the log was created), may create a log indicating that a URL filter permitted or rejected a packet associated with a URL (which may indicate a time at which the log was created), may create a log and/or an alert caused by an intrusion prevention system (IPS) (which may indicate a time at which the log and/or the alert was created), may create a log associated with a security intelligence (SecIntel) service that identifies a suspicious packet (which may indicate a time at which the log was created), and/or the like.
- IPS intrusion prevention system
- SecIntel security intelligence
- a network device may collect and report session data. For example, as the network device receives an indication that a session is active, the network device may generate and/or provide session data associated with session to the data storage device.
- the session data may include data identifying a type of traffic that is being sent and/or received during a session, data identifying a type of application associated with the session, data identifying one or more endpoints of the traffic flow of the session (e.g., a source internet protocol (IP) address, a destination IP address, etc.), data identifying a geographic location of the one or more endpoints, data identifying one or more ports used during the session, data identifying a network service and/or a network service feature being utilized during the session, data identifying a status of the session (e.g., active, timed out, etc.), and/or the like.
- IP internet protocol
- another device may collect and/or report the telemetry data.
- the telemetry data may be collected and/or reported using one or more endpoint monitoring systems, one or more client devices (e.g., if a client device is hosting a network service locally), one or data center servers, and/or any other device that may have access to the network traffic.
- the data storage device receives the data that may be used to train the data model, and may, as shown by reference number 125 , store the data in a manner that is accessible to the service management platform.
- the service management platform may receive, from the data storage device, the parameter data included in requests for the set of network service configurations, the data identifying the set of network service configurations, the outcome data, and/or the telemetry data (referred to hereafter as training data).
- the service management platform may provide a request to the data storage device, which may cause the data storage device to provide the service management platform with the training data.
- the data storage device may be configured to provide the service management platform with the training data (e.g., automatically, periodically over an interval, and/or the like).
- the service management platform may receive the training data from the set of data sources.
- the set of data sources may be configured to provide the data directly to the service management platform (rather than to the data storage device).
- the service management platform may obtain the data from the set of data sources (e.g., automatically, periodically over an interval, and/or the like).
- the service management platform may perform one or more pre-processing operations needed to train the data model.
- the service management platform may standardize the data to a uniform format.
- the data obtained from the data storage device may be in multiple formats, multiple file types, and/or the like, and the service management platform may convert the data to a uniform format (e.g., text) that may be subjected to further processing.
- the service management platform may train the set of data models to recommend network service configurations.
- a data model may refer to a framework that is able to apply one or more machine learning techniques to analyze input values and to generate the output values that are to be used as indicators of a recommended network service configuration.
- a data model may be a graphical data model, such as a Markov Model (MM) a Hidden Markov Model (HMM), a Gaussian Mixture Model (GMM), a model based on an artificial neural network, and/or a similar type of model.
- the data model may be another type of data model (e.g., a data model that is not classified as a graphical data model).
- the service management platform may train a HMM.
- the service management platform may use the training data to train a HMM to output, based on particular input values (e.g., values identifying one or more observations), one or more states that form a path through the HMM.
- the path may represent a particular network service configuration, as further described below.
- the service management platform may identify a set of observations. For example, the service management platform may process the outcome data and/or the telemetry data to identify a set of observations.
- An observation may be based on a particular outcome data value, a particular telemetry data value, a set of telemetry data values, an absence of one or more values (e.g., an absence of a firewall log at a particular time period), and/or the like.
- a firewall log may have been created by a network device when network traffic of a session was inspected by a firewall, an intrusion prevention system (IPS) alert may have been created shortly thereafter, and a data leak prevention (DLP) log may have been created shortly after that.
- IPS intrusion prevention system
- DLP data leak prevention
- the firewall log, the IPS alert, and the DLP log may be identified as being part of an observation that may assist in training the HMM, as described further herein.
- the service management platform may generate a set states. For example, in a supervised learning scenario where the data identifying the set of network service configurations is available, the service management platform may process the data identifying the set of network service configurations to identify each network service and/or each network service feature included in the set of network service configurations. In this case, the service management platform may generate a set for each network service and/or each network service feature.
- the service management platform may still determine the set of states. For example, the service management platform analyze the telemetry data and/or the outcome data to derive the set of states. As an example, if the telemetry data includes a firewall log, this may serve as an indicator that a firewall had been configured and deployed. As such, the service management platform may be able to generate one or more values that represent a state for a firewall service. This process may be repeated until the service management platform is able to derive the set of states. In some cases, some data identifying network service configurations may be provided (but the data may not represent a complete list of network service configurations). In these cases, a combination of the techniques described above may be used to generate the set of states.
- the service management platform may generate a set of model parameters for the HMM. For example, as part of the unsupervised learning scenario, the service management platform may generate a set of states, a set of start probabilities, a set of state transition probabilities, and a set of emission probabilities.
- the set of start probabilities indicate likelihoods of starting in a particular state.
- the set of state transition probabilities may indicate likelihoods of a state transitioning to another state.
- the set of emission probabilities may indicate likelihoods of an observation occurring in a particular state.
- the service management platform may generate the set of model parameters by generating random values, by generating values based on domain knowledge of a network administrator, based on the values included in the training data, and/or the like.
- the service management platform may generate one or more model parameters using a Baum-Welch technique, an expectation-maximization technique, a technique using a Markov Chain Monte Carlo (MCMC) sampling, and/or the like.
- MCMC Markov Chain Monte Carlo
- the service management platform may determine, based on particular observations, a best-fit path through the set of states. For example, in a supervised learning scenario, the service management platform may have access to values that represent the set of states, but may not know the state sequence. In this case, the service management platform may perform a Viterbi analysis or a similar type of analysis to determine a best-fit path through the set of states. Additionally, the service management platform may, while performing the Viterbi analysis, select a starting state based on the set of starting state probabilities, and may select one or more additional states by selecting states that have a highest state transition probability (relative to other states that have yet to be selected).
- a best-fit path may refer to a sequence of states that has a highest likelihood of satisfying a particular service request, a highest likelihood of causing a particular observation or sequence of observations to occur, and/or the like.
- the service management platform may receive, as part of the training data, a network service configuration that includes a firewall service, an IPS service, and a DLP service. Additionally, the service management platform may have telemetry data indicating that at a first time period, a firewall log was generated, that at a second time period, a firewall log and an IPS alert were generated, and that at a third time period, a firewall log, an IPS alert, and a DLP log were generated.
- a starting state S0 may represent that at time T0, a network service configuration has yet to be selected by a user.
- the service management platform may determine that the firewall service state, at time T1, has the highest probability of being a first state. This may cause the service management platform to transition from the starting state S0 to the firewall service state (which is now the first state S1, at time T1).
- the service management platform may use the same technique to determine that the IPS service state, at time T2, has the highest probability of being the second state S2, and to determine that the DLP service state, at time T3, has the highest probability of being the third state S3.
- the service management platform is able to use the HMM to determine the order in which the network administrator created the network service chain. It is to be understood that this is provided by way of example, and that in practice, a more complex HMM may be implemented that is able to account for hundreds of states, thousands of states, tens of thousands of states, or more.
- the service management platform may update (i.e., tune) the set of model parameters of the HMM.
- the service management platform may update the set of model parameters of the HMM to improve accuracy of the state sequences generated by the HMM.
- the service management platform may update the set of model parameters (e.g., the set of state transition probabilities, etc.) based on analysis of other network service configurations included in the training data (which may each correspond to particular observations). The analysis may be performed using the Baum-Welch technique, the expectation-maximization technique, and/or a similar type of technique.
- the service management platform may train the set of data models. For example, the service management platform may train data models that are specific to a particular set of parameters included in a service request made by a client organization (which may include guidelines that represent the intent of the client organization). Additionally, or alternatively, the service management platform may train data models based on one or more other classifications, such as by training data models that are for specific client organizations, data models that are for specific business units within client organizations, data models that are for groups of client organizations (e.g., based on industry domain or another type of classification), data models that are for specific types of devices (e.g., specific types of network devices, client devices, etc.), and/or the like.
- the service management platform may train data models that are specific to a particular set of parameters included in a service request made by a client organization (which may include guidelines that represent the intent of the client organization). Additionally, or alternatively, the service management platform may train data models based on one or more other classifications, such as by training data models that are for specific client organizations, data models that are
- another device may train one or more data models and may provide the one or more data models to the service management platform.
- a device associated with a software developer e.g., a desktop computer
- the trained data model may be provided to the service management platform.
- the trained data model may be provided to the service management platform by uploading the trained data model to a location that is accessible to the service management platform, by using a communication interface, such as an application programming interface (API), to transmit the trained data model (or a compressed version of the trained data model) to the service management platform, and/or the like.
- API application programming interface
- the service management platform may train the data model to recommend network service configurations. Furthermore, by identifying the set of states and/or the state sequence, the service management platform is able to improve accuracy of recommendations made by the HMM (relative to a model that is unable to identify the states, identify the state sequence, etc.).
- the user device may receive a service request.
- the user device may receive a service request from a device of a client organization, from another device of the network service provider (e.g., a device operated by a manager of a network administrator), and/or the like.
- another device of the network service provider e.g., a device operated by a manager of a network administrator
- the service request may include data identifying a type of network service configuration that is being requested (e.g., a request to create a network service and/or a chain of network services, a request to update an existing network service and/or an existing chain of network services, and/or the like), a client identifier that identifies a client providing the service request, data identifying one or more guidelines for the network service configuration that is being requested, and/or the like.
- the one or more guidelines may be high-level service requests that are intended to capture the network service needs of the client organization.
- the one or more guidelines may include a first guideline that requests that one or more network services provide network security (e.g., network services that protect traffic traveling through one or more networks between a source and a destination, such as a firewall service, an intrusion prevention system (IPS) service, and/or the like), a second guideline that requests that one or more network services provide content security (e.g., network services that provide confidentiality, protect intellectual property, and/or the like), a third guideline that requests that one or more network services provide authentication of particular network traffic, and/or the like.
- network security e.g., network services that protect traffic traveling through one or more networks between a source and a destination, such as a firewall service, an intrusion prevention system (IPS) service, and/or the like
- IPS intrusion prevention system
- content security e.g., network services that provide confidentiality, protect intellectual property, and/or the like
- third guideline that requests that one or more network services provide authentication of particular network traffic, and/or the like.
- the user device may be configured with or may have access to an application that allows a user (e.g., a network administrator, etc.) to create network service configurations.
- the application may be installed on the user device or may be a web application that is accessible via a web interface.
- the application may include one or more tools that the user may use to create network service configurations.
- the application may include an integrated development environment (IDE) and/or a similar type of environment whereby the user may interact with one or more interfaces to create a network service configuration (e.g., by selecting a network service or a network service feature from a menu, by creating a new network service or a new network service feature using features of the IDE, and/or the like).
- the application may include an interface that allows the user to create and submit requests for recommended network service configurations.
- a network administrator may interact with the application to submit a request for a recommended network service configuration.
- the network administrator may read the service request, and may interact with the application to input information included in the service request as parameters in the request for the recommended network service configuration.
- data identifying the service request may be uploaded as part of the request for the recommended network service configuration.
- the user device may provide the request to the service management platform.
- the service management platform may select a data model. For example, the service management platform may select a data model based on the parameter data included in the request. In this case, as described above, the service management platform may have trained the set of data models (or received the set of data models that have been trained by another device), and may select the data model, from the set of data models, based on the parameter data included in the request. As a specific example, the service management platform may reference a data structure that associates data model identifiers for specific data models with identifiers of specific types of requests, identifiers of specific types of parameter data, identifiers of specific client organizations, and/or the like.
- the user may use the application to submit a request for a network service configuration.
- the service management platform may use the data model to determine likelihoods of network services and/or network service features satisfying the service request made by the client organization.
- the data model is the HMM
- the HMM may include a set of states that represent particular network services and/or particular network service features, a set of start probabilities, a set of state transition probabilities, and a set of emission probabilities, as described elsewhere herein.
- the service management platform may select a first state by selecting a state that has a highest start state probability.
- the service management platform may reference the set of state transition probabilities to select one or more additional states, based on each additional state having a highest available state transition probability.
- selection of a next state may not be based on the highest-available state transition probability.
- the selection may be based on one or more observations, a sequence of observations, one or more emission probabilities, and/or the like. In this way, the service management platform is able to select one or more states that collectively define a path through the HMM.
- the HMM may include three states, a firewall service state, an IPS service state, and a DLP service state.
- the service management platform may select the firewall service state as a first state based on the firewall service state having a highest available start state probability (shown by a value of 0.6, which is greater than each respective value of 0.2).
- the service management platform may select the IPS service state based on the IPS service state having a highest available state transition probability (shown by a value of 0.6, which is greater than a value of 0.4).
- the service management platform may select the DLP service state based on the DLP service state having a highest available state transition probability (shown as a value of 1.0 because this state is the only remaining state).
- the HMM may also consider values that identify probabilities of remaining in a particular state.
- the HMM may include any number of states needed to represent a complete set of available network services and/or network service features.
- the service management platform may select a network service configuration to recommend to the user.
- a network service configuration For example, if the data model is the HMM, each state in the path may correspond to a particular network service and/or a particular network service feature, which may allow the service management platform to select a network service configuration that includes each network service and/or network service feature identified in the path.
- the network service configuration may be selected from a set of candidate network service configurations that are available to the client organization.
- the service management platform selects a network service configuration that can be recommended to the user.
- the service management platform may determine one or more actions to perform.
- the service management platform may be configured to provide data identifying the network service configuration that is being recommended to the user device and may be configured to provide the group of network devices (shown as Network Device 1, . . . , Network Device M) with instructions to implement (e.g., configure and/or deploy) the network service configuration.
- the service management platform may determine an overall confidence score that represents a likelihood of the network service configuration satisfying the request (and/or the service request). For example, if the data model is the HMM, the service management platform may determine an overall confidence score for the path. The overall confidence score may be based on a set of confidence scores that represent likelihoods of particular states in the path satisfying the request (and/or the service request). As an example, if a first state is selected based on having a state transition probability of 51%, the first state may be assigned a lower confidence score than a second state that is selected based on having a state transition probability of 91%.
- the service management platform may determine whether the overall confidence score satisfies a threshold confidence score.
- the threshold confidence score may represent a confidence level that may justify automatically implementing the network service configuration on the group of network devices (e.g., without review by the user).
- the service management platform may provide the user device with the data identifying the network service configuration that is being recommended.
- the service management platform may have determined that the overall confidence score did not satisfy the threshold confidence score, which may have caused the service management platform to provide the data identifying the network service configuration to the user device.
- the user device may display the network service configuration.
- the user device may display the network service configuration via an interface of the application used to create network service configurations. This may allow the user to view the network service configuration, modify the network service configuration, choose to accept or reject the network service configuration, and/or the like.
- the user may interact with the interface of the application to accept or reject the network service configuration that has been recommended. If the user rejects the network service configuration, data indicating that the network service configuration has been rejected may be provided to the service management platform (e.g., and used to retrain the HMM). In some cases, the user may be prompted to provide a reason for rejecting the network service configuration, in which case data identifying the reason may also be provided to the service management platform (and used to retrain the HMM). If the user accepts the network service configuration, the user may perform one or more actions to implement the network service configuration. For example, the user may implement the network service configuration manually, may create instructions that cause another device to implement the network service configuration, and/or the like.
- the service management platform may provide, to the group of network devices, a set of instructions that indicate to implement the network service configuration on the group of network devices.
- the service management platform may have determined that the overall confidence score satisfied the threshold confidence score, which may have caused the service management platform to generate and provide the group of network devices with the set of instructions.
- the set of instructions may include a first set of instructions that indicate where to obtain (e.g., download) one or more network services that are included in the network service configuration, a second set of instructions that indicate how to configure (e.g., install) the one or more network services, a third set of instructions that indicate how to deploy the one or more network services, and/or the like.
- the service management platform may provide the group of network devices with the one or more network services (e.g., with executables needed to install the one or more network services).
- the group of network devices may implement the network service configuration.
- the group of network devices may use the first set of instructions to obtain the one or more network devices, may use the second set of instructions to configure the one or more network services, may use the third set of instructions to deploy the one or more network services, and/or the like.
- the service management platform or a network service may generate and/or provide, to a network configuration and/or deployment service, instructions requesting to implement the network service configuration onto the network device.
- the instructions may be provided via a protocol (e.g., NETCONF, REST APIs, etc.).
- the instructions may include device information for the network device (e.g., an IP address of the network device and/or any other information that may be needed to implement the network service configuration), information that specifies the network service configuration that is to be implemented on the network device, and/or the like.
- the network configuration and/or deployment service may, using the protocol (e.g., NETCONF, etc.) and/or one or more application layer services that handle the configuration, cause the network device to be implemented.
- the service management platform uses machine learning to generate and provide the user device with a recommendation of a network service configuration.
- This conserves resources e.g., processing resources, network resources, memory resources, and/or the like
- resources e.g., processing resources, network resources, memory resources, and/or the like
- an ineffective network service configuration e.g., a network service configuration that does not adequately satisfy needs of a client organization
- resources that would be wasted trying to support network traffic using aspects of the ineffective network service configuration resources that would be wasted resolving network issues created by the ineffective network service configuration, and/or the like.
- the service management platform is able to automatically implement the network service configuration, thereby eliminating or reducing chances of human error while improving speed and efficiency of the process.
- FIGS. 1A-1E are provided merely as examples. Other examples may differ from what was described with regard to FIGS. 1A-1E . For example, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown in FIGS. 1A-1E . Furthermore, two or more devices shown in FIGS. 1A-1E may be implemented within a single device, or a single device shown in FIGS. 1A-1E may be implemented as multiple and/or distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of example implementation(s) 100 may perform one or more functions described as being performed by another set of devices of example implementation(s) 100 .
- a set of devices e.g., one or more devices of example implementation(s) 100 may perform one or more functions described as being performed by another set of devices of example implementation(s) 100 .
- FIG. 2 is a diagram of an example environment 200 in which systems and/or methods, described herein, may be implemented.
- environment 200 may include a user device 210 , a data storage device 220 , a service management platform hosted within a cloud computing environment 240 , a group of client devices 250 (shown as Client Device 1 and Client Device 2), a group of network devices 260 (shown as Network Device 1 through Network Device L), and/or a network 270 .
- Devices of environment 200 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.
- User device 210 includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with a network service configuration.
- user device 210 may include a device, such as a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a laptop computer, a tablet computer, a handheld computer, a server computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, etc.), or a similar type of device.
- user device 210 may support or have access to an application that may be used to create network service configurations.
- user device 210 may provide data included in a service request, data identifying a network service configuration, and/or outcome data to data storage device 220 .
- user device 210 may receive a service request.
- user device 210 may provide, to service management platform 230 , a request for a recommended network service configuration.
- user device 210 may receive, from service management platform 230 , data identifying a network service configuration that is being recommended.
- Data storage device 220 includes one or more devices capable of receiving, storing, generating, determining, and/or providing information associated with a set of network service configurations.
- data storage device 220 may include a server device or a group of server devices.
- data storage device 220 may receive data included in a service request for a network service configuration, data identifying a network service configuration, outcome data, and/or telemetry data. This data may be received from user device 210 , client device 250 , network device 260 , and/or a similar type of device. In some implementations, this data may be stored as training data and may be provided to service management platform 230 .
- Service management platform 230 includes one or more devices capable of receiving, storing, processing, determining, and/or providing information associated with a network service configuration.
- service management platform 230 may include a server device (e.g., a host server, a web server, an application server, etc.), a data center device, or a similar device.
- service management platform 230 may support one or more features of an application that can be used to create network service configurations.
- the application may be updated with a new version, a plugin, and/or the like, that allows the application to receive and process requests for network service configurations.
- one or more embodiments, tasks, processes, and/or the like, that are described herein as being performed by service management platform 230 may be performed by another device, such as user device 210 , client device 250 , network device 260 , and/or the like.
- service management platform 230 may be hosted in cloud computing environment 240 .
- service management platform 230 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.
- Cloud computing environment 240 includes an environment that hosts service management platform 230 .
- Cloud computing environment 240 may provide computation, software, data access, storage, etc. services that do not require end-user knowledge of a physical location and configuration of system(s) and/or device(s) that hosts service management platform 230 .
- cloud computing environment 240 may include a group of computing resources 235 (referred to collectively as “computing resources 235 ” and individually as “computing resource 235 ”).
- Computing resource 235 includes one or more personal computers, workstation computers, server devices, or another type of computation and/or communication device.
- computing resource 235 may host service management platform 230 .
- the cloud resources may include compute instances executing in computing resource 235 , storage devices provided in computing resource 235 , data transfer devices provided by computing resource 235 , and/or the like.
- computing resource 235 may communicate with other computing resources 235 via wired connections, wireless connections, or a combination of wired and wireless connections.
- computing resource 235 may include a group of cloud resources, such as one or more applications (“APPs”) 235 - 1 , one or more virtual machines (“VMs”) 235 - 2 , virtualized storage (“VSs”) 235 - 3 , one or more hypervisors (“HYPs”) 235 - 4 , and/or the like.
- APPs applications
- VMs virtual machines
- VSs virtualized storage
- HOPs hypervisors
- Application 235 - 1 may include one or more software applications that may be provided to or accessed by user device 210 , data storage device 220 , one or more client devices 250 , and/or one or more network devices 260 . Application 235 - 1 may eliminate a need to install and execute the software applications on these devices. In some implementations, one application 235 - 1 may send/receive information to/from one or more other applications 235 - 1 , via virtual machine 235 - 2 . In some implementations, application 235 - 1 may include the application that is used to create network service configurations.
- Virtual machine 235 - 2 may include a software implementation of a machine (e.g., a computer) that executes programs like a physical machine.
- Virtual machine 235 - 2 may be either a system virtual machine or a process virtual machine, depending upon use and degree of correspondence to any real machine by virtual machine 235 - 2 .
- a system virtual machine may provide a complete system platform that supports execution of a complete operating system (“OS”).
- a process virtual machine may execute a single program and may support a single process.
- virtual machine 235 - 2 may execute on behalf of another device (e.g., user device 210 , data storage device 220 , one or more client devices 250 , and/or one or more network devices 260 ), and may manage infrastructure of cloud computing environment 240 , such as data management, synchronization, or long-duration data transfers.
- another device e.g., user device 210 , data storage device 220 , one or more client devices 250 , and/or one or more network devices 260 .
- infrastructure of cloud computing environment 240 such as data management, synchronization, or long-duration data transfers.
- Virtualized storage 235 - 3 may include one or more storage systems and/or one or more devices that use virtualization techniques within the storage systems or devices of computing resource 235 .
- types of virtualizations may include block virtualization and file virtualization.
- Block virtualization may refer to abstraction (or separation) of logical storage from physical storage so that the storage system may be accessed without regard to physical storage or heterogeneous structure. The separation may permit administrators of the storage system flexibility in how the administrators manage storage for end users.
- File virtualization may eliminate dependencies between data accessed at a file level and a location where files are physically stored. This may enable optimization of storage use, server consolidation, and/or performance of non-disruptive file migrations.
- Hypervisor 235 - 4 may provide hardware virtualization techniques that allow multiple operating systems (e.g., “guest operating systems”) to execute concurrently on a host computer, such as computing resource 235 .
- Hypervisor 235 - 4 may present a virtual operating platform to the guest operating systems and may manage the execution of the guest operating systems.
- Client device 250 includes one or more devices capable of receiving, processing and/or providing network traffic in a manner described herein.
- client device 250 may include a computing and/or communication device (e.g., a desktop computer, a laptop computer, a mobile phone, etc.), a traffic transfer device, such as a router, a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a server executing a virtual machine, etc.), a load balancer, and/or a similar type of device.
- client device 250 may include an endpoint device that is a source or a destination for network traffic.
- client device 250 may include a computer, a server device, a mobile device, and/or a similar type of device.
- client device 250 may receive packets associated with traffic flow of a session from other client devices 250 and/or may provide the packets to the other client devices 250 via network 270 (e.g., by routing packets using network device(s) 220 as an intermediary).
- client device 250 may collect and/or report telemetry data to data storage device 220 , service management platform 230 , and/or network device 260 .
- Network device 260 includes one or more devices capable of receiving, processing, storing, routing, and/or providing traffic (e.g., a packet, a file, etc.) in a manner described herein.
- network device 260 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router, a provider core router, etc.), a virtual router, and/or the like.
- LSR label switching router
- LER label edge router
- provider router e.g., a provider edge router, a provider core router, etc.
- virtual router e.g., a virtual router, and/or the like.
- network device 260 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, a data center server, etc.), a load balancer, and/or a similar device.
- a gateway e.g., a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, a data center server, etc.), a load balancer, and/or a similar device.
- network device 260 may be a physical device implemented within a housing, such as a chassis. In some implementations, network device 260 may be a virtual device implemented by one or more computer devices of a cloud computing environment or a data center.
- network device 260 may collect and/or provide telemetry data to data storage device 220 and/or service management platform 230 .
- network device 260 may support or have access to one or more network services and/or network service features described herein.
- Network 270 includes one or more wired and/or wireless networks.
- network 270 may include a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network, such as a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, or the like, and/or a combination of these or other types of networks.
- 5G fifth generation
- 4G fourth generation
- LTE long-term evolution
- 3G third generation
- CDMA code division multiple access
- PLMN public land mobile network
- LAN local area network
- WAN wide area network
- the number and arrangement of devices and networks shown in FIG. 2 are provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown in FIG. 2 . Furthermore, two or more devices shown in FIG. 2 may be implemented within a single device, or a single device shown in FIG. 2 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment 200 may perform one or more functions described as being performed by another set of devices of environment 200 .
- FIG. 3 is a diagram of example components of a device 300 .
- Device 300 may correspond to user device 210 , data storage device 220 , service management platform 230 , one or more client devices 250 , and/or one or more network devices 260 .
- user device 210 , data storage device 220 , service management platform 230 , one or more client devices 250 , and/or one or more network devices 260 may include one or more devices 300 and/or one or more components of device 300 .
- device 300 may include a bus 310 , a processor 320 , a memory 330 , a storage component 340 , an input component 350 , an output component 360 , and a communication interface 370 .
- Bus 310 includes a component that permits communication among the components of device 300 .
- Processor 320 is implemented in hardware, firmware, or a combination of hardware and software.
- Processor 320 includes a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and/or another type of processing component.
- processor 320 includes one or more processors capable of being programmed to perform a function.
- Memory 330 includes a random access memory (RANI), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use by processor 320 .
- RMI random access memory
- ROM read only memory
- static storage device e.g., a flash memory, a magnetic memory, and/or an optical memory
- Storage component 340 stores information and/or software related to the operation and use of device 300 .
- storage component 340 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and/or a solid-state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive.
- Input component 350 includes a component that permits device 300 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally, or alternatively, input component 350 may include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and/or an actuator).
- Output component 360 includes a component that provides output information from device 300 (e.g., a display, a speaker, and/or one or more light-emitting diodes (LEDs)).
- LEDs light-emitting diodes
- Communication interface 370 includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables device 300 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections.
- Communication interface 370 may permit device 300 to receive information from another device and/or provide information to another device.
- communication interface 370 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.
- RF radio frequency
- USB universal serial bus
- Device 300 may perform one or more processes described herein. Device 300 may perform these processes based on processor 320 executing software instructions stored by a non-transitory computer-readable medium, such as memory 330 and/or storage component 340 .
- a computer-readable medium is defined herein as a non-transitory memory device.
- a memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
- Software instructions may be read into memory 330 and/or storage component 340 from another computer-readable medium or from another device via communication interface 370 .
- software instructions stored in memory 330 and/or storage component 340 may cause processor 320 to perform one or more processes described herein.
- hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein.
- implementations described herein are not limited to any specific combination of hardware circuitry and software.
- device 300 may include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 3 . Additionally, or alternatively, a set of components (e.g., one or more components) of device 300 may perform one or more functions described as being performed by another set of components of device 300 .
- FIG. 4 is a diagram of example components of a device 400 .
- Device 400 may correspond to one or more client devices 250 and/or one or more network devices 260 .
- the one or more client devices 250 and/or the one or more network devices 260 may include one or more devices 400 and/or one or more components of device 400 . As shown in FIG.
- device 400 may include one or more input components 405 - 1 through 405 -B (B ⁇ 1) (hereinafter referred to collectively as input components 405 , and individually as input component 405 ), a switching component 410 , one or more output components 415 - 1 through 415 -C(C ⁇ 1) (hereinafter referred to collectively as output components 415 , and individually as output component 415 ), and a controller 420 .
- Input component 405 may be points of attachment for physical links and may be points of entry for incoming traffic, such as packets. Input component 405 may process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, input component 405 may send and/or receive packets. In some implementations, input component 405 may include an input line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memories, and/or input queues. In some implementations, device 400 may include one or more input components 405 .
- packet processing components e.g., in the form of integrated circuits
- IFCs interface cards
- packet forwarding components line card controller components
- input ports e.g., processors, memories, and/or input queues.
- device 400 may include one or more input components 405 .
- Switching component 410 may interconnect input components 405 with output components 415 .
- switching component 410 may be implemented via one or more crossbars, via busses, and/or with shared memories.
- the shared memories may act as temporary buffers to store packets from input components 405 before the packets are eventually scheduled for delivery to output components 415 .
- switching component 410 may enable input components 405 , output components 415 , and/or controller 420 to communicate.
- Output component 415 may store packets and may schedule packets for transmission on output physical links. Output component 415 may support data link layer encapsulation or decapsulation, and/or a variety of higher-level protocols. In some implementations, output component 415 may send packets and/or receive packets. In some implementations, output component 415 may include an output line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and/or output queues. In some implementations, device 400 may include one or more output components 415 . In some implementations, input component 405 and output component 415 may be implemented by the same set of components (e.g., and input/output component may be a combination of input component 405 and output component 415 ).
- Controller 420 includes a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and/or another type of processor or processing component.
- the processor is implemented in hardware, firmware, or a combination of software and hardware.
- controller 420 may include one or more processors that can be programmed to perform a function.
- controller 420 may include a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, an optical memory, etc.) that stores information and/or instructions for use by controller 420 .
- RAM random access memory
- ROM read only memory
- static storage device e.g., a flash memory, a magnetic memory, an optical memory, etc.
- controller 420 may communicate with other devices, networks, and/or systems connected to device 400 to exchange information regarding network topology. Controller 420 may create routing tables based on the network topology information, create forwarding tables based on the routing tables, and forward the forwarding tables to input components 405 and/or output components 415 . Input components 405 and/or output components 415 may use the forwarding tables to perform route lookups for incoming and/or outgoing packets. In some cases, controller 420 may create a session table based on information determined while initializing a link fault detection (e.g., BFD) session, and may forward the session table to input components 405 and/or output components 415 .
- a link fault detection e.g., BFD
- Controller 420 may perform one or more processes described herein. Controller 420 may perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium.
- a computer-readable medium is defined herein as a non-transitory memory device.
- a memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
- Software instructions may be read into a memory and/or storage component associated with controller 420 from another computer-readable medium or from another device via a communication interface. When executed, software instructions stored in a memory and/or storage component associated with controller 420 may cause controller 420 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
- device 400 may include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 4 . Additionally, or alternatively, a set of components (e.g., one or more components) of device 400 may perform one or more functions described as being performed by another set of components of device 400 .
- FIG. 5 is a diagram of an example network service configuration 500 .
- Example network service configuration 500 may include a set of network services and a set of network services features.
- the set of network services and/or the set of network service features may perform tasks associated with different layers of an open system interconnection (OSI) model.
- OSI open system interconnection
- the set of network services and/or the set of network service features may perform tasks associated with a physical layer (layer 1), a data link layer (layer 2), a network layer (layer 3), a transport layer (layer 4), a session layer (layer 5), a presentation layer (layer 6), and/or an application layer (layer 7).
- OSI open system interconnection
- network services and/or network service features may perform tasks associated with layer 2, layer 3, layer 4, and layer 7.
- a packet policing service may, at an ingress portion of a network device, perform tasks associated with layers 2-4.
- FW stateful firewall
- NAT network address translation
- SYN proxy service may, at an ingress portion of a network device, perform tasks associated with layers 2-4.
- DDoS distributed denial-of-service
- an application identification service may perform classification tasks associated with layers 3 and 4.
- a transmission control protocol (TCP) termination service may perform proxy termination tasks associated with one or more layers of the OCI model.
- TCP transmission control protocol
- TLS transport layer security
- HTTP hypertext transfer protocol
- SOCKS network proxy termination service
- a protocol and application parser service may perform classification tasks associated with layer 7.
- an application firewall service may perform access control tasks associated with layer 7.
- URL uniform resource locator
- UAC captive portal unified access control
- a security intelligence C&C service, an intrusion prevention service, and/or an anti-spam service may perform threat prevention tasks associated with layer 7.
- a content filtering service, an anti-virus service, and/or an anti-malware service may perform content threat prevention tasks associated with layer 7.
- a URL rewrite service may perform content rewrite tasks associated with one or more layers of the OCI model.
- a TCP initiation service, a TLS initiation service, an HTTP initiation service, and/or a network proxy service may perform proxy initiation tasks associated with one or more layers of the OCI model.
- an application quality of service (QoS) service may, at an egress side of a network device, perform tasks associated with layers 3 and 4.
- QoS application quality of service
- a NAT service may, at an egress side of a network device, perform tasks associated with layers 3 and 4.
- CQs egress shaping
- a routing service may perform shaping and forwarding tasks associated with layers 3 and 4.
- Example network service configuration 500 is provided to illustrate the complexity that goes in creating network service configurations. Further to this point, example network service configuration 500 excludes all network service features. For example, one or more of the 41 network services described in example network service configuration 500 may also include any number of configurable network service features.
- example network service configuration 500 may include additional network services and/or network service features, fewer network services and/or network service features, different network services and/or network service features, or differently arranged network services and/or network service features than those shown in FIG. 5 .
- FIG. 6 is a flow chart of an example process 600 for using machine learning to generate a recommendation of a network service configuration.
- one or more process blocks of FIG. 6 may be performed by a service management platform (e.g., service management platform 230 ).
- one or more process blocks of FIG. 6 may be performed by another device or a group of devices separate from or including the service management platform, such as a user device (e.g., user device 210 ), a data storage device (e.g., data storage device 220 ), a client device (e.g., client device 250 ), and/or a network device (e.g., network device 260 ).
- a user device e.g., user device 210
- a data storage device e.g., data storage device 220
- client device e.g., client device 250
- a network device e.g., network device 260
- process 600 may include receiving a request associated with one or more network service configurations that are to be used to configure a set of network devices, wherein the request includes parameter data that identifies one or more guidelines for the one or more network service configurations (block 610 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , input component 350 , communication interface 370 , and/or the like
- the request may include parameter data that identifies one or more guidelines for the one or more network service configurations.
- the request may be a request for one or more new network service configurations. Additionally, or alternatively, the request may be a request to modify one or more existing network service configurations.
- process 600 may include selecting a graphical data model that has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network configuration services, wherein the graphical data model is selected based on the parameter data included in the request, and wherein aspects of particular network service configurations, of the set of network service configurations, have been created over time (block 620 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- the graphical data model may be selected based on the parameter data included in the request.
- the graphical data model may be selected, from a set of possible graphical data models, based on the parameter data included in the request.
- aspects of particular network service configurations, of the set of network service configurations may have been created over time.
- An aspect of a network service configuration may include a network service that is part of the network service configuration and/or a network service feature that is part of the network service configuration. For example, if a network service configuration includes ten network services, each of the ten network services may be an aspect of the network service configuration. Additionally, in some cases, each aspect may have been created over time.
- three of the ten network services may have been created at a first time period, another five of the network services may have been created at a second time period (such that the particular network service configuration would now include eight network services), and another two of the network services may have been created at a third time period (such that the particular network service configuration would now include ten network services).
- process 600 may include determining, by using the graphical data model, a path through states that are part of the graphical data model, wherein the path corresponds to a particular network service configuration of a set of candidate network service configurations (block 630 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- the path may correspond to a particular network service configuration of a set of candidate network service configurations.
- process 600 may include selecting the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model, wherein the particular network service configuration includes at least one of: a network service, one or more network service features, or a chain of network services (block 640 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- the particular network service configuration may include at least one of: a network service, one or more network service features, or a chain of network services.
- process 600 may include performing one or more actions after selecting the particular network service configuration, wherein the one or more actions include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices (block 650 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , input component 350 , output component 360 , communication interface 370 , and/or the like
- the one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- Process 600 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein.
- the graphical data model may be a Hidden Markov Model (HMM).
- HMM Hidden Markov Model
- the service management platform may obtain, before receiving the request, the dataset that includes the information relating to the set of network service configurations. The information may include outcome data, or telemetry data.
- the service management platform may analyze the dataset to identify a set of observations that have occurred in a particular sequence.
- the service management platform may determine, by performing a Viterbi analysis, a best-fit path that includes a particular sequence of states through the HMM, wherein the best-fit path is determined based on a particular sequence of observations, and wherein the best-fit path includes states that represent one or more of the set of network service configurations at one or more respective time periods.
- the graphical data model may be a Hidden Markov Model (HMM).
- HMM Hidden Markov Model
- the service management platform may obtain, before receiving the request, the dataset that includes the information relating to the set of network service configurations.
- the information may include data identifying the set of network service configurations, outcome data, or telemetry data.
- the service management platform may analyze the dataset to identify a set of observations that have occurred in a particular sequence.
- the service management platform may generate a set of states based on the data identifying the set of network service configurations.
- the service management platform may generate a set of model parameters for the HMM.
- the service management platform may update the HMM by performing the Viterbi analysis to determine a best-fit path that represents a state sequence.
- the best-fit path may be based a particular sequence of observations.
- the best-fit path may include states that represent one or more of the set of network service configurations at one or more respective time periods.
- the service management platform may select the chain of network services, where the chain of network services is an ordered combination of network services, and may select the one or more network service features for at least one of the network services included in the chain.
- network services that are part of the set of candidate network service configurations may include at least one of a packet filtering service, a packet translation service, an authentication service, a classification service, a security service, a proxy service, a content filtering service, or a packet forwarding service.
- the service management platform may determine, for the path, a confidence score that represents a likelihood of the particular network service configuration satisfying the request. In some implementations, the service management platform may determine whether the confidence score satisfies a threshold confidence score. In some implementations, the service management platform may perform the first group of one or more actions or the second group of one or more actions based on whether the confidence score satisfies the threshold confidence score.
- process 600 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 6 . Additionally, or alternatively, two or more of the blocks of process 600 may be performed in parallel.
- FIG. 7 is a flow chart of an example process 700 for using machine learning to generate a recommendation of a network service configuration.
- one or more process blocks of FIG. 7 may be performed by a service management platform (e.g., service management platform 230 ).
- one or more process blocks of FIG. 7 may be performed by another device or a group of devices separate from or including the service management platform, such as a user device (e.g., user device 210 ), a data storage device (e.g., data storage device 220 ), a client device (e.g., client device 250 ), and/or a network device (e.g., network device 260 ).
- a user device e.g., user device 210
- a data storage device e.g., data storage device 220
- client device e.g., client device 250
- a network device e.g., network device 260
- process 700 may include receiving a request for one or more network service configurations that are to be used to configure a set of network devices, wherein the request includes parameter data that identifies one or more guidelines for the network service configuration (block 710 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , input component 350 , communication interface 370 , and/or the like
- the request includes parameter data that identifies one or more guidelines for the network service configuration.
- process 700 may include determining, by using a graphical data model, a path through states that are part of the graphical data model, wherein the graphical data model is selected based on the parameter data, wherein the path corresponds to a particular network service configuration of a set of candidate network service configurations, and wherein the graphical data model has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations (block 720 ).
- the service management platform may determine, by using a graphical data model to analyze the parameter data, a path through states that are part of the graphical data model, as described above.
- the graphical data model may be selected based on the parameter data.
- the path may correspond to a particular network service configuration of a set of candidate network service configurations, and the graphical data model may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations.
- process 700 may include selecting the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model, wherein the particular network service configuration is for at least one network service (block 730 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- the particular network service configuration may be for at least one network service.
- process 700 may include determining a confidence score that represents a likelihood of the particular network service configuration satisfying the request (block 740 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , and/or the like
- process 700 may include selecting a group of one or more actions to perform based on the confidence score (block 750 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , and/or the like
- process 700 may include performing the group of one or more actions that has been selected, wherein the group of one or more actions include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices (block 760 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , input component 350 , output component 360 , communication interface 370 , and/or the like
- the group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- Process 700 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein.
- the graphical data model may be a Hidden Markov Model (HMM) and may have been trained using: a set of states that identify particular network services or particular network service features that were created, updated, deleted, or implemented, at particular time periods, a set of observations that have occurred in a particular sequence, a set of initial state probabilities, and a set of emission probabilities.
- the information relating to the set of network service configurations may include data identifying the set of network service configurations, outcome data that includes data identifying a manner in which the set of network service configurations were used, and/or telemetry data that identifies events caused by network traffic that was sent via the set of network devices that were implementing the set of network service configurations.
- the service management platform may obtain, before receiving the request, the dataset describing the information relating to the set of network service configurations, where the dataset includes telemetry data that identifies events caused by network traffic that was sent via the set of network devices that were implementing the set of network service configurations.
- the service management platform may analyze the dataset to identify a set of observations that have occurred in a particular sequence.
- the service management platform may generate values that represent the states of the graphical data model.
- the service management platform may generate a set of model parameters for the graphical data model.
- the service management platform may update the HMM to determine a best-fit path that represents a state sequence. A particular path through the set of states may be identified as a best-fit path based on a particular sequence of observations.
- the graphical data model may be a Hidden Markov Model (HMM).
- HMM Hidden Markov Model
- the service management platform when determining the path, may perform a Viterbi analysis to determine the path through the states. The path may represent a sequence of one or more states and is determined based on a given sequence of observations.
- the service management platform when selecting the particular network service configuration, may select the chain of network services, and may select one or more network service features for at least one of the network services included in the chain.
- network services that are part of the set of candidate network service configurations may include a packet filtering service, a packet translation service, an authentication service, a classification service, a security service, a proxy service, a content filtering service, and/or a packet forwarding service.
- the service management platform when receiving the request, may receive, as the request, a particular request for multiple network service configurations. Additionally, when performing the one or more actions, the service management platform may perform the first group of one or more actions to provide the data identifying the particular network service configuration for display via the interface to permit a user to select the particular network service configuration as one of the multiple network service configurations. Selection of the particular network service configuration or a different network service configuration may cause a new request for another network service configuration, of the multiple network service configurations, to be provided to the device.
- the request may effectively allow a user to ask for a recommendation for a first network service or a first network service feature, and, after receiving the recommendation (and accepting or rejecting the recommendation), may receive another recommendation for a second network service or a second network service feature. This process may continue until the user has received recommendations for a combination of network services and/or network service features that may serve as a complete network service configuration.
- process 700 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 7 . Additionally, or alternatively, two or more of the blocks of process 700 may be performed in parallel.
- FIG. 8 is a flow chart of an example process 800 for using machine learning to generate a recommendation of a network service configuration.
- one or more process blocks of FIG. 8 may be performed by a service management platform (e.g., service management platform 230 ).
- one or more process blocks of FIG. 8 may be performed by another device or a group of devices separate from or including the service management platform, such as a user device (e.g., user device 210 ), a data storage device (e.g., data storage device 220 ), a client device (e.g., client device 250 ), and/or a network device (e.g., network device 260 ).
- a user device e.g., user device 210
- a data storage device e.g., data storage device 220
- client device e.g., client device 250
- a network device e.g., network device 260
- process 800 may include receiving a request for a network service configuration that is to be used to configure a set of network devices, wherein the request includes parameter data that identifies one or more guidelines for the network service configuration (block 810 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , input component 350 , communication interface 370 , and/or the like
- the request includes parameter data that identifies one or more guidelines for the network service configuration.
- process 800 may include selecting a data model that has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network configuration services, wherein the data model is selected based on the parameter data included in the request (block 820 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- the data model may be selected based on the parameter data included in the request.
- process 800 may include determining, using a data model, likelihoods of particular network services or particular network service features satisfying the parameter data, wherein the data model includes values that are associated with a set of candidate network service configurations, and wherein the data model has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations (block 830 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- the data model may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations.
- the data model may include values that are associated with a set of candidate network service configurations.
- process 800 may include selecting a particular network service configuration, of the set of candidate network service configurations, based on the likelihoods of the particular network services or the particular network service features satisfying the parameter data (block 840 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , communication interface 370 , and/or the like
- process 800 may include determining a confidence score that represents a likelihood of the particular network service configuration satisfying the request (block 850 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , and/or the like
- process 800 may include selecting a group of one or more actions to perform based on the confidence score (block 860 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , and/or the like
- process 800 may include performing the group of one or more actions that has been selected, wherein the group of one or more actions include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices (block 870 ).
- the service management platform e.g., using computing resource 235 , processor 320 , memory 330 , storage component 340 , input component 350 , output component 360 , communication interface 370 , and/or the like
- the group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- Process 800 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein.
- the service management platform may select a chain of network services as the particular network service configuration.
- the chain of network services may include two or more network services, and a set of network service features for at least one of the two or more network services.
- the data model may be a graphical data model, and the service management platform may receive, before receiving the request, the graphical data model.
- Each state may represent a respective network service, or a respective network service feature, that had been created, updated, deleted, or implemented, at a particular time period.
- the data model may have been trained to determine, based on a set of observations, a best-fit path through a set of states.
- the dataset that includes the information relating to the set of network service configurations may include data included in service requests for the set of network service configurations, data identifying the set of network service configurations, outcome data that includes data identifying a manner in which the set of network service configurations were used, and/or telemetry data that identifies events caused by network traffic that was sent via the set of network devices that were implementing the set of network service configurations.
- the data identifying the set of network service configurations may exclude information that indicates times at which particular network services or particular network service features were created, updated, deleted, or implemented.
- network services that are part of the set of candidate network service configurations may include at least one of: a packet filtering service, a packet translation service, an authentication service, a classification service, a security service, a proxy service, a content filtering service, or a packet forwarding service.
- the service management platform may provide, after selecting the second group of one or more actions, the set of network devices with a set of instructions for the particular network service configuration to cause the set of network devices to use the set of instructions to implement the particular network service configuration.
- process 800 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 8 . Additionally, or alternatively, two or more of the blocks of process 800 may be performed in parallel.
- network traffic may include a set of packets.
- a packet may refer to a communication structure for communicating information, such as a protocol data unit (PDU), a network packet, a datagram, a segment, a message, a block, a cell, a frame, a subframe, a slot, a symbol, a portion of any of the above, and/or another type of formatted or unformatted unit of data capable of being transmitted via a network.
- PDU protocol data unit
- a packet may refer to a communication structure for communicating information, such as a protocol data unit (PDU), a network packet, a datagram, a segment, a message, a block, a cell, a frame, a subframe, a slot, a symbol, a portion of any of the above, and/or another type of formatted or unformatted unit of data capable of being transmitted via a network.
- PDU protocol data unit
- component is intended to be broadly construed as hardware, firmware, and/or a combination of hardware and software.
- satisfying a threshold may refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc.
- a user interface may include a graphical user interface, a non-graphical user interface, a text-based user interface, etc.
- a user interface may provide information for display.
- a user may interact with the information, such as by providing input via an input component of a device that provides the user interface for display.
- a user interface may be configurable by a device and/or a user (e.g., a user may change the size of the user interface, information provided via the user interface, a position of information provided via the user interface, etc.).
- a user interface may be pre-configured to a standard configuration, a specific configuration based on a type of device on which the user interface is displayed, and/or a set of configurations based on capabilities and/or specifications associated with a device on which the user interface is displayed.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This application is a continuation of U.S. patent application Ser. No. 16/221,441, filed Dec. 14, 2018, which is incorporated herein by reference in its entirety.
- Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programmed. For example, a machine learning model may be trained on a set of training data, such that the model may be used to process live data to generate useful predictions and/or classifications.
- According to some implementations, a method may include receiving, by a device, a request associated with one or more network service configurations that are to be used to configure a set of network devices. The request may include parameter data that identifies one or more guidelines for the one or more network service configurations. The method may include selecting, by the device, a graphical data model that may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations. The graphical data model may have been selected based on the parameter data included in the request. The method may include determining, by the device and by using the graphical data model, a path through states that are part of the graphical data model. The path may correspond to a particular network service configuration of a set of candidate network service configurations. Aspects of particular network service configurations, of the set of network service configurations, may have been created over time. The method may include selecting, by the device, the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model. The particular network service configuration includes at least one of: a network service, one or more network service features, or a chain of network services. The method may include performing, by the device, one or more actions after selecting the particular network service configuration. The one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- According to some implementations, a device may include one or more memories, and one or more processors, to receive a request for one or more network service configurations that are to be used to configure a set of network devices. The request may include parameter data that identifies one or more guidelines for the network service configuration. The one or more processors may determine, by using a graphical data model to analyze the parameter data, a path through states that are part of the graphical data model. The path may correspond to a particular network service configuration of a set of candidate network service configurations. The graphical data model may have been selected based on the parameter data. The graphical data model may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations, wherein aspects of particular network service configurations, of the set of network service configurations, have been created over time. The one or more processors may select the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model. The particular network service configuration may be for at least one network service. The one or more processors may determine a confidence score that represents a likelihood of the particular network service configuration satisfying the request, and may select a group of one or more actions to perform based on the confidence score. The one or more processors may perform the group of one or more actions that has been selected. The group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
- According to some implementations, a non-transitory computer-readable medium may store instructions that include one or more instructions that, when executed by one or more processors of a device, cause the one or more processors to receive a request for a network service configuration that is to be used to configure a set of network devices. The request may include parameter data that identifies one or more guidelines for the network service configuration. The one or more instructions may cause the one or more processors to select a data model that may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations. The data model may have been selected based on the parameter data included in the request. The one or more instructions may cause the one or more processors to determine, using a data model, likelihoods of particular network services or particular network service features satisfying the request. The data model may include values that are associated with a set of candidate network service configurations. The one or more instructions may cause the one or more processors to select the particular network service configuration, of the set of candidate network service configurations, based on the likelihoods of the particular network services or the particular network service features satisfying the request. The one or more instructions may cause the one or more processors to determine a confidence score that represents a likelihood of the particular network service configuration satisfying the request, and to select a group of one or more actions to perform based on the confidence score. The one or more instructions may cause the one or more processors to perform the group of one or more actions that has been selected. The group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices.
-
FIGS. 1A-1E are diagrams of one or more example implementations described herein. -
FIG. 2 is a diagram of an example environment in which systems and/or methods, described herein, may be implemented. -
FIG. 3 is a diagram of example components of one or more devices ofFIG. 2 . -
FIG. 4 is a diagram of example components of one or more devices ofFIG. 2 . -
FIG. 5 is a diagram of an example network service configuration. -
FIGS. 6-8 are flow charts of an example process for using machine learning to generate a recommendation of a network service configuration. - The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
- A network service provider may use a team of network administrators to create (e.g., design) network services and/or chains of network services (often referred to as network service chains) that may be configured and/or deployed on a group of network devices. For example, a client organization may wish to use the network service provider for various network services and may provide the network service provider with a list of guidelines that are intended to capture the network service needs of the client organization. For example, the list of guidelines may include a first guideline that requests that network traffic be protected by network security services (e.g., a firewall service, an intrusion prevention system (IPS) service, and/or the like), a second guideline that requests that traffic be protected by content security services (e.g., network services that provide confidentiality, protect intellectual property, etc.), and/or the like. The guidelines may be provided to a network administrator, who may be tasked with using industry and domain knowledge to create a network service or a chain of network services based on the guidelines.
- However, the network administrator may not be able to effectively create a network service or a chain of network services based on the guidelines. For example, a high-level guideline indicating that traffic is to be protected by network security services may be too broad of a request to help the network administrator to make low-level determinations, such as which firewall provider to select for the firewall, which firewall rules and/or policies to use with the firewall, and/or the like. Additionally, creation of the network service or the chain of network services is a manual process that is prone to user errors. These errors translate into problems with the network after the network service or the chain of network services are deployed.
- Some implementations described herein provide a service management platform to use machine learning to recommend a network service configuration and to perform one or more actions that cause the network service configuration to be implemented (e.g., configured and/or deployed). For example, a team of network administrators many create, update, and/or implement a set of network service configurations. In this case, telemetry data may be gathered and provided to the service management platform. The telemetry data may identify events caused by network traffic that has traversed through the set of network devices. In a first set of cases, data identifying the set of network service configurations may not be provided to the service management platform. In a second set of cases, data identifying the set of network service configurations may be provided to the service management platform. In each of these sets of cases, the service management platform may train a data model, as will be described in detail further herein.
- In some implementations, the service management platform may train a data model, such as a Hidden Markov Model (HMM), in a manner that is able to analyze the telemetry data to predict an order in which the particular aspects of the network service configurations were created, updated, deleted, and/or implemented. This may allow the service management platform to train the HMM to generate a recommendation for a network service configuration, even if the data identifying the set of network service configurations was not provided to the service management platform.
- In some implementations, the data model may be used as part of an application that allows users to create network service configurations. For example, a user, such as a network administrator, may interact with a user device to access the application. In this case, the user may interact with an interface of the application to generate and provide a request for a network service configuration to the service management platform. The request may include, for example, parameter data that identifies one or more guidelines that may be used to create the network service configuration.
- Furthermore, the service management platform may select the data model (e.g., from a set of trained data models). Additionally, the service management platform may use the data model to identify likelihoods of network services and/or network service features satisfying the request. For example, if the data model is the HMM, the HMM may include a set of states that represent particular network services and/or particular network service features, and the service management platform may use the HMM to determine a path through one or more of the states. In this case, the service management platform may select a network service configuration that includes one or more network services and/or one or more network service features that were identified in the path. Additionally, the service management platform may provide data identifying the selected network service configuration to the user device, may perform one or more actions that cause the selected network service configuration to be implemented, and/or the like.
- In this way, the service management platform utilizes machine learning to intelligently provide the user with a recommendation of a network service configuration. This conserves resources (e.g., processing resources, network resources, memory resources, and/or the like) that would otherwise be wasted implementing an ineffective network service configuration (e.g., a network service configuration that does not adequately satisfy needs of a client organization), resources that would be wasted trying to support network traffic using aspects of the ineffective network service configuration, resources that would be wasted resolving network issues created by the ineffective network service configuration, and/or the like.
- Additionally, several different stages of the process described herein are automated, which may remove human subjectivity and waste from the process, and which may improve speed and efficiency of the process and conserve computing resources (e.g., processor resources, memory resources, and/or the like). For example, by recommending a network service configuration, the user (e.g., the network administrator) may not have to create the network service configuration and/or may only have to review the network service configuration that has been recommended. This conserves resources of the user device that would otherwise be wasted were the user to create numerous drafts of the network service chain, reduces or eliminates chances of human error, and improves quality and efficiency of the process. Additionally, implementations described herein use a rigorous, computerized process to perform tasks or roles that were not previously performed or were previously performed using subjective human intuition or input.
-
FIGS. 1A-1E are diagrams of one or more example implementation(s) 100 described herein. Example implementation(s) 100 may include a data storage device, a group of network devices (shown asnetwork device 1, . . . , network device M) that are part of a network, a service management platform, and a user device. As shown inFIGS. 1A and 1B , the service management platform may train a set of data models (e.g., Hidden Markov Model (HMMs)) to recommend network service configurations. As shown inFIGS. 1C-1E , a user (e.g., a network administrator) may be tasked with creating a network service configuration, and the service management platform may use a data model to generate and provide the user with a recommended network service configuration. - A network service configuration, as used herein, may include a network service, a set of features of a network service, a chain of network services (e.g., two or more network services), and/or the like. The network service or the chain of network services may include a security service (e.g., a firewall service, an intrusion prevention system (IPS), a data leak prevention (DLP) service, a secure sockets layer (SSL) proxy service, and/or the like), a content security service, a packet filtering service, a packet translation service, an authentication service, a classification service, a proxy service, a content filtering service, a packet forwarding service, a uniform resource locator (URL) filtering service, and/or the like. Additionally, a network service configuration may be hosted on a network device, a data center server, an endpoint device, a client device, a vendor device, a user device, and/or the like.
- A network service feature, as used herein, may refer to a policy of a network service, a function of a network service, a rule used as part of a network service, a characteristic of a network service, and/or the like. As an example, a firewall service may include features such as a firewall identifier, a vendor identifier (e.g., identifying a vendor that is providing the firewall service), capacity information and/or performance capabilities of the firewall, compatibility information of the firewall, and/or the like. Additionally, or alternatively, the features of the firewall service may include one or more firewall rules or policies that indicate types of traffic to inspect, internet protocol (IP) addresses to allow or block, ports to open or close to particular types of traffic, and/or the like.
- These network services and/or network service features are provided by way of example. In practice, any number of other network services and/or network service features may be included in a network service configuration. Additionally,
FIG. 5 provides an example of a more detailed chain of network services and corresponding network service features. - As shown in
FIG. 1A , the data storage device may store data that may be used to train the set of data models. For example, over time, network administrators of a network service provider may create, update, and/or implement a set of network service configurations. - As shown by
reference number 105, data included in a set of service requests for the set of network service configurations may be provided to the data storage device. For example, when a client organization submits a service request for a network service configuration, the service request may be provided to a user device of a network administrator. The network administrator may be tasked with creating the network service configuration based on information included in the service request. The service request may include data identifying a type of network service configuration that is being requested, a client identifier that identifies a client providing the service request, data identifying one or more guidelines for the network service configuration that is being requested (as defined further herein), and/or the like. In this case, the data included in the service request may be provided to the data storage device. - As shown by
reference number 110, data identifying the set of network service configurations may be provided to the data storage device. The data identifying the set of network service configurations may include data identifying a network service, data identifying a set of network service features associated with a network service, data identifying a chain of network services, and/or the like. - In some implementations, the data storage device may receive data identifying one or more network service configurations from user devices. For example, the user devices may support or have access to an application that is used for creating network service configurations. In this case, the team of network administrators (referred to hereafter as users) may interact with the application to create network service configurations. In some implementations, when a user saves or completes a network service configuration, a user device may be configured to provide data identifying the network service configuration to the data storage device. Additionally, or alternatively, the data storage device may request the data identifying the network service configuration from the user device.
- However, in some cases, because many of the network service configurations were created, updated, deleted, and/or implemented over time, the data storage device may not be provided with data that indicates a time at which various aspects of the network service configurations were created, updated, deleted, and/or implemented. For example, if a chain of network services includes ten network services, the data identifying the chain may identify the ten network services, but may not include data indicating that four of the network services were created at a first time period and deployed at a second time period, that another two network services were created at a third time period and deployed at a fourth time period, and that another four network services were created at a fifth time period and deployed at a sixth time period. This information would be useful to have when training the data model, as will be shown further herein.
- In some implementations, the data identifying the set of network service configurations may not be provided to the data storage device. For example, the user devices may not be configured with the software needed to collect the data, the data may not be collected for reasons internal to an organization utilizing the user devices (e.g., monitoring actions of employees, such as network administrators, may upset the employees), the data may not be collected for security reasons (e.g., a security breach involving this data would potentially disclose confidential information to competitor organizations), and/or for similar types of reasons. In this case, the service management platform may analyze the outcome data and/or the telemetry data (as each defined below) to identify a set of observations that may be used to determine a sequence of states of a data model, as will be described further herein.
- Additionally, or alternatively, the data storage device may receive outcome data and/or telemetry data that may be used when training the data model. In some cases, the outcome data and/or the telemetry data may be used to determine a sequence or order at which particular aspects of the set of network service configurations were created, updated, deleted, and/or implemented, as will be described further herein.
- As shown by
reference number 115, the data storage device may receive outcome data. For example, after the users create the network service configurations, outcome data may be generated and provided to the data storage device (e.g., by the user devices). - The outcome data may identify a manner in which the set of network service configurations were used. For example, the outcome data include data identifying that a network service configuration was saved, deployed, terminated, aborted, and/or the like. Additionally, or alternatively, the outcome data may include other metadata, such as data identifying a reasoning behind a particular outcome (e.g., a network administrator may input a reason why a particular network service configuration was deployed, was terminated, etc.), metadata identifying a time spent creating, updating, and/or implementing a network service configuration (e.g., an aggregate time, a time spent creating and/or implementing each network service and/or network service feature within the network service configuration, and/or the like), and/or the like. In some cases, the metadata may be used when assisting users on making more efficient configuration and/or deployment decisions.
- As shown by
reference number 120, the data storage device may receive telemetry data. For example, as network traffic traverses through the group of network devices that are implementing particular network configuration services, telemetry data may be collected and provided to the data storage device. The telemetry data may include events data that identifies events caused by network traffic that has traversed through the set of network devices that have implemented the set of network service configurations, session data associated with one or more sessions that are being used to support the network traffic, and/or the like. - In some implementations, a network device may collect and report events data. For example, as the network device receives network traffic, the network device may use the one or more network services to inspect and/or analyze the network traffic. In this case, the network device may generate a log, an alert, a message, and/or the like, which may identify that an inspection and/or an analysis was performed, may identify a result of the inspection and/or analysis, and/or the like.
- To provide a few specific examples, the network device may create a log indicating that a firewall permitted or rejected a packet (which may indicate a time at which the log was created), may create a log indicating that a URL filter permitted or rejected a packet associated with a URL (which may indicate a time at which the log was created), may create a log and/or an alert caused by an intrusion prevention system (IPS) (which may indicate a time at which the log and/or the alert was created), may create a log associated with a security intelligence (SecIntel) service that identifies a suspicious packet (which may indicate a time at which the log was created), and/or the like.
- Additionally, or alternatively, a network device may collect and report session data. For example, as the network device receives an indication that a session is active, the network device may generate and/or provide session data associated with session to the data storage device. The session data may include data identifying a type of traffic that is being sent and/or received during a session, data identifying a type of application associated with the session, data identifying one or more endpoints of the traffic flow of the session (e.g., a source internet protocol (IP) address, a destination IP address, etc.), data identifying a geographic location of the one or more endpoints, data identifying one or more ports used during the session, data identifying a network service and/or a network service feature being utilized during the session, data identifying a status of the session (e.g., active, timed out, etc.), and/or the like.
- Additionally, or alternatively, another device may collect and/or report the telemetry data. For example, the telemetry data may be collected and/or reported using one or more endpoint monitoring systems, one or more client devices (e.g., if a client device is hosting a network service locally), one or data center servers, and/or any other device that may have access to the network traffic.
- In this way, the data storage device receives the data that may be used to train the data model, and may, as shown by
reference number 125, store the data in a manner that is accessible to the service management platform. - As shown in
FIG. 1B , and byreference number 130, the service management platform may receive, from the data storage device, the parameter data included in requests for the set of network service configurations, the data identifying the set of network service configurations, the outcome data, and/or the telemetry data (referred to hereafter as training data). For example, the service management platform may provide a request to the data storage device, which may cause the data storage device to provide the service management platform with the training data. In some cases, the data storage device may be configured to provide the service management platform with the training data (e.g., automatically, periodically over an interval, and/or the like). - In some implementations, the service management platform may receive the training data from the set of data sources. For example, the set of data sources may be configured to provide the data directly to the service management platform (rather than to the data storage device). In some cases, the service management platform may obtain the data from the set of data sources (e.g., automatically, periodically over an interval, and/or the like).
- As shown by
reference number 135, the service management platform may perform one or more pre-processing operations needed to train the data model. For example, the service management platform may standardize the data to a uniform format. As an example, the data obtained from the data storage device may be in multiple formats, multiple file types, and/or the like, and the service management platform may convert the data to a uniform format (e.g., text) that may be subjected to further processing. - As shown by
reference number 140, the service management platform may train the set of data models to recommend network service configurations. A data model, as used herein, may refer to a framework that is able to apply one or more machine learning techniques to analyze input values and to generate the output values that are to be used as indicators of a recommended network service configuration. In some implementations, a data model may be a graphical data model, such as a Markov Model (MM) a Hidden Markov Model (HMM), a Gaussian Mixture Model (GMM), a model based on an artificial neural network, and/or a similar type of model. In some implementations, the data model may be another type of data model (e.g., a data model that is not classified as a graphical data model). - In some implementations, the service management platform may train a HMM. For example, the service management platform may use the training data to train a HMM to output, based on particular input values (e.g., values identifying one or more observations), one or more states that form a path through the HMM. The path may represent a particular network service configuration, as further described below.
- In some implementations, to train the HMM, the service management platform may identify a set of observations. For example, the service management platform may process the outcome data and/or the telemetry data to identify a set of observations. An observation may be based on a particular outcome data value, a particular telemetry data value, a set of telemetry data values, an absence of one or more values (e.g., an absence of a firewall log at a particular time period), and/or the like. For example, a firewall log may have been created by a network device when network traffic of a session was inspected by a firewall, an intrusion prevention system (IPS) alert may have been created shortly thereafter, and a data leak prevention (DLP) log may have been created shortly after that. In this case, the firewall log, the IPS alert, and the DLP log, may be identified as being part of an observation that may assist in training the HMM, as described further herein.
- In some implementations, to train the HMM, the service management platform may generate a set states. For example, in a supervised learning scenario where the data identifying the set of network service configurations is available, the service management platform may process the data identifying the set of network service configurations to identify each network service and/or each network service feature included in the set of network service configurations. In this case, the service management platform may generate a set for each network service and/or each network service feature.
- As another example, in an unsupervised learning scenario where the data identifying the set of network service configurations is not available, the service management platform may still determine the set of states. For example, the service management platform analyze the telemetry data and/or the outcome data to derive the set of states. As an example, if the telemetry data includes a firewall log, this may serve as an indicator that a firewall had been configured and deployed. As such, the service management platform may be able to generate one or more values that represent a state for a firewall service. This process may be repeated until the service management platform is able to derive the set of states. In some cases, some data identifying network service configurations may be provided (but the data may not represent a complete list of network service configurations). In these cases, a combination of the techniques described above may be used to generate the set of states.
- In some implementations, to train the HMM, the service management platform may generate a set of model parameters for the HMM. For example, as part of the unsupervised learning scenario, the service management platform may generate a set of states, a set of start probabilities, a set of state transition probabilities, and a set of emission probabilities. The set of start probabilities indicate likelihoods of starting in a particular state. The set of state transition probabilities may indicate likelihoods of a state transitioning to another state. The set of emission probabilities may indicate likelihoods of an observation occurring in a particular state. To generate the set of model parameters of the HMM, the service management platform may generate the set of model parameters by generating random values, by generating values based on domain knowledge of a network administrator, based on the values included in the training data, and/or the like. In some cases, the service management platform may generate one or more model parameters using a Baum-Welch technique, an expectation-maximization technique, a technique using a Markov Chain Monte Carlo (MCMC) sampling, and/or the like.
- In some implementations, to train the HMM, the service management platform may determine, based on particular observations, a best-fit path through the set of states. For example, in a supervised learning scenario, the service management platform may have access to values that represent the set of states, but may not know the state sequence. In this case, the service management platform may perform a Viterbi analysis or a similar type of analysis to determine a best-fit path through the set of states. Additionally, the service management platform may, while performing the Viterbi analysis, select a starting state based on the set of starting state probabilities, and may select one or more additional states by selecting states that have a highest state transition probability (relative to other states that have yet to be selected). A best-fit path may refer to a sequence of states that has a highest likelihood of satisfying a particular service request, a highest likelihood of causing a particular observation or sequence of observations to occur, and/or the like.
- As shown in
FIG. 1B as a specific example, the service management platform may receive, as part of the training data, a network service configuration that includes a firewall service, an IPS service, and a DLP service. Additionally, the service management platform may have telemetry data indicating that at a first time period, a firewall log was generated, that at a second time period, a firewall log and an IPS alert were generated, and that at a third time period, a firewall log, an IPS alert, and a DLP log were generated. In this example, a starting state S0 may represent that at time T0, a network service configuration has yet to be selected by a user. - Because the telemetry data for the first time period includes the firewall log, but not the IPS alert or the DLP log, the service management platform may determine that the firewall service state, at time T1, has the highest probability of being a first state. This may cause the service management platform to transition from the starting state S0 to the firewall service state (which is now the first state S1, at time T1). The service management platform may use the same technique to determine that the IPS service state, at time T2, has the highest probability of being the second state S2, and to determine that the DLP service state, at time T3, has the highest probability of being the third state S3. In this way, the service management platform is able to use the HMM to determine the order in which the network administrator created the network service chain. It is to be understood that this is provided by way of example, and that in practice, a more complex HMM may be implemented that is able to account for hundreds of states, thousands of states, tens of thousands of states, or more.
- In some implementations, to train the HMM, the service management platform may update (i.e., tune) the set of model parameters of the HMM. For example, in the unsupervised learning scenario, the service management platform may update the set of model parameters of the HMM to improve accuracy of the state sequences generated by the HMM. In this case, the service management platform may update the set of model parameters (e.g., the set of state transition probabilities, etc.) based on analysis of other network service configurations included in the training data (which may each correspond to particular observations). The analysis may be performed using the Baum-Welch technique, the expectation-maximization technique, and/or a similar type of technique.
- In some implementations, the service management platform may train the set of data models. For example, the service management platform may train data models that are specific to a particular set of parameters included in a service request made by a client organization (which may include guidelines that represent the intent of the client organization). Additionally, or alternatively, the service management platform may train data models based on one or more other classifications, such as by training data models that are for specific client organizations, data models that are for specific business units within client organizations, data models that are for groups of client organizations (e.g., based on industry domain or another type of classification), data models that are for specific types of devices (e.g., specific types of network devices, client devices, etc.), and/or the like.
- In some implementations, another device may train one or more data models and may provide the one or more data models to the service management platform. For example, a device associated with a software developer (e.g., a desktop computer) may be used to train a data model. After the data model is trained, the trained data model may be provided to the service management platform. For example, the trained data model may be provided to the service management platform by uploading the trained data model to a location that is accessible to the service management platform, by using a communication interface, such as an application programming interface (API), to transmit the trained data model (or a compressed version of the trained data model) to the service management platform, and/or the like.
- In this way, the service management platform may train the data model to recommend network service configurations. Furthermore, by identifying the set of states and/or the state sequence, the service management platform is able to improve accuracy of recommendations made by the HMM (relative to a model that is unable to identify the states, identify the state sequence, etc.).
- As shown in
FIG. 1C , and byreference number 145, the user device may receive a service request. For example, the user device may receive a service request from a device of a client organization, from another device of the network service provider (e.g., a device operated by a manager of a network administrator), and/or the like. - The service request may include data identifying a type of network service configuration that is being requested (e.g., a request to create a network service and/or a chain of network services, a request to update an existing network service and/or an existing chain of network services, and/or the like), a client identifier that identifies a client providing the service request, data identifying one or more guidelines for the network service configuration that is being requested, and/or the like. The one or more guidelines may be high-level service requests that are intended to capture the network service needs of the client organization. For example, the one or more guidelines may include a first guideline that requests that one or more network services provide network security (e.g., network services that protect traffic traveling through one or more networks between a source and a destination, such as a firewall service, an intrusion prevention system (IPS) service, and/or the like), a second guideline that requests that one or more network services provide content security (e.g., network services that provide confidentiality, protect intellectual property, and/or the like), a third guideline that requests that one or more network services provide authentication of particular network traffic, and/or the like.
- In some implementations, the user device may be configured with or may have access to an application that allows a user (e.g., a network administrator, etc.) to create network service configurations. For example, the application may be installed on the user device or may be a web application that is accessible via a web interface. In this case, the application may include one or more tools that the user may use to create network service configurations. For example, the application may include an integrated development environment (IDE) and/or a similar type of environment whereby the user may interact with one or more interfaces to create a network service configuration (e.g., by selecting a network service or a network service feature from a menu, by creating a new network service or a new network service feature using features of the IDE, and/or the like). Additionally, the application may include an interface that allows the user to create and submit requests for recommended network service configurations.
- As shown by
reference number 150, a network administrator may interact with the application to submit a request for a recommended network service configuration. For example, the network administrator may read the service request, and may interact with the application to input information included in the service request as parameters in the request for the recommended network service configuration. In some cases, data identifying the service request may be uploaded as part of the request for the recommended network service configuration. When the user submits the request, the user device may provide the request to the service management platform. - As shown by
reference number 155, the service management platform may select a data model. For example, the service management platform may select a data model based on the parameter data included in the request. In this case, as described above, the service management platform may have trained the set of data models (or received the set of data models that have been trained by another device), and may select the data model, from the set of data models, based on the parameter data included in the request. As a specific example, the service management platform may reference a data structure that associates data model identifiers for specific data models with identifiers of specific types of requests, identifiers of specific types of parameter data, identifiers of specific client organizations, and/or the like. This may allow the service management platform to locate an identifier of a data model that was stored in association with identifiers that match parameter data of the request, which will allow the service management platform to select the data model that is most fit to generate a recommendation for an appropriate network service configuration. - In this way, the user may use the application to submit a request for a network service configuration.
- As shown in
FIG. 1D , and byreference number 160, the service management platform may use the data model to determine likelihoods of network services and/or network service features satisfying the service request made by the client organization. For example, if the data model is the HMM, the HMM may include a set of states that represent particular network services and/or particular network service features, a set of start probabilities, a set of state transition probabilities, and a set of emission probabilities, as described elsewhere herein. In this case, the service management platform may select a first state by selecting a state that has a highest start state probability. Additionally, the service management platform may reference the set of state transition probabilities to select one or more additional states, based on each additional state having a highest available state transition probability. In some cases, selection of a next state may not be based on the highest-available state transition probability. For example, the selection may be based on one or more observations, a sequence of observations, one or more emission probabilities, and/or the like. In this way, the service management platform is able to select one or more states that collectively define a path through the HMM. - As shown in
FIG. 1D by ExampleGraphical Model 2, the HMM may include three states, a firewall service state, an IPS service state, and a DLP service state. In this example, the service management platform may select the firewall service state as a first state based on the firewall service state having a highest available start state probability (shown by a value of 0.6, which is greater than each respective value of 0.2). Additionally, the service management platform may select the IPS service state based on the IPS service state having a highest available state transition probability (shown by a value of 0.6, which is greater than a value of 0.4). Furthermore, the service management platform may select the DLP service state based on the DLP service state having a highest available state transition probability (shown as a value of 1.0 because this state is the only remaining state). In some cases (not shown), the HMM may also consider values that identify probabilities of remaining in a particular state. - This example is provided simply to illustrate the processing performed by the HMM. In practice, the HMM may include any number of states needed to represent a complete set of available network services and/or network service features.
- As shown by
reference number 165, the service management platform may select a network service configuration to recommend to the user. For example, if the data model is the HMM, each state in the path may correspond to a particular network service and/or a particular network service feature, which may allow the service management platform to select a network service configuration that includes each network service and/or network service feature identified in the path. In this case, the network service configuration may be selected from a set of candidate network service configurations that are available to the client organization. - In this way, the service management platform selects a network service configuration that can be recommended to the user.
- As shown in
FIG. 1E , and byreference number 170, the service management platform may determine one or more actions to perform. For example, the service management platform may be configured to provide data identifying the network service configuration that is being recommended to the user device and may be configured to provide the group of network devices (shown asNetwork Device 1, . . . , Network Device M) with instructions to implement (e.g., configure and/or deploy) the network service configuration. - In some implementations, the service management platform may determine an overall confidence score that represents a likelihood of the network service configuration satisfying the request (and/or the service request). For example, if the data model is the HMM, the service management platform may determine an overall confidence score for the path. The overall confidence score may be based on a set of confidence scores that represent likelihoods of particular states in the path satisfying the request (and/or the service request). As an example, if a first state is selected based on having a state transition probability of 51%, the first state may be assigned a lower confidence score than a second state that is selected based on having a state transition probability of 91%.
- Additionally, the service management platform may determine whether the overall confidence score satisfies a threshold confidence score. The threshold confidence score may represent a confidence level that may justify automatically implementing the network service configuration on the group of network devices (e.g., without review by the user).
- As shown by
reference number 175, the service management platform may provide the user device with the data identifying the network service configuration that is being recommended. In this case, the service management platform may have determined that the overall confidence score did not satisfy the threshold confidence score, which may have caused the service management platform to provide the data identifying the network service configuration to the user device. As shown byreference number 180, the user device may display the network service configuration. For example, the user device may display the network service configuration via an interface of the application used to create network service configurations. This may allow the user to view the network service configuration, modify the network service configuration, choose to accept or reject the network service configuration, and/or the like. - As shown by
reference number 185, the user may interact with the interface of the application to accept or reject the network service configuration that has been recommended. If the user rejects the network service configuration, data indicating that the network service configuration has been rejected may be provided to the service management platform (e.g., and used to retrain the HMM). In some cases, the user may be prompted to provide a reason for rejecting the network service configuration, in which case data identifying the reason may also be provided to the service management platform (and used to retrain the HMM). If the user accepts the network service configuration, the user may perform one or more actions to implement the network service configuration. For example, the user may implement the network service configuration manually, may create instructions that cause another device to implement the network service configuration, and/or the like. - As shown by
reference number 190, the service management platform may provide, to the group of network devices, a set of instructions that indicate to implement the network service configuration on the group of network devices. In this case, the service management platform may have determined that the overall confidence score satisfied the threshold confidence score, which may have caused the service management platform to generate and provide the group of network devices with the set of instructions. - The set of instructions may include a first set of instructions that indicate where to obtain (e.g., download) one or more network services that are included in the network service configuration, a second set of instructions that indicate how to configure (e.g., install) the one or more network services, a third set of instructions that indicate how to deploy the one or more network services, and/or the like. In some cases, in addition to providing the set of instructions, the service management platform may provide the group of network devices with the one or more network services (e.g., with executables needed to install the one or more network services).
- As shown by
reference number 195, the group of network devices may implement the network service configuration. For example, the group of network devices may use the first set of instructions to obtain the one or more network devices, may use the second set of instructions to configure the one or more network services, may use the third set of instructions to deploy the one or more network services, and/or the like. - As an example, the service management platform or a network service may generate and/or provide, to a network configuration and/or deployment service, instructions requesting to implement the network service configuration onto the network device. The instructions may be provided via a protocol (e.g., NETCONF, REST APIs, etc.). The instructions may include device information for the network device (e.g., an IP address of the network device and/or any other information that may be needed to implement the network service configuration), information that specifies the network service configuration that is to be implemented on the network device, and/or the like. To implement the network service configuration, the network configuration and/or deployment service may, using the protocol (e.g., NETCONF, etc.) and/or one or more application layer services that handle the configuration, cause the network device to be implemented.
- In this way, the service management platform uses machine learning to generate and provide the user device with a recommendation of a network service configuration. This conserves resources (e.g., processing resources, network resources, memory resources, and/or the like) that would otherwise be wasted implementing an ineffective network service configuration (e.g., a network service configuration that does not adequately satisfy needs of a client organization), resources that would be wasted trying to support network traffic using aspects of the ineffective network service configuration, resources that would be wasted resolving network issues created by the ineffective network service configuration, and/or the like. Additionally, or alternatively, the service management platform is able to automatically implement the network service configuration, thereby eliminating or reducing chances of human error while improving speed and efficiency of the process.
- As indicated above,
FIGS. 1A-1E are provided merely as examples. Other examples may differ from what was described with regard toFIGS. 1A-1E . For example, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown inFIGS. 1A-1E . Furthermore, two or more devices shown inFIGS. 1A-1E may be implemented within a single device, or a single device shown inFIGS. 1A-1E may be implemented as multiple and/or distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of example implementation(s) 100 may perform one or more functions described as being performed by another set of devices of example implementation(s) 100. -
FIG. 2 is a diagram of anexample environment 200 in which systems and/or methods, described herein, may be implemented. As shown inFIG. 2 ,environment 200 may include a user device 210, adata storage device 220, a service management platform hosted within acloud computing environment 240, a group of client devices 250 (shown asClient Device 1 and Client Device 2), a group of network devices 260 (shown asNetwork Device 1 through Network Device L), and/or anetwork 270. Devices ofenvironment 200 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections. - User device 210 includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with a network service configuration. For example, user device 210 may include a device, such as a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a laptop computer, a tablet computer, a handheld computer, a server computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, etc.), or a similar type of device.
- In some implementations, user device 210 may support or have access to an application that may be used to create network service configurations. In some implementations, user device 210 may provide data included in a service request, data identifying a network service configuration, and/or outcome data to
data storage device 220. In some implementations, user device 210 may receive a service request. In some implementations, user device 210 may provide, toservice management platform 230, a request for a recommended network service configuration. In some implementations, user device 210 may receive, fromservice management platform 230, data identifying a network service configuration that is being recommended. -
Data storage device 220 includes one or more devices capable of receiving, storing, generating, determining, and/or providing information associated with a set of network service configurations. For example,data storage device 220 may include a server device or a group of server devices. In some implementations,data storage device 220 may receive data included in a service request for a network service configuration, data identifying a network service configuration, outcome data, and/or telemetry data. This data may be received from user device 210, client device 250,network device 260, and/or a similar type of device. In some implementations, this data may be stored as training data and may be provided toservice management platform 230. -
Service management platform 230 includes one or more devices capable of receiving, storing, processing, determining, and/or providing information associated with a network service configuration. For example,service management platform 230 may include a server device (e.g., a host server, a web server, an application server, etc.), a data center device, or a similar device. In some implementations,service management platform 230 may support one or more features of an application that can be used to create network service configurations. In some implementations, the application may be updated with a new version, a plugin, and/or the like, that allows the application to receive and process requests for network service configurations. In some implementations, one or more embodiments, tasks, processes, and/or the like, that are described herein as being performed byservice management platform 230, may be performed by another device, such as user device 210, client device 250,network device 260, and/or the like. - In some implementations, as shown,
service management platform 230 may be hosted incloud computing environment 240. Notably, while implementations described herein describeservice management platform 230 as being hosted incloud computing environment 240, in some implementations,service management platform 230 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based. -
Cloud computing environment 240 includes an environment that hostsservice management platform 230.Cloud computing environment 240 may provide computation, software, data access, storage, etc. services that do not require end-user knowledge of a physical location and configuration of system(s) and/or device(s) that hostsservice management platform 230. As shown,cloud computing environment 240 may include a group of computing resources 235 (referred to collectively as “computingresources 235” and individually as “computing resource 235”). -
Computing resource 235 includes one or more personal computers, workstation computers, server devices, or another type of computation and/or communication device. In some implementations,computing resource 235 may hostservice management platform 230. The cloud resources may include compute instances executing incomputing resource 235, storage devices provided incomputing resource 235, data transfer devices provided bycomputing resource 235, and/or the like. In some implementations,computing resource 235 may communicate withother computing resources 235 via wired connections, wireless connections, or a combination of wired and wireless connections. - As further shown in
FIG. 2 ,computing resource 235 may include a group of cloud resources, such as one or more applications (“APPs”) 235-1, one or more virtual machines (“VMs”) 235-2, virtualized storage (“VSs”) 235-3, one or more hypervisors (“HYPs”) 235-4, and/or the like. - Application 235-1 may include one or more software applications that may be provided to or accessed by user device 210,
data storage device 220, one or more client devices 250, and/or one ormore network devices 260. Application 235-1 may eliminate a need to install and execute the software applications on these devices. In some implementations, one application 235-1 may send/receive information to/from one or more other applications 235-1, via virtual machine 235-2. In some implementations, application 235-1 may include the application that is used to create network service configurations. - Virtual machine 235-2 may include a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. Virtual machine 235-2 may be either a system virtual machine or a process virtual machine, depending upon use and degree of correspondence to any real machine by virtual machine 235-2. A system virtual machine may provide a complete system platform that supports execution of a complete operating system (“OS”). A process virtual machine may execute a single program and may support a single process. In some implementations, virtual machine 235-2 may execute on behalf of another device (e.g., user device 210,
data storage device 220, one or more client devices 250, and/or one or more network devices 260), and may manage infrastructure ofcloud computing environment 240, such as data management, synchronization, or long-duration data transfers. - Virtualized storage 235-3 may include one or more storage systems and/or one or more devices that use virtualization techniques within the storage systems or devices of
computing resource 235. In some implementations, within the context of a storage system, types of virtualizations may include block virtualization and file virtualization. Block virtualization may refer to abstraction (or separation) of logical storage from physical storage so that the storage system may be accessed without regard to physical storage or heterogeneous structure. The separation may permit administrators of the storage system flexibility in how the administrators manage storage for end users. File virtualization may eliminate dependencies between data accessed at a file level and a location where files are physically stored. This may enable optimization of storage use, server consolidation, and/or performance of non-disruptive file migrations. - Hypervisor 235-4 may provide hardware virtualization techniques that allow multiple operating systems (e.g., “guest operating systems”) to execute concurrently on a host computer, such as
computing resource 235. Hypervisor 235-4 may present a virtual operating platform to the guest operating systems and may manage the execution of the guest operating systems. - Client device 250 includes one or more devices capable of receiving, processing and/or providing network traffic in a manner described herein. For example, client device 250 may include a computing and/or communication device (e.g., a desktop computer, a laptop computer, a mobile phone, etc.), a traffic transfer device, such as a router, a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a server executing a virtual machine, etc.), a load balancer, and/or a similar type of device. Additionally, or alternatively, client device 250 may include an endpoint device that is a source or a destination for network traffic. For example, client device 250 may include a computer, a server device, a mobile device, and/or a similar type of device. In some implementations, client device 250 may receive packets associated with traffic flow of a session from other client devices 250 and/or may provide the packets to the other client devices 250 via network 270 (e.g., by routing packets using network device(s) 220 as an intermediary). In some implementations, client device 250 may collect and/or report telemetry data to
data storage device 220,service management platform 230, and/ornetwork device 260. -
Network device 260 includes one or more devices capable of receiving, processing, storing, routing, and/or providing traffic (e.g., a packet, a file, etc.) in a manner described herein. For example,network device 260 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router, a provider core router, etc.), a virtual router, and/or the like. Additionally, or alternatively,network device 260 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, a data center server, etc.), a load balancer, and/or a similar device. - In some implementations,
network device 260 may be a physical device implemented within a housing, such as a chassis. In some implementations,network device 260 may be a virtual device implemented by one or more computer devices of a cloud computing environment or a data center. - In some implementations,
network device 260 may collect and/or provide telemetry data todata storage device 220 and/orservice management platform 230. In some implementations,network device 260 may support or have access to one or more network services and/or network service features described herein. -
Network 270 includes one or more wired and/or wireless networks. For example,network 270 may include a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network, such as a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, or the like, and/or a combination of these or other types of networks. - The number and arrangement of devices and networks shown in
FIG. 2 are provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown inFIG. 2 . Furthermore, two or more devices shown inFIG. 2 may be implemented within a single device, or a single device shown inFIG. 2 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) ofenvironment 200 may perform one or more functions described as being performed by another set of devices ofenvironment 200. -
FIG. 3 is a diagram of example components of adevice 300.Device 300 may correspond to user device 210,data storage device 220,service management platform 230, one or more client devices 250, and/or one ormore network devices 260. In some implementations, user device 210,data storage device 220,service management platform 230, one or more client devices 250, and/or one ormore network devices 260 may include one ormore devices 300 and/or one or more components ofdevice 300. As shown inFIG. 3 ,device 300 may include abus 310, aprocessor 320, amemory 330, astorage component 340, aninput component 350, anoutput component 360, and acommunication interface 370. -
Bus 310 includes a component that permits communication among the components ofdevice 300.Processor 320 is implemented in hardware, firmware, or a combination of hardware and software.Processor 320 includes a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and/or another type of processing component. In some implementations,processor 320 includes one or more processors capable of being programmed to perform a function.Memory 330 includes a random access memory (RANI), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use byprocessor 320. -
Storage component 340 stores information and/or software related to the operation and use ofdevice 300. For example,storage component 340 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and/or a solid-state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive. -
Input component 350 includes a component that permitsdevice 300 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally, or alternatively,input component 350 may include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and/or an actuator).Output component 360 includes a component that provides output information from device 300 (e.g., a display, a speaker, and/or one or more light-emitting diodes (LEDs)). -
Communication interface 370 includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enablesdevice 300 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections.Communication interface 370 may permitdevice 300 to receive information from another device and/or provide information to another device. For example,communication interface 370 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like. -
Device 300 may perform one or more processes described herein.Device 300 may perform these processes based onprocessor 320 executing software instructions stored by a non-transitory computer-readable medium, such asmemory 330 and/orstorage component 340. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices. - Software instructions may be read into
memory 330 and/orstorage component 340 from another computer-readable medium or from another device viacommunication interface 370. When executed, software instructions stored inmemory 330 and/orstorage component 340 may causeprocessor 320 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software. - The number and arrangement of components shown in
FIG. 3 are provided as an example. In practice,device 300 may include additional components, fewer components, different components, or differently arranged components than those shown inFIG. 3 . Additionally, or alternatively, a set of components (e.g., one or more components) ofdevice 300 may perform one or more functions described as being performed by another set of components ofdevice 300. -
FIG. 4 is a diagram of example components of adevice 400.Device 400 may correspond to one or more client devices 250 and/or one ormore network devices 260. In some implementations, the one or more client devices 250 and/or the one ormore network devices 260 may include one ormore devices 400 and/or one or more components ofdevice 400. As shown inFIG. 4 ,device 400 may include one or more input components 405-1 through 405-B (B≥1) (hereinafter referred to collectively asinput components 405, and individually as input component 405), aswitching component 410, one or more output components 415-1 through 415-C(C≥1) (hereinafter referred to collectively asoutput components 415, and individually as output component 415), and acontroller 420. -
Input component 405 may be points of attachment for physical links and may be points of entry for incoming traffic, such as packets.Input component 405 may process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations,input component 405 may send and/or receive packets. In some implementations,input component 405 may include an input line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memories, and/or input queues. In some implementations,device 400 may include one ormore input components 405. -
Switching component 410 may interconnectinput components 405 withoutput components 415. In some implementations, switchingcomponent 410 may be implemented via one or more crossbars, via busses, and/or with shared memories. The shared memories may act as temporary buffers to store packets frominput components 405 before the packets are eventually scheduled for delivery tooutput components 415. In some implementations, switchingcomponent 410 may enableinput components 405,output components 415, and/orcontroller 420 to communicate. -
Output component 415 may store packets and may schedule packets for transmission on output physical links.Output component 415 may support data link layer encapsulation or decapsulation, and/or a variety of higher-level protocols. In some implementations,output component 415 may send packets and/or receive packets. In some implementations,output component 415 may include an output line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and/or output queues. In some implementations,device 400 may include one ormore output components 415. In some implementations,input component 405 andoutput component 415 may be implemented by the same set of components (e.g., and input/output component may be a combination ofinput component 405 and output component 415). -
Controller 420 includes a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and/or another type of processor or processing component. The processor is implemented in hardware, firmware, or a combination of software and hardware. In some implementations,controller 420 may include one or more processors that can be programmed to perform a function. - In some implementations,
controller 420 may include a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, an optical memory, etc.) that stores information and/or instructions for use bycontroller 420. - In some implementations,
controller 420 may communicate with other devices, networks, and/or systems connected todevice 400 to exchange information regarding network topology.Controller 420 may create routing tables based on the network topology information, create forwarding tables based on the routing tables, and forward the forwarding tables to inputcomponents 405 and/oroutput components 415.Input components 405 and/oroutput components 415 may use the forwarding tables to perform route lookups for incoming and/or outgoing packets. In some cases,controller 420 may create a session table based on information determined while initializing a link fault detection (e.g., BFD) session, and may forward the session table to inputcomponents 405 and/oroutput components 415. -
Controller 420 may perform one or more processes described herein.Controller 420 may perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices. - Software instructions may be read into a memory and/or storage component associated with
controller 420 from another computer-readable medium or from another device via a communication interface. When executed, software instructions stored in a memory and/or storage component associated withcontroller 420 may causecontroller 420 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software. - The number and arrangement of components shown in
FIG. 4 are provided as an example. In practice,device 400 may include additional components, fewer components, different components, or differently arranged components than those shown inFIG. 4 . Additionally, or alternatively, a set of components (e.g., one or more components) ofdevice 400 may perform one or more functions described as being performed by another set of components ofdevice 400. -
FIG. 5 is a diagram of an examplenetwork service configuration 500. Examplenetwork service configuration 500 may include a set of network services and a set of network services features. In some implementations, the set of network services and/or the set of network service features may perform tasks associated with different layers of an open system interconnection (OSI) model. For example, the set of network services and/or the set of network service features may perform tasks associated with a physical layer (layer 1), a data link layer (layer 2), a network layer (layer 3), a transport layer (layer 4), a session layer (layer 5), a presentation layer (layer 6), and/or an application layer (layer 7). - As shown by example
network service configuration 500, network services and/or network service features may perform tasks associated withlayer 2, layer 3,layer 4, and layer 7. For example, and as shown by the first two boxes in examplenetwork service configuration 500, a packet policing service, a packet filtering service, a stateful firewall (FW) service, a network address translation (NAT) service, a SYN proxy service, a firewall authentication service, a service to protect against a distributed denial-of-service (DDoS) attack, a user firewall service, and/or a unified access control service, may, at an ingress portion of a network device, perform tasks associated with layers 2-4. - As another example, and as shown by the third box in example
network service configuration 500, an application identification service, a user firewall service, a security intelligence/Geolocation IP service, and/or a security intelligence/command & control (C&C) service, may perform classification tasks associated withlayers 3 and 4. As another example, and as shown by the fourth box in examplenetwork service configuration 500, a transmission control protocol (TCP) termination service, a transport layer security (TLS) termination service, an hypertext transfer protocol (HTTP) termination service, and/or a network proxy termination service (e.g., SOCKS), may perform proxy termination tasks associated with one or more layers of the OCI model. - As another example, and as shown by the fifth box in example
network service configuration 500, a protocol and application parser service, an application identification service, and/or an application tracking service, may perform classification tasks associated with layer 7. As another example, and as shown by the sixth box in examplenetwork service configuration 500, an application firewall service, a uniform resource locator (URL) filtering service, a captive portal unified access control (UAC) service, may perform access control tasks associated with layer 7. - As another example, and as shown by the seventh box in example
network service configuration 500, a security intelligence C&C service, an intrusion prevention service, and/or an anti-spam service may perform threat prevention tasks associated with layer 7. As another example, and as shown by the eighth box in examplenetwork service configuration 500, a content filtering service, an anti-virus service, and/or an anti-malware service may perform content threat prevention tasks associated with layer 7. - As another example, and as shown by the ninth box in example
network service configuration 500, a URL rewrite service, a data leak prevention (DLP) service, and/or an application layer gateway (ALG) service, may perform content rewrite tasks associated with one or more layers of the OCI model. As another example, and as shown by the tenth box in examplenetwork service configuration 500, a TCP initiation service, a TLS initiation service, an HTTP initiation service, and/or a network proxy service (e.g., SOCKS), may perform proxy initiation tasks associated with one or more layers of the OCI model. - As another example, and as shown by the eleventh box in example
network service configuration 500, an application quality of service (QoS) service, a NAT service, and/or a stateful firewall service, may, at an egress side of a network device, perform tasks associated withlayers 3 and 4. As another example, and as shown by the twelfth box in examplenetwork service configuration 500, an egress shaping (CQs) service and/or a routing service may perform shaping and forwarding tasks associated withlayers 3 and 4. - Example
network service configuration 500 is provided to illustrate the complexity that goes in creating network service configurations. Further to this point, examplenetwork service configuration 500 excludes all network service features. For example, one or more of the 41 network services described in examplenetwork service configuration 500 may also include any number of configurable network service features. - The number and arrangement of network services and/or network service features shown in
FIG. 5 are provided as an example. In practice, examplenetwork service configuration 500 may include additional network services and/or network service features, fewer network services and/or network service features, different network services and/or network service features, or differently arranged network services and/or network service features than those shown inFIG. 5 . -
FIG. 6 is a flow chart of anexample process 600 for using machine learning to generate a recommendation of a network service configuration. In some implementations, one or more process blocks ofFIG. 6 may be performed by a service management platform (e.g., service management platform 230). In some implementations, one or more process blocks ofFIG. 6 may be performed by another device or a group of devices separate from or including the service management platform, such as a user device (e.g., user device 210), a data storage device (e.g., data storage device 220), a client device (e.g., client device 250), and/or a network device (e.g., network device 260). - As shown in
FIG. 6 ,process 600 may include receiving a request associated with one or more network service configurations that are to be used to configure a set of network devices, wherein the request includes parameter data that identifies one or more guidelines for the one or more network service configurations (block 610). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,input component 350,communication interface 370, and/or the like) may receive a request associated with one or more network service configurations that are to be used to configure a set of network devices (e.g., a set of network devices 260), as described above. In some implementations, the request may include parameter data that identifies one or more guidelines for the one or more network service configurations. In some implementations, the request may be a request for one or more new network service configurations. Additionally, or alternatively, the request may be a request to modify one or more existing network service configurations. - As further shown in
FIG. 6 ,process 600 may include selecting a graphical data model that has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network configuration services, wherein the graphical data model is selected based on the parameter data included in the request, and wherein aspects of particular network service configurations, of the set of network service configurations, have been created over time (block 620). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may select a graphical data model that has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network configuration services, as described above. In some implementations, the graphical data model may be selected based on the parameter data included in the request. For example, the graphical data model may be selected, from a set of possible graphical data models, based on the parameter data included in the request. - In some implementations, aspects of particular network service configurations, of the set of network service configurations, may have been created over time. An aspect of a network service configuration, as used herein, may include a network service that is part of the network service configuration and/or a network service feature that is part of the network service configuration. For example, if a network service configuration includes ten network services, each of the ten network services may be an aspect of the network service configuration. Additionally, in some cases, each aspect may have been created over time. For example, three of the ten network services may have been created at a first time period, another five of the network services may have been created at a second time period (such that the particular network service configuration would now include eight network services), and another two of the network services may have been created at a third time period (such that the particular network service configuration would now include ten network services).
- As further shown in
FIG. 6 ,process 600 may include determining, by using the graphical data model, a path through states that are part of the graphical data model, wherein the path corresponds to a particular network service configuration of a set of candidate network service configurations (block 630). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may determine, by using a graphical data model, a path through states that are part of the graphical data model, as described above. In some implementations, the path may correspond to a particular network service configuration of a set of candidate network service configurations. - As further shown in
FIG. 6 ,process 600 may include selecting the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model, wherein the particular network service configuration includes at least one of: a network service, one or more network service features, or a chain of network services (block 640). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may select the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model, as described above. In some implementations, the particular network service configuration may include at least one of: a network service, one or more network service features, or a chain of network services. - As further shown in
FIG. 6 ,process 600 may include performing one or more actions after selecting the particular network service configuration, wherein the one or more actions include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices (block 650). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,input component 350,output component 360,communication interface 370, and/or the like) may perform one or more actions after selecting the particular network service configuration, as described above. In some implementations, the one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices. -
Process 600 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein. - In some implementations, the graphical data model may be a Hidden Markov Model (HMM). In some implementations, the service management platform may obtain, before receiving the request, the dataset that includes the information relating to the set of network service configurations. The information may include outcome data, or telemetry data. In some implementations, the service management platform may analyze the dataset to identify a set of observations that have occurred in a particular sequence. In some implementations, the service management platform may determine, by performing a Viterbi analysis, a best-fit path that includes a particular sequence of states through the HMM, wherein the best-fit path is determined based on a particular sequence of observations, and wherein the best-fit path includes states that represent one or more of the set of network service configurations at one or more respective time periods.
- In some implementations, the graphical data model may be a Hidden Markov Model (HMM). In some implementations, the service management platform may obtain, before receiving the request, the dataset that includes the information relating to the set of network service configurations. The information may include data identifying the set of network service configurations, outcome data, or telemetry data. In some implementations, the service management platform may analyze the dataset to identify a set of observations that have occurred in a particular sequence. In some implementations, the service management platform may generate a set of states based on the data identifying the set of network service configurations. In some implementations, the service management platform may generate a set of model parameters for the HMM. In some implementations, the service management platform may update the HMM by performing the Viterbi analysis to determine a best-fit path that represents a state sequence. The best-fit path may be based a particular sequence of observations. The best-fit path may include states that represent one or more of the set of network service configurations at one or more respective time periods.
- In some implementations, when selecting the particular network service configuration, the service management platform may select the chain of network services, where the chain of network services is an ordered combination of network services, and may select the one or more network service features for at least one of the network services included in the chain. In some implementations, network services that are part of the set of candidate network service configurations may include at least one of a packet filtering service, a packet translation service, an authentication service, a classification service, a security service, a proxy service, a content filtering service, or a packet forwarding service.
- In some implementations, the service management platform may determine, for the path, a confidence score that represents a likelihood of the particular network service configuration satisfying the request. In some implementations, the service management platform may determine whether the confidence score satisfies a threshold confidence score. In some implementations, the service management platform may perform the first group of one or more actions or the second group of one or more actions based on whether the confidence score satisfies the threshold confidence score.
- Although
FIG. 6 shows example blocks ofprocess 600, in some implementations,process 600 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted inFIG. 6 . Additionally, or alternatively, two or more of the blocks ofprocess 600 may be performed in parallel. -
FIG. 7 is a flow chart of anexample process 700 for using machine learning to generate a recommendation of a network service configuration. In some implementations, one or more process blocks ofFIG. 7 may be performed by a service management platform (e.g., service management platform 230). In some implementations, one or more process blocks ofFIG. 7 may be performed by another device or a group of devices separate from or including the service management platform, such as a user device (e.g., user device 210), a data storage device (e.g., data storage device 220), a client device (e.g., client device 250), and/or a network device (e.g., network device 260). - As shown in
FIG. 7 ,process 700 may include receiving a request for one or more network service configurations that are to be used to configure a set of network devices, wherein the request includes parameter data that identifies one or more guidelines for the network service configuration (block 710). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,input component 350,communication interface 370, and/or the like) may receive a request for one or more network service configurations that are to be used to configure a set of network devices, as described above. In some implementations, the request includes parameter data that identifies one or more guidelines for the network service configuration. - As further shown in
FIG. 7 ,process 700 may include determining, by using a graphical data model, a path through states that are part of the graphical data model, wherein the graphical data model is selected based on the parameter data, wherein the path corresponds to a particular network service configuration of a set of candidate network service configurations, and wherein the graphical data model has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations (block 720). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may determine, by using a graphical data model to analyze the parameter data, a path through states that are part of the graphical data model, as described above. In some implementations, the graphical data model may be selected based on the parameter data. In some implementations, the path may correspond to a particular network service configuration of a set of candidate network service configurations, and the graphical data model may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations. - As further shown in
FIG. 7 ,process 700 may include selecting the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model, wherein the particular network service configuration is for at least one network service (block 730). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may select the particular network service configuration, of the set of candidate network service configurations, based on the path determined using the graphical data model, as described above. In some implementations, the particular network service configuration may be for at least one network service. - As further shown in
FIG. 7 ,process 700 may include determining a confidence score that represents a likelihood of the particular network service configuration satisfying the request (block 740). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340, and/or the like) may determine a confidence score that represents a likelihood of the particular network service configuration satisfying the request, as described above. - As further shown in
FIG. 7 ,process 700 may include selecting a group of one or more actions to perform based on the confidence score (block 750). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340, and/or the like) may select a group of one or more actions to perform based on the confidence score, as described above. - As further shown in
FIG. 7 ,process 700 may include performing the group of one or more actions that has been selected, wherein the group of one or more actions include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices (block 760). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,input component 350,output component 360,communication interface 370, and/or the like) may perform the group of one or more actions that has been selected, as described above. In some implementations, the group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices. -
Process 700 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein. - In some implementations, the graphical data model may be a Hidden Markov Model (HMM) and may have been trained using: a set of states that identify particular network services or particular network service features that were created, updated, deleted, or implemented, at particular time periods, a set of observations that have occurred in a particular sequence, a set of initial state probabilities, and a set of emission probabilities. In some implementations, the information relating to the set of network service configurations may include data identifying the set of network service configurations, outcome data that includes data identifying a manner in which the set of network service configurations were used, and/or telemetry data that identifies events caused by network traffic that was sent via the set of network devices that were implementing the set of network service configurations.
- In some implementations, the service management platform may obtain, before receiving the request, the dataset describing the information relating to the set of network service configurations, where the dataset includes telemetry data that identifies events caused by network traffic that was sent via the set of network devices that were implementing the set of network service configurations. In some implementations, the service management platform may analyze the dataset to identify a set of observations that have occurred in a particular sequence. In some implementations, the service management platform may generate values that represent the states of the graphical data model. In some implementations, the service management platform may generate a set of model parameters for the graphical data model. In some implementations, the service management platform may update the HMM to determine a best-fit path that represents a state sequence. A particular path through the set of states may be identified as a best-fit path based on a particular sequence of observations.
- In some implementations, the graphical data model may be a Hidden Markov Model (HMM). In some implementations, when determining the path, the service management platform may perform a Viterbi analysis to determine the path through the states. The path may represent a sequence of one or more states and is determined based on a given sequence of observations. In some implementations, when selecting the particular network service configuration, the service management platform may select the chain of network services, and may select one or more network service features for at least one of the network services included in the chain. In some implementations, network services that are part of the set of candidate network service configurations may include a packet filtering service, a packet translation service, an authentication service, a classification service, a security service, a proxy service, a content filtering service, and/or a packet forwarding service.
- In some implementations, when receiving the request, the service management platform may receive, as the request, a particular request for multiple network service configurations. Additionally, when performing the one or more actions, the service management platform may perform the first group of one or more actions to provide the data identifying the particular network service configuration for display via the interface to permit a user to select the particular network service configuration as one of the multiple network service configurations. Selection of the particular network service configuration or a different network service configuration may cause a new request for another network service configuration, of the multiple network service configurations, to be provided to the device.
- Further to the above example, the request may effectively allow a user to ask for a recommendation for a first network service or a first network service feature, and, after receiving the recommendation (and accepting or rejecting the recommendation), may receive another recommendation for a second network service or a second network service feature. This process may continue until the user has received recommendations for a combination of network services and/or network service features that may serve as a complete network service configuration.
- Although
FIG. 7 shows example blocks ofprocess 700, in some implementations,process 700 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted inFIG. 7 . Additionally, or alternatively, two or more of the blocks ofprocess 700 may be performed in parallel. -
FIG. 8 is a flow chart of anexample process 800 for using machine learning to generate a recommendation of a network service configuration. In some implementations, one or more process blocks ofFIG. 8 may be performed by a service management platform (e.g., service management platform 230). In some implementations, one or more process blocks ofFIG. 8 may be performed by another device or a group of devices separate from or including the service management platform, such as a user device (e.g., user device 210), a data storage device (e.g., data storage device 220), a client device (e.g., client device 250), and/or a network device (e.g., network device 260). - As shown in
FIG. 8 ,process 800 may include receiving a request for a network service configuration that is to be used to configure a set of network devices, wherein the request includes parameter data that identifies one or more guidelines for the network service configuration (block 810). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,input component 350,communication interface 370, and/or the like) may receive a request for a network service configuration that is to be used to configure a set of network devices, as described above. In some implementations, the request includes parameter data that identifies one or more guidelines for the network service configuration. - As further shown in
FIG. 8 ,process 800 may include selecting a data model that has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network configuration services, wherein the data model is selected based on the parameter data included in the request (block 820). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may select a data model that has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network configuration services, as described above. In some implementations, the data model may be selected based on the parameter data included in the request. - As further shown in
FIG. 8 ,process 800 may include determining, using a data model, likelihoods of particular network services or particular network service features satisfying the parameter data, wherein the data model includes values that are associated with a set of candidate network service configurations, and wherein the data model has been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations (block 830). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may determine, using a data model, likelihoods of particular network services or particular network service features satisfying the parameter data, as described above. In some implementations, the data model may have been trained via one or more machine learning techniques to analyze a dataset that includes information relating to a set of network service configurations. In some implementations, the data model may include values that are associated with a set of candidate network service configurations. - As further shown in
FIG. 8 ,process 800 may include selecting a particular network service configuration, of the set of candidate network service configurations, based on the likelihoods of the particular network services or the particular network service features satisfying the parameter data (block 840). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,communication interface 370, and/or the like) may select a particular network service configuration, of the set of candidate network service configurations, based on the likelihoods of the particular network services or the particular network service features satisfying the request, as described above. - As further shown in
FIG. 8 ,process 800 may include determining a confidence score that represents a likelihood of the particular network service configuration satisfying the request (block 850). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340, and/or the like) may determine a confidence score that represents a likelihood of the particular network service configuration satisfying the request, as described above. - As further shown in
FIG. 8 ,process 800 may include selecting a group of one or more actions to perform based on the confidence score (block 860). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340, and/or the like) may select a group of one or more actions to perform based on the confidence score, as described above. - As further shown in
FIG. 8 ,process 800 may include performing the group of one or more actions that has been selected, wherein the group of one or more actions include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices (block 870). For example, the service management platform (e.g., usingcomputing resource 235,processor 320,memory 330,storage component 340,input component 350,output component 360,communication interface 370, and/or the like) may perform the group of one or more actions that has been selected, as described above. In some implementations, the group of one or more actions may include at least one of: a first group of one or more actions to provide data identifying the particular network service configuration for display via an interface, or a second group of one or more actions to implement the particular network service configuration on the set of network devices. -
Process 800 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein. - In some implementations, when selecting the particular network service configuration, the service management platform may select a chain of network services as the particular network service configuration. The chain of network services may include two or more network services, and a set of network service features for at least one of the two or more network services.
- In some implementations, the data model may be a graphical data model, and the service management platform may receive, before receiving the request, the graphical data model. Each state may represent a respective network service, or a respective network service feature, that had been created, updated, deleted, or implemented, at a particular time period. The data model may have been trained to determine, based on a set of observations, a best-fit path through a set of states.
- In some implementations, the dataset that includes the information relating to the set of network service configurations may include data included in service requests for the set of network service configurations, data identifying the set of network service configurations, outcome data that includes data identifying a manner in which the set of network service configurations were used, and/or telemetry data that identifies events caused by network traffic that was sent via the set of network devices that were implementing the set of network service configurations. The data identifying the set of network service configurations may exclude information that indicates times at which particular network services or particular network service features were created, updated, deleted, or implemented.
- In some implementations, network services that are part of the set of candidate network service configurations may include at least one of: a packet filtering service, a packet translation service, an authentication service, a classification service, a security service, a proxy service, a content filtering service, or a packet forwarding service. In some implementations, when performing the group of one or more actions, the service management platform may provide, after selecting the second group of one or more actions, the set of network devices with a set of instructions for the particular network service configuration to cause the set of network devices to use the set of instructions to implement the particular network service configuration.
- Although
FIG. 8 shows example blocks ofprocess 800, in some implementations,process 800 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted inFIG. 8 . Additionally, or alternatively, two or more of the blocks ofprocess 800 may be performed in parallel. - As used herein, the term network traffic, traffic flow, or content may include a set of packets. A packet may refer to a communication structure for communicating information, such as a protocol data unit (PDU), a network packet, a datagram, a segment, a message, a block, a cell, a frame, a subframe, a slot, a symbol, a portion of any of the above, and/or another type of formatted or unformatted unit of data capable of being transmitted via a network.
- The foregoing disclosure provides illustration and description but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the implementations.
- As used herein, the term “component” is intended to be broadly construed as hardware, firmware, and/or a combination of hardware and software.
- Some implementations are described herein in connection with thresholds. As used herein, satisfying a threshold may refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc.
- Certain user interfaces have been described herein and/or shown in the figures. A user interface may include a graphical user interface, a non-graphical user interface, a text-based user interface, etc. A user interface may provide information for display. In some implementations, a user may interact with the information, such as by providing input via an input component of a device that provides the user interface for display. In some implementations, a user interface may be configurable by a device and/or a user (e.g., a user may change the size of the user interface, information provided via the user interface, a position of information provided via the user interface, etc.). Additionally, or alternatively, a user interface may be pre-configured to a standard configuration, a specific configuration based on a type of device on which the user interface is displayed, and/or a set of configurations based on capabilities and/or specifications associated with a device on which the user interface is displayed.
- It will be apparent that systems and/or methods, described herein, may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods were described herein without reference to specific software code—it being understood that software and hardware can be designed to implement the systems and/or methods based on the description herein.
- Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the claim set.
- No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.), and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/647,059 US20220131767A1 (en) | 2018-12-14 | 2022-01-05 | SYSTEM FOR IDENTIFYING AND ASSISTING IN THE CREATION AND IMPLEMENTATION OF A NETWORK SERVICE CONFIGURATION USING HIDDEN MARKOV MODELS (HMMs) |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/221,441 US11252046B2 (en) | 2018-12-14 | 2018-12-14 | System for identifying and assisting in the creation and implementation of a network service configuration using Hidden Markov Models (HMMs) |
US17/647,059 US20220131767A1 (en) | 2018-12-14 | 2022-01-05 | SYSTEM FOR IDENTIFYING AND ASSISTING IN THE CREATION AND IMPLEMENTATION OF A NETWORK SERVICE CONFIGURATION USING HIDDEN MARKOV MODELS (HMMs) |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/221,441 Continuation US11252046B2 (en) | 2018-12-14 | 2018-12-14 | System for identifying and assisting in the creation and implementation of a network service configuration using Hidden Markov Models (HMMs) |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220131767A1 true US20220131767A1 (en) | 2022-04-28 |
Family
ID=67211482
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/221,441 Active 2040-01-01 US11252046B2 (en) | 2018-12-14 | 2018-12-14 | System for identifying and assisting in the creation and implementation of a network service configuration using Hidden Markov Models (HMMs) |
US17/647,059 Pending US20220131767A1 (en) | 2018-12-14 | 2022-01-05 | SYSTEM FOR IDENTIFYING AND ASSISTING IN THE CREATION AND IMPLEMENTATION OF A NETWORK SERVICE CONFIGURATION USING HIDDEN MARKOV MODELS (HMMs) |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/221,441 Active 2040-01-01 US11252046B2 (en) | 2018-12-14 | 2018-12-14 | System for identifying and assisting in the creation and implementation of a network service configuration using Hidden Markov Models (HMMs) |
Country Status (3)
Country | Link |
---|---|
US (2) | US11252046B2 (en) |
EP (1) | EP3668007B1 (en) |
CN (1) | CN111327451B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230269191A1 (en) * | 2022-02-23 | 2023-08-24 | Cisco Technology, Inc. | Flow parser and per flow data center utilization in a cloud-based secure access service environment |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10469584B2 (en) * | 2016-09-30 | 2019-11-05 | Salesforce.Com, Inc. | Techniques and architectures for managing disparate heterogeneous cloud-based resources |
US11461676B2 (en) * | 2019-07-31 | 2022-10-04 | EMC IP Holding Company LLC | Machine learning-based recommendation engine for storage system usage within an enterprise |
US11431743B2 (en) * | 2020-02-03 | 2022-08-30 | Forcepoint, LLC | Cross domain dynamic data protection intermediary message transform platform |
US11424976B1 (en) * | 2021-03-16 | 2022-08-23 | Jpmorgan Chase Bank, N.A. | Methods and systems for anomaly detection |
CN115484161B (en) | 2021-05-28 | 2024-07-19 | 南宁富联富桂精密工业有限公司 | TSN network configuration method, device and computer readable storage medium |
WO2023008763A1 (en) * | 2021-07-30 | 2023-02-02 | Samsung Electronics Co., Ltd. | Method and electronic device for managing machine learning services in wireless communication network |
US11811721B2 (en) | 2021-09-27 | 2023-11-07 | Juniper Networks, Inc. | Edge device for source identification using source identifier |
WO2024047551A1 (en) * | 2022-08-31 | 2024-03-07 | Jio Platforms Limited | System and method for upgradation of network elements |
US20240114368A1 (en) * | 2022-10-04 | 2024-04-04 | Arris Enterprises Llc | Using telemetry metrics for remediating network issues |
US20240129187A1 (en) * | 2022-10-12 | 2024-04-18 | Arris Enterprises Llc | Access point device usage-based recommendation |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031895B1 (en) * | 1999-07-26 | 2006-04-18 | Fujitsu Limited | Apparatus and method of generating network simulation model, and storage medium storing program for realizing the method |
US20090126023A1 (en) * | 2007-11-12 | 2009-05-14 | Yun Joobeom | Apparatus and method for forecasting security threat level of network |
US7774440B1 (en) * | 2001-07-25 | 2010-08-10 | Scalable Network Technologies, Inc. | Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model |
US20150135012A1 (en) * | 2013-11-08 | 2015-05-14 | Accenture Global Services Limited | Network node failure predictive system |
US20170046519A1 (en) * | 2015-08-12 | 2017-02-16 | U.S Army Research Laboratory ATTN: RDRL-LOC-I | Methods and systems for defending cyber attack in real-time |
US20170205863A1 (en) * | 2016-01-14 | 2017-07-20 | Intel Corporation | Dynamically updating a power management policy of a processor |
US20180359172A1 (en) * | 2017-06-12 | 2018-12-13 | Juniper Networks, Inc. | Network path prediction and selection using machine learning |
US20190034829A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Filtering training data for models in a data center |
US20200136949A1 (en) * | 2018-10-31 | 2020-04-30 | Citrix Systems, Inc. | Network Configuration System |
US10911318B2 (en) * | 2015-03-24 | 2021-02-02 | Futurewei Technologies, Inc. | Future network condition predictor for network time series data utilizing a hidden Markov model for non-anomalous data and a gaussian mixture model for anomalous data |
US20220022066A1 (en) * | 2018-12-11 | 2022-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to predict network performance of a fixed wireless network |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909926B2 (en) * | 2002-10-21 | 2014-12-09 | Rockwell Automation Technologies, Inc. | System and methodology providing automation security analysis, validation, and learning in an industrial controller environment |
JP3804650B2 (en) * | 2003-10-02 | 2006-08-02 | 日本電気株式会社 | Digital PLL circuit and information recording apparatus using the same |
EP1589716A1 (en) * | 2004-04-20 | 2005-10-26 | Ecole Polytechnique Fédérale de Lausanne (EPFL) | Method of detecting anomalous behaviour in a computer network |
JP4379223B2 (en) * | 2004-06-18 | 2009-12-09 | 日本電気株式会社 | Behavior model creation system, behavior model creation method and behavior model creation program |
US8249056B2 (en) | 2009-03-12 | 2012-08-21 | At&T Intellectual Property I, L.P. | Converged telephone number mapping for call completion among hybrid communication services |
US20110088011A1 (en) | 2009-10-14 | 2011-04-14 | Vermeg Sarl | Automated Enterprise Software Development |
US9705815B2 (en) * | 2014-06-27 | 2017-07-11 | Juniper Networks, Inc. | Graph database for services planning and configuration in network services domain |
US10095878B2 (en) * | 2015-06-02 | 2018-10-09 | ALTR Solutions, Inc. | Internal controls engine and reporting of events generated by a network or associated applications |
WO2017143885A1 (en) * | 2016-02-25 | 2017-08-31 | 华为技术有限公司 | Application processing method and apparatus for embedded universal integrated circuit card |
US11151472B2 (en) * | 2017-03-31 | 2021-10-19 | At&T Intellectual Property I, L.P. | Dynamic updating of machine learning models |
US10735273B2 (en) * | 2017-07-31 | 2020-08-04 | Accenture Global Solutions Limited | Using machine learning to make network management decisions |
US11113625B2 (en) * | 2017-08-14 | 2021-09-07 | International Business Machines Corporation | Adaptive configuration of a heterogeneous cluster environment |
CN108024156B (en) * | 2017-12-14 | 2020-04-14 | 四川大学 | Partially reliable video transmission method based on hidden Markov model |
CN108446200B (en) * | 2018-02-07 | 2021-10-29 | 福建星瑞格软件有限公司 | Intelligent operation and maintenance method for server based on big data machine learning and computer equipment |
-
2018
- 2018-12-14 US US16/221,441 patent/US11252046B2/en active Active
-
2019
- 2019-06-17 EP EP19180607.4A patent/EP3668007B1/en active Active
- 2019-06-27 CN CN201910567041.1A patent/CN111327451B/en active Active
-
2022
- 2022-01-05 US US17/647,059 patent/US20220131767A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031895B1 (en) * | 1999-07-26 | 2006-04-18 | Fujitsu Limited | Apparatus and method of generating network simulation model, and storage medium storing program for realizing the method |
US7774440B1 (en) * | 2001-07-25 | 2010-08-10 | Scalable Network Technologies, Inc. | Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model |
US20090126023A1 (en) * | 2007-11-12 | 2009-05-14 | Yun Joobeom | Apparatus and method for forecasting security threat level of network |
US20150135012A1 (en) * | 2013-11-08 | 2015-05-14 | Accenture Global Services Limited | Network node failure predictive system |
US10911318B2 (en) * | 2015-03-24 | 2021-02-02 | Futurewei Technologies, Inc. | Future network condition predictor for network time series data utilizing a hidden Markov model for non-anomalous data and a gaussian mixture model for anomalous data |
US20170046519A1 (en) * | 2015-08-12 | 2017-02-16 | U.S Army Research Laboratory ATTN: RDRL-LOC-I | Methods and systems for defending cyber attack in real-time |
US20170205863A1 (en) * | 2016-01-14 | 2017-07-20 | Intel Corporation | Dynamically updating a power management policy of a processor |
US20180359172A1 (en) * | 2017-06-12 | 2018-12-13 | Juniper Networks, Inc. | Network path prediction and selection using machine learning |
US20190034829A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Filtering training data for models in a data center |
US20200136949A1 (en) * | 2018-10-31 | 2020-04-30 | Citrix Systems, Inc. | Network Configuration System |
US20220022066A1 (en) * | 2018-12-11 | 2022-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to predict network performance of a fixed wireless network |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230269191A1 (en) * | 2022-02-23 | 2023-08-24 | Cisco Technology, Inc. | Flow parser and per flow data center utilization in a cloud-based secure access service environment |
Also Published As
Publication number | Publication date |
---|---|
EP3668007B1 (en) | 2022-05-04 |
CN111327451A (en) | 2020-06-23 |
US11252046B2 (en) | 2022-02-15 |
EP3668007A1 (en) | 2020-06-17 |
US20200195517A1 (en) | 2020-06-18 |
CN111327451B (en) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220131767A1 (en) | SYSTEM FOR IDENTIFYING AND ASSISTING IN THE CREATION AND IMPLEMENTATION OF A NETWORK SERVICE CONFIGURATION USING HIDDEN MARKOV MODELS (HMMs) | |
US11252054B2 (en) | Dynamically modifying a service chain based on network traffic information | |
US20220292190A1 (en) | Methods and apparatus for analyzing sequences of application programming interface traffic to identify potential malicious actions | |
US11115428B2 (en) | Systems and methods for determining network data quality and identifying anomalous network behavior | |
US9426024B2 (en) | Establishing communication between enterprise nodes migrated to a public cloud and private enterprise infrastructure | |
US11924168B2 (en) | Firewall rules intelligence | |
US9473369B2 (en) | Application topology based on network traffic | |
US10972508B1 (en) | Generating a network security policy based on behavior detected after identification of malicious behavior | |
JP2019153336A (en) | Automatic reduction in security threat of electronic message basis | |
CN111953641A (en) | Classification of unknown network traffic | |
US8825838B2 (en) | Identification of business process application service groups | |
US20150326448A1 (en) | Network-as-a-service product director | |
EP4328754A2 (en) | Techniques to isolating a portion of an online computing service | |
CN112534432A (en) | Real-time mitigation of unfamiliar threat scenarios | |
US11245551B2 (en) | Generating flexible, programmable, and scalable network tunnels on demand | |
US12047272B2 (en) | Utilizing a centralized controller for traffic engineering segment routing inter-autonomous systems | |
US20150304167A1 (en) | Accelerating device, connection and service discovery | |
US11743105B2 (en) | Extracting and tagging text about networking entities from human readable textual data sources and using tagged text to build graph of nodes including networking entities | |
US11516138B2 (en) | Determining network flow direction | |
US20240196177A1 (en) | Apparatus and method for providing centralized policy management in telecommunications system | |
US20240152609A1 (en) | Event-driven monitoring of resources in a cloud computing environment | |
CN113709196A (en) | Data extraction method, data extraction device, computer equipment, medium and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: JUNIPER NETWORKS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MANTHENA, VENKATA RAMA RAJU;REEL/FRAME:060233/0835 Effective date: 20220608 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |