Deployment, maintenance and configuration of complex hardware and software systems
First Claim
1. A method in a computing system with a processor and a memory for deploying a complex system, the method comprising:
- providing an abstract configuration of a system a desired state of the system, the abstract configuration referencing machines and their machine types that comprise the system, application components that are to execute on each machine, resources needed by each application component, and locations of the resources;
for each application component, providing a deployment descriptor specifying resources required by that application component to execute properly;
formulating by the computing system a list of resources required by the referenced application components of the abstract configuration of the system as specified by the deployment descriptors;
determining by the computing system whether all the resources in the formulated list of resources are referenced in the abstract configuration of the system by comparing the formulated list of resources to the resources referenced in the abstract configuration;
upon determining that not all the resources are referenced in the abstract configuration of the system, generating an error; and
upon determining that all the resources are referenced in the abstract configuration of the system,determining by the computing system whether the referenced machines exist and are the proper machine type; and
upon determining that the referenced machines exist and are the proper type, for each referenced machine;
identifying by the computing system deployed application components that are currently deployed on the referenced machine;
identifying by the computing system referenced application components to be deployed to the referenced machine as indicated by the abstract configuration;
comparing by the computing system the identified deployed application components to the identified referenced application components to determine the application components to be deployed to the referenced machine; and
deploying the determined referenced application components on the referenced machine.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for deploying, maintaining and configuring complex hardware and software systems are provided. An abstract configuration of the system describes the system'"'"'s desired state. Each component of the system declares the general form of the resources it requires and an abstract representation of the versions of the services it both requires and provides. A configuration process uses the abstract configuration of the system and the descriptions of each of the components in the system to validate that the system can operate effectively, ensures that each component is in the correct state and at the right version, and generates the necessary interconnections for the application components to interoperate with each other.
42 Citations
16 Claims
-
1. A method in a computing system with a processor and a memory for deploying a complex system, the method comprising:
-
providing an abstract configuration of a system a desired state of the system, the abstract configuration referencing machines and their machine types that comprise the system, application components that are to execute on each machine, resources needed by each application component, and locations of the resources; for each application component, providing a deployment descriptor specifying resources required by that application component to execute properly; formulating by the computing system a list of resources required by the referenced application components of the abstract configuration of the system as specified by the deployment descriptors; determining by the computing system whether all the resources in the formulated list of resources are referenced in the abstract configuration of the system by comparing the formulated list of resources to the resources referenced in the abstract configuration; upon determining that not all the resources are referenced in the abstract configuration of the system, generating an error; and upon determining that all the resources are referenced in the abstract configuration of the system, determining by the computing system whether the referenced machines exist and are the proper machine type; and upon determining that the referenced machines exist and are the proper type, for each referenced machine; identifying by the computing system deployed application components that are currently deployed on the referenced machine; identifying by the computing system referenced application components to be deployed to the referenced machine as indicated by the abstract configuration; comparing by the computing system the identified deployed application components to the identified referenced application components to determine the application components to be deployed to the referenced machine; and deploying the determined referenced application components on the referenced machine. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage medium storing computer-executable instructions for controlling a computing system to deploy a complex system, by a method comprising:
-
receiving as input an abstract configuration of a system specifying a desired state of the system, the abstract configuration specifying machines and their machine types that comprise the system. application components that are to execute on each machine, resources needed by each application component, and locations of the resources; for each application component, providing a deployment descriptor specifying resources required by that application component to execute properly; for the application components specified in the abstract configuration, formulating by the computing system a list of the resources required by the application components based on the provided deployment descriptors of the application components; comparing the formulated list of resources to the resources specified in the abstract configuration of the system to determine whether the abstract configuration correctly specifies the resources needed by the specified application components; upon determining that the abstract configuration does not correctly specify the resources needed by the specified application components, generating an error message; and upon determining that the abstract configuration does correctly specify the resources needed by the specified application components, determining by the computing system whether the specified machines exist and are the error machine type; and upon determining that the specified machines exist and are the proper type, for each specified machine; identifying by the computing system deployed application components that are currently deployed on the specified machine; identifying by the computing system specified application components to be deployed to the specified machine as indicated by the abstract configuration; comparing by the computing system the identified deployed application components to the identified specified application components to determine the application components to be deployed to the specified machine; and deploying the determined specified application components on the specified machine. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A deployment system for deploying a complex system, the deployment system comprising:
-
a memory storing computer-executable instructions of an abstract configuration of a system specifying a desired state of the system by specifying one or more application components and one or more machines, the abstract configuration further specifying the application components and resources to deploy on each of the machines; an application component library comprising at least one application component, the application component comprising a deployment descriptor and program components, wherein the deployment descriptor specifies the resources required by the application component, and further wherein the program components are the logic for the application component; and a configuration component that is operable to read the abstract configuration and determine from the deployment descriptors the resources required by the application components specified in the abstract configuration; determine whether the required resources are referenced in the abstract configuration of the system; upon determining that the required resources are not referenced in the abstract configuration of the system, generating an error; and upon determining that the required resources are referenced in the abstract configuration of the system, determining whether the machines referenced in the abstract configuration exist; upon determining that not all the machines referenced in the abstract configuration exist, generating an error; and upon determining that all the machines referenced in the abstract configuration exist, indicating that the abstract configuration is valid; and a processor for executing the computer-executable instructions stored in the memory. - View Dependent Claims (14, 15, 16)
-
Specification