Model-Based system management
A model of a system is generated and used as a basis for managing the system. As the system is managed, the system model can be updated to reflect changes to the system. Managing of the system can include one or more of provisioning applications in the system, provisioning applications in virtual systems, provisioning test environments, monitoring the configuration of the system, monitoring the system including the health of the system, performing capacity planning for the system, and propagating attributes to different components in the system.
1 . A method comprising:
accessing a set of one or more models, the one or more models including:
a model of an application, the model of the application including one or more information pages for each of one or more components or relationships in the model of the application; or
a model of a system, the model of the system representing one or more managed systems and including characteristics and relationships of the one or more managed systems;
performing, with the set of one or more models, at least two of:
provisioning systems based on the set of one or more models;
provisioning virtual systems based on the set of one or more models;
provisioning test environments based on the set of one or more models;
updating the set of one or more models based on deployments made in the system;
predicting system capacity based on the set of one or more models;
monitoring health of the system based on the set of one or more models;
managing configurations of the system based on the set of one or more models; or
updating the set of one or more models by propagating attributes.
2 . A method as recited in claim 1 , wherein the set of one or more models includes both the model of the application and the model of the system.
3 . A method as recited in claim 1 , wherein the performing comprises:
performing at least one of:
the provisioning systems based on the set of one or more models;
the provisioning virtual systems based on the set of one or more models; or
the provisioning test environments based on the set of one or more models; and
performing at least one of:
the updating the set of one or more models based on deployments made in the system;
the predicting system capacity based on the set of one or more models;
the monitoring health of the system based on the set of one or more models;
the managing configurations of the system based on the set of one or more models; or
the updating the set of one or more models by propagating attributes.
4 . A method as recited in claim 3 , wherein the performing at least one of the updating, the predicting, the monitoring, the managing, or the updating comprises performing each of:
the updating the set of one or more models based on deployments made in the system;
the predicting system capacity based on the set of one or more models;
the monitoring health of the system based on the set of one or more models;
the managing configurations of the system based on the set of one or more models; and
the updating the set of one or more models by propagating attributes.
5 . A method as recited in claim 1 , wherein the model of the system includes a plurality of components, and wherein the predicting system capacity comprises:
identifying relationships among the plurality of components based on the model of the system;
identifying transactions to be performed by the system;
identifying a cost associated with each of the identified transactions; and
simulating operation of the system using the model of the system and the identified costs.
6 . A method as recited in claim 1 , wherein the updating the set of one or more models by propagating attributes comprises:
identifying a plurality of attributes associated with the system;
determining a manner in which the plurality of attributes are to be propagated throughout the system; and
propagating the plurality of attributes to a plurality of components of the system based on information contained in the model of the system.
7 . One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to:
create one or more of:
an application model, the application model including one or more information pages for each of one or more components or relationships in the application model; or
a system model, the system model representing one or more managed systems and including characteristics and relationships of the one or more managed systems;
do two or more of:
provision systems based on the created one or more models;
provision virtual systems based on the created one or more models;
provision test environments based on the created one or more models;
update the created one or more models based on deployments made in the system;
predict system capacity based on the created one or more models;
monitor health of the system based on the created one or more models;
manage configurations of the system based on the created one or more models; or
update the created one or more models by propagating attributes.
8 . One or more computer readable media as recited in claim 7 , wherein to create one or more of the application model and the system model is to create both the application model and the system model.
9 . One or more computer readable media as recited in claim 7 , wherein the plurality of instructions further causes the one or more processors to:
do one or more of:
provision systems based on the created one or more models;
provision virtual systems based on the created one or more models; or
provision test environments based on the created one or more models; and
do one or more of:
update the created one or more models based on deployments made in the system;
predict system capacity based on the created one or more models;
monitor health of the system based on the created one or more models;
manage configurations of the system based on the created one or more models; or
update the created one or more models by propagating attributes.
10 . One or more computer readable media as recited in claim 9 , wherein to do one or more of update the created one or more models based on deployments made in the system, predict system capacity based on the created one or more models, monitor health of the system based on the created one or more models, manage configurations of the system based on the created one or more models, or update the created one or more models by propagating attributes is to do each of update the created one or more models based on deployments made in the system, predict system capacity based on the created one or more models, monitor health of the system based on the created one or more models, manage configurations of the system based on the created one or more models, or update the created one or more models by propagating attributes.
11 . One or more computer readable media as recited in claim 7 , wherein the one or more managed systems comprises a plurality of computing devices and a plurality of software applications installed on the plurality of computing devices.
12 . One or more computer readable media as recited in claim 7 , wherein the plurality of instructions further cause the one or more processors to:
receive notification of a problem from a first component of the system;
determine a cause of the problem, the determination being made at least in part based on the created one or more models; and
identify at least one component associated with the cause of the problem.
13 . One or more computer readable media as recited in claim 7 , wherein the plurality of instructions further cause the one or more processors to:
identify relationships among a plurality of components of the system based on the created one or more models;
identify a proposed change to at least one of the plurality of components; and
determine an expected impact on the system caused by the proposed change, the determination being made at least in part based on the created one or more models.
14 . A system comprising:
means for accessing one or more of an application model and a system model, the application model including one or more information pages for each of one or more components or relationships in the application model, and the system model representing one or more managed systems and including characteristics and relationships of the one or more managed systems;
two or more of:
means for provisioning systems based on one or more of the application model and the system model;
means for provisioning virtual systems based on one or more of the application model and the system model;
means for provisioning test environments based on one or more of the application model and the system model;
means for updating one or more of the application model and the system model based on deployments made in the system;
means for predicting system capacity based on one or more of the application model and the system model;
means for monitoring health of the system based on one or more of the application model and the system model;
means for managing configurations of the system based on one or more of the application model and the system model; or
means for updating one or more of the application model and the system model by propagating attributes.
15 . A system as recited in claim 14 , wherein the means for accessing comprises means for accessing both the application model and the system model.
16 . A system as recited in claim 14 , further comprising:
at least one of:
the means for provisioning systems based on one or more of the application model and the system model;
the means for provisioning virtual systems based on one or more of the application model and the system model;
the means for provisioning test environments based on one or more of the application model and the system model; and
at least one of:
the means for updating one or more of the application model and the system model based on deployments made in the system;
the means for predicting system capacity based on one or more of the application model and the system model;
the means for monitoring health of the system based on one or more of the application model and the system model;
the means for managing configurations of the system based on one or more of the application model and the system model; or
the means for updating one or more of the application model and the system model by propagating attributes.
17 . A system as recited in claim 16 , further comprising all of:
the means for updating one or more of the application model and the system model based on deployments made in the system;
the means for predicting system capacity based on one or more of the application model and the system model;
the means for monitoring health of the system based on one or more of the application model and the system model;
the means for managing configurations of the system based on one or more of the application model and the system model; or
the means for updating one or more of the application model and the system model by propagating attributes.