Systems and methods for gathering deployment state for automated management of software application deployments
First Claim
1. A system for obtaining information about a managed deployment of a software application, comprising:
- a plurality of deployment platforms, at least some of which are running components of the managed software application deployment;
a meta-application computer system comprising one or more computers, said meta-application system programmed to implement at least;
a discovery component configured to use an initial deployment- independent abstract model of the software application to generate a context- sensitive application model of the managed deployment, by discovering information from the managed deployment and using the discovered information to populate the abstract model;
a plurality of monitors, each monitor associated with a subset of the deployment platforms and configured to gather state metric data from said associated subset; and
an analysis subsystem that generates requests for state metric data for specific state metrics from the managed deployment, based on deployment-independent encoded knowledge or based on deployment-independent encoded remedies associated with the encoded knowledge, the abstract model and the encoded knowledge being generated from analyses of reference materials for the software application being managed and empirical analyses done on a plurality of different deployments of the managed software application, the encoded knowledge describing known problems with the software application, the analysis subsystem configured to transmit each request for state metric data to a monitor associated with one of the deployment platforms that is associated with the request, the analysis subsystem configured to query the application model for deployment information necessary to transmit the requests for state metric data to appropriate ones of the monitors;
wherein each monitor is configured to receive requests for state metric data from the analysis subsystem and collect state metric data responsive to the requests from the platform subset associated with the monitor;
wherein at least some of the monitors are each configured to run a plurality of probes corresponding to multiple state metrics, each probe configured to gather data for a specific one of the state metrics;
wherein the meta-application system is configured to receive updates to the encoded knowledge and/or the abstract model from one or more update servers.
9 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for obtaining information about a deployment of a software application are disclosed. One system comprises a plurality of deployment servers running components of the software application deployment, a plurality of monitors associated with the deployment servers, and an analysis subsystem that generates requests for state metrics from the deployment, based on rules describing known problems with the software application. The analysis subsystem transmits each request for state metrics to a monitor associated with a deployment server that is associated with the request. The monitors are configured to receive the requests for state metrics from the analysis subsystem and collect the state metrics from one of the components of the software application deployment. The monitors, which can reside on the deployment servers or locally with respect to the analysis subsystem, can transmit the collected state metrics back to the analysis subsystem. An application model storing a representation of objects of the deployment can also be provided, wherein the analysis subsystem queries the application model for deployment information necessary to transmit the requests for state metrics to appropriate ones of the monitors. The monitors can be configured to conduct post-processing of collected state metrics, and also to prevent redundant collection.
-
Citations
40 Claims
-
1. A system for obtaining information about a managed deployment of a software application, comprising:
-
a plurality of deployment platforms, at least some of which are running components of the managed software application deployment; a meta-application computer system comprising one or more computers, said meta-application system programmed to implement at least; a discovery component configured to use an initial deployment- independent abstract model of the software application to generate a context- sensitive application model of the managed deployment, by discovering information from the managed deployment and using the discovered information to populate the abstract model; a plurality of monitors, each monitor associated with a subset of the deployment platforms and configured to gather state metric data from said associated subset; and an analysis subsystem that generates requests for state metric data for specific state metrics from the managed deployment, based on deployment-independent encoded knowledge or based on deployment-independent encoded remedies associated with the encoded knowledge, the abstract model and the encoded knowledge being generated from analyses of reference materials for the software application being managed and empirical analyses done on a plurality of different deployments of the managed software application, the encoded knowledge describing known problems with the software application, the analysis subsystem configured to transmit each request for state metric data to a monitor associated with one of the deployment platforms that is associated with the request, the analysis subsystem configured to query the application model for deployment information necessary to transmit the requests for state metric data to appropriate ones of the monitors; wherein each monitor is configured to receive requests for state metric data from the analysis subsystem and collect state metric data responsive to the requests from the platform subset associated with the monitor; wherein at least some of the monitors are each configured to run a plurality of probes corresponding to multiple state metrics, each probe configured to gather data for a specific one of the state metrics; wherein the meta-application system is configured to receive updates to the encoded knowledge and/or the abstract model from one or more update servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
9. A method of obtaining information about a deployment of a software application, comprising:
-
generating a context-sensitive application model of the deployment by discovering information from the deployment and using the discovered information to populate a deployment-independent abstract model of the software application; using the application model to choose and activate a set of monitors for gathering state metric data from the deployment, each monitor associated with one of a plurality of deployment servers, at least some of the servers running, components of the software application, each monitor configured to gather state metric data for deployment state metrics from the server associated with the monitor; generating requests for state metric data for specific deployment state metrics from the deployment, based on deployment-independent encoded rules describing known problems with the software application or based on deployment-independent encoded remedies associated with the problems; and accessing the application model to obtain deployment information necessary to transmit the requests for state metrics to appropriate ones of the monitors; and using the deployment information obtained from the application model to transmit each request for state metric data to an appropriate one of the monitors; wherein each monitor is configured to receive requests for state metric data from the analysis subsystem and collect state metric data responsive to the requests from the server associated with the monitor; wherein the method is performed by one or more computing devices. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 19, 40)
-
-
20. A system for obtaining information about a deployment of a software application, comprising:
-
a plurality of deployment platforms, at least some of which are running components of the software application deployment; a meta-application computer system comprising one or more computers, said meta-application system programmed to implement at least; a discovery component configured to use an initial deployment-independent abstract model of the software application to generate a context-sensitive application model of the deployment, by discovering information from the deployment and using the discovered information to populate the abstract model, the application model comprising an object graph representation of the deployment, at least some of the objects corresponding to hardware or software elements of the deployment; a plurality of monitors, each monitor associated with a subset of the more deployment platforms and configured to gather state metric data for one or more deployment state metrics from said associated subset; an analysis subsystem that generates requests for state metric data for specific state metrics from the deployment, based on root cause analysis algorithms associated with the software application, the analysis subsystem configured to transmit each request for state metric data to a monitor associated with one of the deployment platforms that is associated with the request, the analysis subsystem configured to query the application model for deployment information necessary to transmit the requests for state metric data to appropriate ones of the monitors; wherein each monitor is configured to receive requests for state metric data from the analysis subsystem and collect state metric data responsive to the requests from the platform subset associated with the monitor; wherein at least some of the monitors are configured to run a plurality of probes corresponding to multiple state metrics, each probe configured to gather data for a specific one of the state metrics; wherein at least one of the root cause analysis algorithms comprises; identifying a plurality of suspect objects of the object graph; and using pattern-recognition against portions of the object graph having at least some of the suspect objects, to identify objects that are root cause candidates.
-
Specification