Deploying

Deployment is the activity in which applications are placed onto application servers, without needing to customize the application code for each server environment. The J2EE 1.3 specification assigns three explicit duties to the Deployer:

  1. Install the application files on the appserver.

  2. Configure the application for the particular operational environment.

  3. Start the newly deployed application.

At this point, the application becomes the responsibility of the administrator who takes care of it on a day-to-day basis.

To understand the Deployer role, it helps to examine the second step of the Deployer role -- configuring the application for the particular operational environment. The appeal of the J2EE specification is that one can write and package applications once, for deployment to many different environments. This is possible because (put simplistically):

For example, when the application is assembled, security roles can be defined in the deployment descriptor of the application. The Deployer maps these security roles to specific users or groups that exist in the particular environment.

The specification notes that once in a while, the Deployer might be responsible for wrappering the application code or customizing its presentation qualities, but for the most part, J2EE applications should be portable as written.

Whether or not you acknowledge the J2EE model, someone in your organization must perform these Deployer tasks. That person probably will be an administrator, but could also be a developer who is deploying applications for unit-testing.

In either case, the IBM WebSphere Application Server systems administration tools furnish the capability to install applications, configure them, and start them. The deployer can perform these operations via Web-based administrative console, wsadmin scripting interface, or programmatic JMX MBean APIs. These administrative tools allow installation of J2EE applications that have modules compliant with J2EE 1.3 specification, J2EE 1.2 specification or a combination of both.

During application installation, the deployer provides environment-specific information required to run the application. The administrative tools present the deployer with a series of questions (or GUI panels) to collect configuration information related to the application and its modules. These tools also have built-in intelligence that chooses default values for various pieces of required information based on the current environment configuration.

Module-to-server relationships are important information for the deployer to furnish during deployment. The management logic of the product facilitates deployment of different modules of the same application to different servers or clusters. A single application module can be deployed on one or more servers or clusters or combination of both. Deployment of a module on a cluster is particularly helpful in achieving load balancing (the balancing of incoming requests for module components) and for continuous availability of module artifacts in long-running production cycles where individual member servers of the cluster can be recycled from time to time.

In addition to installing the application, the deployer also assumes the responsibility to start and stop applications as needed. When an application server starts, all the modules installed on that server are started. making them available to client applications. Stopping an appserver stops all the installed modules. Additionally, the administrative tools also allow starting and stopping of applications without having to start and stop application servers.

After the application is installed and started the deployer might receive new versions of the application from the development team from time to time. The administrative tools allow the deployer to update an installed application with newer versions of application logic. Similar to installation experience, the deployer is presented with an interface where environment-specific configuration can be entered for the new version of the application. The administrative tools perform smart merging of configuration information from the newer version of the application with the one in the older version, and also choose appropriate defaults wherever required, making the job of deployment easy.

See Welcome to Deployment and Welcome to System Administration for more information.