Application model for automated management of software application deployments
First Claim
1. A meta-application system for managing a computer system including a deployment of a software application, comprising:
- a telemetry component that collects data values of state metrics associated with the deployment, at least some of the data values being numerical;
an application model that represents the deployment, the application model comprising;
an object graph representing hardware and software elements of the managed computer system, the elements represented as objects of the graph, the object graph including information about relationships between the elements;
configuration data about the elements; and
tests for determining behavioral information about at least some of the elements;
a discovery component configured to conduct, after installation of the deployment, automated discovery of information about at least the deployment, by sending software probes onto a communication network, the discovery component configured to discover software services that are not provided by the deployment or the meta-application system, the discovery component configured to use the discovered information to create the application model, wherein the discovery component is configured to, after creating the application model, dynamically modify the application model on an ongoing basis in response to detected changes of configuration of the deployment;
a repository of encoded knowledge comprising;
a collection of deployment-independent rules describing known problems associated with the software application, at least some of the rules comprising logical combinations of conditions individually satisfied by features of the deployment; and
deployment-independent remedies for countering the problems;
an analysis subsystem that detects instances of the problems within the deployment, at least by programmatically using features of the deployment to satisfy at least some of the logical combinations of conditions of the rules, at least one of the conditions of the collection of rules being numerical, at least one of the features comprising or being derived from one or more of the collected state metric data values, the analysis subsystem configured to submit queries to the application model for information about the deployment, the analysis subsystem configured to use the information obtained by the queries as features for satisfying individual conditions of the rules, in order to implement said detection of said problem instances; and
one or more computer systems operative to implement the telemetry component, application model, discovery component, repository, and analysis subsystem;
wherein the telemetry component, application model, discovery component, and analysis subsystem comprise code that is separate from code of the software application of the managed computer system.
8 Assignments
0 Petitions
Accused Products
Abstract
A system for managing a deployment of a software application is disclosed. The system includes a telemetry component that collects data values of state metrics associated with the deployment, an application model that represents the deployment, a repository of encoded knowledge describing known problems associated with the software application, and an analysis subsystem that programmatically maps logical combinations of features associated with the deployment to known problems. The application model includes a representation of physical and logical objects in a domain of the deployment, and configuration data about the objects. The analysis subsystem is adapted to query the application model for information about the deployment. The application model can implement a discovery process to construct itself by using an abstract model of a generalized deployment of the software application, the discovery process including obtaining information from the managed deployment.
267 Citations
43 Claims
-
1. A meta-application system for managing a computer system including a deployment of a software application, comprising:
-
a telemetry component that collects data values of state metrics associated with the deployment, at least some of the data values being numerical; an application model that represents the deployment, the application model comprising; an object graph representing hardware and software elements of the managed computer system, the elements represented as objects of the graph, the object graph including information about relationships between the elements; configuration data about the elements; and tests for determining behavioral information about at least some of the elements; a discovery component configured to conduct, after installation of the deployment, automated discovery of information about at least the deployment, by sending software probes onto a communication network, the discovery component configured to discover software services that are not provided by the deployment or the meta-application system, the discovery component configured to use the discovered information to create the application model, wherein the discovery component is configured to, after creating the application model, dynamically modify the application model on an ongoing basis in response to detected changes of configuration of the deployment; a repository of encoded knowledge comprising; a collection of deployment-independent rules describing known problems associated with the software application, at least some of the rules comprising logical combinations of conditions individually satisfied by features of the deployment; and deployment-independent remedies for countering the problems; an analysis subsystem that detects instances of the problems within the deployment, at least by programmatically using features of the deployment to satisfy at least some of the logical combinations of conditions of the rules, at least one of the conditions of the collection of rules being numerical, at least one of the features comprising or being derived from one or more of the collected state metric data values, the analysis subsystem configured to submit queries to the application model for information about the deployment, the analysis subsystem configured to use the information obtained by the queries as features for satisfying individual conditions of the rules, in order to implement said detection of said problem instances; and one or more computer systems operative to implement the telemetry component, application model, discovery component, repository, and analysis subsystem; wherein the telemetry component, application model, discovery component, and analysis subsystem comprise code that is separate from code of the software application of the managed computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 41, 42, 43)
-
-
12. A computer-implemented application model for managing a computer system including a deployment of a software application, comprising:
-
an object graph representing hardware and software elements of the managed computer system, the elements represented as objects of the graph, the graph also representing relationships between said elements as individual objects of the graph, the object graph including configuration data about the elements, the object graph also including metadata about the elements, the metadata including diagnostic procedures associated with at least some of the elements; a query interface for reasoning on queries for information contained within the application model; and one or more computer systems operative to implement the object graph and the query interface; wherein the object graph and the query interface comprise code that is separate from code of the software application of the managed computer system. - View Dependent Claims (13)
-
-
14. A computer-implemented method of managing a computer system including a deployment of a software application, comprising:
-
accessing an abstract model of a generalized deployment of the software application, the abstract model including a plurality of possible configurations of the deployment; after installation of the deployment, sending one or more software probes onto a communication network associated with the deployment, the software probes configured to discover information about at least the deployment, the software probes also configured to discover information about software services that are not provided by the deployment; using the abstract model in conjunction with the information discovered by the one or more software probes to create an application model of the deployment, the application model comprising; an object graph representing hardware and software elements of the managed computer system, the elements represented as objects of the graph, the object graph including configuration data about the elements; and a query interface for responding to queries for deployment information used to detect problems described by an encoded source of knowledge about the software application; dynamically modifying the application model on an ongoing basis in response to detected changes of configuration of the deployment; querying the application model for information about the deployment; receiving a response to the query; and accessing an encoded, deployment-independent knowledge rule for detecting an instance of a known problem associated with the software application of the managed computer system, the rule comprising a logical combination of conditions individually satisfied by features of the deployment, the features comprising inputs to the rule; satisfying the logical combination of conditions at least in-part by using at least a portion of the received query response as an input to the rule; accessing a deployment-independent remedy for countering the problem, the remedy being associated with the rule and developed independently of the deployment; wherein said steps of accessing the abstract model, sending the one or more probes, using the abstract model, dynamically modifying the application model, querying the application model, receiving the response to the query, accessing the rule, satisfying the logical combination of conditions, and accessing the remedy are executed based on code that is separate from code of the software application of the managed computer system; wherein the method is performed by one or more computing devices. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A meta-application system for monitoring and analyzing a computer system including a deployment of a software application, comprising:
-
an application model that maintains a representation of a deployment of a software application, wherein the application model includes a query interface to enable other components of the system to query the application model for information about the deployment; a discovery component configured to conduct, after installation of the deployment, automated discovery of information about at least the deployment, by sending software probes onto a communication network, the discovery component configured to discover software services that are not provided by the deployment or the meta-application system, the discovery component configured to use the discovered information to create the application model, the discovery component also configured to dynamically modify the application model on an ongoing basis in response to detected changes of configuration of the deployment; a monitoring component configured to obtain state metric data values associated with the deployment of the software application in response to requests for such state metric data values, at least some of the state metric data values being numerical, wherein the monitoring component submits queries to the application model to obtain deployment data, and uses the deployment data to determine how to collect requested state metric data values from the deployment; an analysis component that analyzes the state metric data values collected by the monitoring component to detect and analyze predefined features in the behavior of the deployment of the software application, at least one of the features comprising numerical data; and one or more computer systems operative to implement the application model, discovery component, monitoring component, and analysis component; wherein the application model, discovery component, monitoring component, and analysis component comprise code that is separate from code of the software application of the monitored computer system; wherein the analysis component submits said requests for state metric data values to the monitoring component in response to detections of said features, such that the state metric data values collected by the monitoring component during a period of time are dependent upon types of features analyzed by the analysis component during said period of time; wherein the analysis component uses deployment-independent logic rules to detect problems associated with the software application, at least some of the rules comprising logical combinations of conditions individually satisfied by features of the deployment, including the features that the analysis component detects using the state metric data values, wherein the analysis component interprets a satisfaction of one of the logical combinations of conditions as a detection of one of the problems within the deployment. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
Specification