Creating a common application definition can simplify administrative operations such as deployment, provisioning, backup, and recovery.
The same application definition can apply across varying hardware and software environments:
A development environment, where the application configuration and files are created and maintained.
A staging and test environment, where a content administrator creates the dynamic content for an application.
A production environment, where the configured application is available to end users.
One or more secondary development environments, where an application definition can be recycled as a template for new applications.
A backup environment, where the application can be redeployed and restarted in the event of a problem with the main production environment.
These environments may include variations in the numbers and types of servers, operating systems, and network architecture. For example, a development environment might be a single Unix workstation, a test environment might be a set of virtual machines running on a Windows server, and a production environment might include a dedicated subnet connecting an MDEX Engine server and multiple application servers and log servers.
To replicate application definitions across environments, you must:
Part of the solution is to develop with the Guided Search Deployment Template. The Deployment Template uses the EAC to manage application definitions across servers in each environment. Although each environment may contain multiple machines, including the MDEX Engine Server, the ITL Server, and application servers, the application definition is stored in only one of them: the EAC Central Server. The Deployment Template generates application control scripts that keep the other servers updated with the definition stored on the EAC Central Server.
A typical situation is illustrated in the following diagram. In this example, an administrator maintains three environments, one for development, a second for staging, testing and adjusting applications, and a third for running the application in production.
The administrator wants to synchronize the application across the three environments, so that changes made in the development environment can be moved quickly to the staging environment, and so that adjustments made in the staging environment can be deployed easily both to the production environment, and back to the development environment (where they can be reflected in new versions of the application under development).
The administrator is developing with the Deployment Template, so when a new or modified application definition is moved to the EAC Central Server in each environment, the EAC takes care of propagating the necessary parts of the application definition across the servers in that environment.
But to simplify the replication process as much as possible the administrator must also:
Similar considerations would apply if the administrator wanted to:
Replicate the application definition to a secondary development environment and use it as a basis of a new application.
Create a copy of the application that can be stored in a safe location, and then quickly replicated to a backup environment or disaster recovery site, even if the characteristics of that site differ from the original environment.