Intelligent learning and management of a networked architecture

Intelligent learning and management of networked architectures is disclosed. A network architecture can be mapped to identify a set of interconnected hardware and software elements that comprise the network architecture. Data sources associated with the set of interconnected hardware and software elements can be identified and employed to compile data associated with the elements. The data can be utilized to determine an action to address potential negative effects of a change to the network architecture such as an update or patch. In one instance, the action corresponds to a reconfiguration of at least one of the set of interconnected hardware and software elements. Further, machine learning can be employed to determine a particular configuration. Once determined the action can be implemented on the network architecture.

BACKGROUND

Networks are becoming more complex and more distributed, especially for large corporations or financial institutions. The networks continuously are adding network elements to the network that have different configurations, security policies, access policies, and/or the like. It is becoming increasingly difficult to manage each element or type of element on a growing network. Especially difficult is managing and learning the best configurations for each element with updates, new policies, and/or the like as each element may come from a different supplier with its own configuration type and update schedule.

SUMMARY

Systems and methods are provided associated with intelligent management of a networked architecture. In accordance with one aspect, a method, comprising a number of operations including mapping a network architecture comprising a set of software and hardware elements interconnected in a domain, identifying a change to be made to the network architecture, automatically determining an action to address a conflict, associated with the change, that negatively affects performance of the network architecture, in which the action corresponds to reconfiguration of at least one of the set of software and hardware elements, and implementing the action on the network architecture. In one instance the change can correspond to an update or a patch. The method can further comprise determining a negative impact on functionality of the network architecture associated with the change and automatically determining the action that mitigates the negative impact on the functionality of the network architecture.

According to another aspect, a system is provided that comprises a processor coupled to a memory that stores instructions that, when executed by the processor, cause the processor to perform operations. In particular, the instructions can cause a processor to analyze a network architecture comprising a set of software and hardware elements interconnected in a domain, identify a change to be made to the network architecture, automatically determine an action to address a conflict that negatively affects performance of the network architecture associated with the change, in which the action corresponds to reconfiguration of at least one of the set of software and hardware elements, and implement the action on the network architecture. Further, the instructions can cause the processor to determine identifies associated with elements of the networked architecture, locate data sources associated with the elements based on the identifiers, and compile data from the data sources for the elements. The performance of the networked architecture can be determined by way of machine learning based on compiled data. Further, the action can be determined by way of the machine learning based on the performance of the network architecture.

A method is also provided in accordance with another aspect that comprises executing, on a processor, instructions that cause the processor to perform operations. The operations can include identifying a set of interconnected software and hardware elements comprising a network architecture, identifying an update to at least one of the set of interconnected software and hardware elements, automatically determining an action to avoid negative impact on functionality of the network architecture associated with the update, wherein the action corresponds to configuration of at least one of the set of interconnected software and hardware elements, and implementing the action on the network architecture. In one instance, the operations further comprise identifying one or more data sources associated with the set of interconnected software and hardware elements, compiling data the one or more data sources, and determining functionality associated with the network architecture by way of machine learning based on the data. Further, the action can be determined by way of machine leaning based on the data.

Aspects of the subject disclosure include substantial benefits in terms of learning an environment and a networked architecture. One advantage resides in a learned understanding of the best configuration for elements in a networked architecture. Another advantage resides in automatically executing the best configuration for elements in a networked architecture.

DETAILED DESCRIPTION

FIG. 1illustrates a system100for intelligent learning and management of networked architectures. The system100includes a mapping component110. The mapping component110maps a networked architecture120. In some embodiments, the networked architecture120includes elements interconnected in a common environment. The elements can include software elements, hardware elements, and/or the like. The environment can be a distributed system, open network, closed network, local area network, and/or the like through which data and/or network traffic traverses to connect the elements.

The mapping component110determines a set of elements of the networked architecture120. In some embodiments, each element of the set of elements includes a unique identifier and/or a type identifier to distinguish elements on the networked architecture120. For example, a software element may be unique to a specific device but also have server copies of the same software elements on multiple devices in the environment. The unique identifier can indicate the element on the specific device and the type identifier can indicate all copies installed of the same software element. In some embodiments, a unique identifier is a serial number, MAC address, IP address, network name, and/or the like. In some embodiments, the type identifier is product name, brand name, model number, workgroup, and/or the like.

The mapping component110determines data sources associated with the set of elements using the identifiers. In some embodiments, the data sources can be system behaviors, human behaviors, internet databases, intranet databases, and/or the like. System behaviors can be how the system is performing (e.g. underperforming, faults, blind spots, performance metrics, and/or the like). Human behaviors can include instances when the system100has failed to determine a configuration for the environment and therefore needed human intervention to determine a best configuration. In some embodiments, human behaviors can be recorded interactions with the elements that indicate inefficiencies to remedy through a new configuration.

Internet databases can be found using the unique identifier and/or type identifier to direct the mapping component110to websites, online manuals, product information databases, and/or the like. The internet databases can have information such as version logs, change logs, patches, updates, support information, end-of-life tracking, and/or the like. In some embodiments, the internet database can indicate alternative elements to the elements currently being employed by the networked architecture120. Intranet databases can include information managed by a system administrator and/or the like to include best practices for a company, internal rules, preferred vendors, client preferences, security requirements, government requirements, and/or the like.

The mapping component110compiles data associated with the set of elements from the determined data sources. The mapping component110analyzes information from the compiled data to facilitate determining the configuration. For example, the mapping component110can analyze the compiled data to determine what updates are needed for a set of elements. In some embodiments, the mapping component110can learn from the analyzed information for future configuration decisions using machine learning techniques, artificial intelligence, deep learning intelligence, and/or the like.

The system100includes a diagnosis component130. The diagnosis component130determines a configuration for at least one element in the environment based on the mapping. In some embodiments, the diagnosis component130determines a configuration for the entire environment. The diagnosis component130utilizes the analysis of the compiled data from the mapping component110to determine and/or generate the configuration.

The system100includes an implementation component140. The implementation component140executes based on the configuration. The implementation component140can perform actions that change or alter the configuration of an element. The implementation component140can perform installation, uninstallation, replacement, updates, tune settings, other configuration functions, and/or the like. The implementation component140receives the configuration from the diagnosis component130. The implementation component140extracts the different functions to be applied to each element in the system architecture on the environment from the configuration. In some embodiments, the implementation component140can organize the functions and/or order of functions to optimize execution of the configuration for the environment.

In some embodiments, the diagnosis component130determines a known configuration of at least one element in the set of elements from the learned information. The implementation component140deploys the known configuration to the element in the environment.

In other embodiments, the diagnosis component130determines one or more sub-configurations for different elements in the environment. The diagnosis component130compiles the sub-configurations into a batched configuration for the set of elements. The implementation component140deploys the batched configuration to the set of elements in the environment.

In some embodiments, the diagnosis component130determines an application ledger for a subset of elements of the set of elements. The application ledger is a distributed ledger and/or the like. For example, the application ledger can be a hashgraph or blockchain ledger. The application ledger can document previous or special configurations of an element in the environment. From the ledger, the diagnosis component130determines unnecessary configurations based on the application ledger of the subset of elements. The diagnosis component130can block the unnecessary configuration for a specific element from the finalized configuration to be executed by the implementation component140. For example, the mapping component110has determined a new version of a software element; however, the software element has a custom configuration recently deployed to the software element. The application ledger of the element shows that the configuration has been customized and therefore the diagnosis component130determines that the version of the software element should not be included in the final configuration.

FIG. 2illustrates a detailed component diagram of the mapping component110. The mapping component110includes a scanning component210. The scanning component210scans the networked architecture120of the environment. The scanning component210generates a map of the networked architecture120having elements in the environment. The elements can include software elements and hardware elements. The environment can be a distributed system, open network, closed network, local area network, and/or the like through which data and/or network traffic traverses to connect the elements.

The scanning component210determines a set of elements of the networked architecture120. In some embodiments, each element of the set of elements includes a unique identifier and/or a type identifier to distinguish elements on the networked architecture120. For example, a software element may be unique to a specific device but also have server copies of the same software elements on multiple devices in the environment. The unique identifier can indicate the element on the specific device and the type identifier can indicate all copies installed of the same software element.

The mapping component110includes an information component220. The information component220determines data sources230associated with the set of elements using the identifiers. In some embodiments, the data sources230can be system behaviors, human behaviors, internet databases, and/or intranet databases. System behaviors can be how the system is performing (e.g. underperforming, faults, blind spots, performance metrics, and/or the like). Human behaviors can include instances when the system100has failed to determine a configuration for the environment and therefore needed human intervention to determine a best configuration.

Internet databases can be found using the unique identifier and/or type identifier to direct the information component220to websites, online manuals, product information databases, and/or the like. The internet databases can have information such as version logs, change logs, patches, updates, support information, end-of-life tracking, and/or the like. Intranet databases can include information managed by a system administrator and/or the like to include best practices for a company, internal rules, preferred vendors, client preferences, security requirements, government requirements, and/or the like.

The mapping component110includes a knowledgebase240. The knowledgebase240compiles data from the determined data sources230associated with the set of elements. The knowledgebase240can prioritize compiling from data sources most relevant to the set of elements according to a predetermined prioritization or a learned prioritization.

The mapping component110includes a learning component250. The learning component250analyzes information from the compiled data to facilitate determining the configuration. The learning component250can prioritize new information about the set of elements to facilitate determining a configuration. In some embodiments, the learning component250prioritizes relevant data that is pertinent to a newly diagnosed configuration. In other embodiments, the learning component250can prioritize changes in the data from the data sources regarding the elements such that diagnosis component130can easily know the differences for elements to diagnose a new configuration.

In some embodiments, the learning component250utilizes machine learning, artificial intelligence, deep learning intelligence techniques, and/or the like to further facilitate determining configurations. For example, a determined configuration may have failed in the execution phase by the implementation component140. The failed configuration needed intervention by a system administrator to finish executing the configuration. The learning component250can learn the actions of the system administrator using machine learning such that future configurations do not fail.

FIG. 3illustrates a detailed component diagram of a diagnosis component130. The diagnosis component130includes a configuration component310. The configuration component310determines a configuration for at least one element in the environment based on the mapping from the mapping component110. In some embodiments, the configuration component310determines a configuration for the networked architecture120. The configuration component310utilizes the analysis of the compiled data from the mapping component110to determine the configuration.

The configuration component310can determine configuration actions to be performed on an element or set of elements in the networked architecture120. The configuration component310can determine an installation, an uninstallation, a replacement, an update, tune settings, other configuration functions, and/or the like. In some embodiments, the configuration component310determines a known configuration of at least one element in the set of elements from the learned information. The implementation component140deploys the known configuration to the element in the environment.

In other embodiments, the configuration component310can determine one or more sub-configurations for different elements in the environment. The configuration component310compiles the sub-configurations into a batched configuration for the set of elements. The implementation component140executes the batched configuration to the set of elements in the environment.

The diagnosis component130includes a ledger component320that determines an application ledger for a subset of elements of the set of elements. The application ledger is a distributed ledger and/or the like. For example, the application ledger can be a hashgraph or blockchain ledger. The application ledger can document previous or special configurations of an element in the environment.

The diagnosis component130includes an analysis component330. From the ledger, the analysis component330determines unnecessary configurations based on the application ledger of the subset of elements. The analysis component330can block the unnecessary configuration for a specific element from the finalized configuration to be executed by the implementation component140. For example, the mapping component110has determined a new version of a software element; however, the software element has a custom configuration recently deployed to the software element. The application ledger of the element shows that the configuration has been customized. The analysis component330determines that the version of the software element should not be included in the final configuration.

FIG. 4illustrates a method400for intelligent learning of architecture and environment management. At410, a set of elements of a networked architecture are determined. At420, data sources are determined; the data sources are associated with the set of elements. At430, information from the data sources are analyzed using machine learning techniques. At440, a configuration is determined for the set of elements in the environment based on the analysis. At450, the configuration is automatically executed based on the configuration.

Still another embodiment can involve a computer-readable medium comprising processor-executable instructions configured to implement one or more embodiments of the techniques presented herein. An embodiment of a computer-readable medium or a computer-readable device that is devised in these ways is illustrated inFIG. 5, wherein an implementation500comprises a computer-readable medium508, such as a CD-R, DVD-R, flash drive, a platter of a hard disk drive, etc., on which is encoded computer-readable data506. This computer-readable data506, such as binary data comprising a plurality of zero's and one's as shown in506, in turn comprises a set of computer instructions504configured to operate according to one or more of the principles set forth herein. In one such embodiment500, the processor-executable computer instructions504is configured to perform a method502, such as at least a portion of one or more of the methods described in connection with embodiments disclosed herein. In another embodiment, the processor-executable instructions504are configured to implement a system, such as at least a portion of one or more of the systems described in connection with embodiments disclosed herein. Many such computer-readable media can be devised by those of ordinary skill in the art that are configured to operate in accordance with the techniques presented herein.

With reference toFIG. 6and the following discussion provide a description of a suitable computing environment in which embodiments of one or more of the provisions set forth herein can be implemented. The operating environment ofFIG. 6is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the operating environment. Example computing devices include, but are not limited to, personal computers, server computers, hand-held or laptop devices, mobile devices, such as mobile phones, Personal Digital Assistants (PDAs), media players, tablets, and the like, multiprocessor systems, consumer electronics, mini computers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

Generally, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions are distributed via computer readable media as will be discussed below. Computer readable instructions can be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform particular tasks or implement particular abstract data types. Typically, the functionality of the computer readable instructions can be combined or distributed as desired in various environments.

FIG. 6illustrates a system600comprising a computing device602configured to implement one or more embodiments provided herein. In one configuration, computing device602can include at least one processing unit606and memory608. Depending on the exact configuration and type of computing device, memory608may be volatile, such as RAM, non-volatile, such as ROM, flash memory, etc., or some combination of the two. This configuration is illustrated inFIG. 6by dashed line604.

In these or other embodiments, device602can include additional features or functionality. For example, device602can also include additional storage such as removable storage or non-removable storage, including, but not limited to, magnetic storage, optical storage, and the like. Such additional storage is illustrated inFIG. 6by storage610. In some embodiments, computer readable instructions to implement one or more embodiments provided herein are in storage610. Storage610can also store other computer readable instructions to implement an operating system, an application program, and the like. Computer readable instructions can be accessed in memory608for execution by processing unit606, for example.

Device602can include one or more input devices614such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, or any other input device. One or more output devices612such as one or more displays, speakers, printers, or any other output device can also be included in device602. The one or more input devices614and/or one or more output devices612can be connected to device602via a wired connection, wireless connection, or any combination thereof. In some embodiments, one or more input devices or output devices from another computing device can be used as input device(s)614or output device(s)612for computing device602. Device602can also include one or more communication connections616that can facilitate communications with one or more other devices620by means of a communications network618, which can be wired, wireless, or any combination thereof, and can include ad hoc networks, intranets, the Internet, or substantially any other communications network that can allow device602to communicate with at least one other computing device620.