GlassFish Server Open Source Edition 3.1 - Deployment One Pager
1. Introduction1.1. Project/Component Working Name:Deployment 1.2. Name(s) and e-mail address of Document Author(s)/Supplier:Hong Zhang : hzhang_jn@java.net 1.3. Date of This Document:05/14/2010 2. Project Summary2.1. Project Description:
2.2. Risks and Assumptions:The clustering deployment feature depends on the clustering infrastructure features (basic clustering, synchronization and dynamic reconfiguration). Any delay in the delivery of the depended features will affect the delivery of the clustering deployment feature. The application versioning feature is done by external contributor SERLI and there is certain risk associated with external contributors. 3. Problem Summary3.1. Problem Area:Clustering DeploymentWe need to support for this for v2 feature parity. Also this is part of the defining feature set for 3.1. Support application related commands in clustering environmentWe need to support the same set of the application commands for v2 feature parity. Support WebLogic deployment descriptors in Glassfish (partial)To enable WebLogic applications developed by ISVs to run on GlassFish. To allow user to develop applications with simple WebLogic extensions on Glassfish and then run on WebLogic. Rename sun specific deployment descriptor dtds (sun-.dtd) to glassfish dtds (glassfish-.dtd)A requirement as part of the Oracle-Sun acquisition. Application versioning, support deployment of application with multiple versionsTo make it easier for users to upgrade/rollback between different versions of the application. 3.2. Justification:Clustering Deploymentv2 feature parity, part of the release driver for this release. Support application related commands in clustering environmentv2 feature parity. Support WebLogic deployment descriptors in Glassfish (partial)To provide a bridge between Glassfish and WebLogic. Rename sun specific deployment descriptor dtds (sun-.dtd) to glassfish dtds (glassfish-.dtd)Acquisition requirement. Application versioning, support deployment of application with multiple versionsEase of development. 4. Technical Description:4.1. Details:Clustering Deployment
This document describes the high level design for supporting dynamic deployment to cluster. We will provide v2 feature parity for dynamic deployment to cluster. We will support the same set of operations to manipulate the application lifecycle in the clustering environment without restarting the server instances: deploy, redeploy, undeploy, enable, disable. The following lists the supported targets of the various deployment mechanisms in the clustering environment: 1. Archive deployment: deploy the application as an archive. 2. Directory deployment: deploy the application in a directory format. 3. Dynamic Reloading: redeploy the application by creating/modifying a special .reload file in the applications repository. 4. Automatic deployment: drop the application archive in the autodeploy directory. 5. JSR88 deployment. Please see v2.1 doc for sections describing deploying in cluster profile for more details of the feature.
We will provide v2 feature parity for application rolling upgrade. Please see v2.1 doc for feature details. We plan to enhance the application rolling upgrade by taking advantage of the application versioning feature. With the enhancement, no cluster instance restart is needed and the dynamic reconfiguration can be left on (no need to turn it off and then on). Please see this page for more technical details. Support application related commands in clustering environmentWe will provide v2 feature parity for the application commands in the clustering environment. These are the new commands which will be added on top of the existing set of v3 commands: create-application-ref, delete-application-ref, list-application-refs. These are the existing v3 set of the commands which will be now supported/extended in the clustering environment: create-lifecycle-module, delete-lifecycle-module, list-lifecycle-modules, deploy, undeploy, enable, disable, deploydir, redeploy, list-components, show-component-status, list-applications. Please see v2.1 doc for the detailed syntax on these commands. Support WebLogic deployment descriptors in Glassfish (partial)We will support WebLogic deployment descriptors in Glassfish to enable WebLogic applications developed by ISVs to run on GlassFish, and also to allow user to develop applications with simple WebLogic extensions on Glassfish and then run on WebLogic. This document shows an overview of the current set of the WebLogic deployment descriptors. In this release, we will only support the subset of the elements in the WebLogic deployment descriptors where Glassfish has equivalent functionality, and the rest elements will be ignored during processing. This [ page |SupportWLDDInContainers] shows an evaluation of the WebLogic deployment descriptor elements and the Glassfish equivalent deployment descriptor elements when exist. The weblogic deployment descriptor will be ignored with a warning message when the corresponding glassfish or sun deployment descriptor is present in the same archive. The deployment module will be responsible for the deployment framework level changes, and the elements in weblogic-application.xml and weblogic-application-client.xml. Rename sun specific deployment descriptor dtds (sun-.dtd) to glassfish dtds (glassfish-.dtd)Due to the Oracle-Sun acquisition, we will need to rename all the sun specific deployment descriptor dtds to glassfish dtds. The sun specific deployment descriptors will continue to be supported (and deprecated) for backward compatibility. The sun deployment descriptor will be ignored with a warning message when the corresponding glassfish deployment descriptor is present in the same archive. Please see this [ page |GlassfishizeSunDTD] for more technical details. Application versioning, support deployment of application with multiple versionsWith application versioning feature, the user will be able to deploy multiple versions of the application to the Glassfish. And the user can easily upgrade or rollback to one version of the application using the basic set of the commands (deploy/enable/disable). Only one version of the application can be enabled at one time in the runtime. The name option of the existing application commands is extended to include a version identifier or a version expression to support the application versioning feature. For example, you could deploy the version RC-1.0 of web application foo using the following syntax: asadmin deploy --name foo:RC-1.0 foo.war This eliminates the need to update all the existing application commands with an additional option and also greatly simplifies the implementation. The non-versioned v2 syntax of application commands are continue to be supported where the name option is interpreted as a name with an untagged version. Please see this [ page |VersioningDesignDocument] for more technical details. 4.2. Bug/RFE Number(s):Application versioning, issue 4100 Rolling upgrade, issue 4132 4.3. In Scope:Rolling UpgradeThe application aspect of the rolling upgrade. Support WebLogic deployment descriptors in Glassfish (partial)Deployment framework level support for plugging in the processing of the WebLogic deployment descriptors. Support the subset of the elements in weblogic-application.xml and weblogic-application-client.xml where Glassfish has equivalent functionality. Application versioning, support deployment of application with multiple versionsWe only support application versioning with at most one version enabled at one time in the runtime. 4.4. Out of Scope:Rolling UpgradeLoad balancer (and its associated cli commands), backup-domain cli command, resource part of the rolling upgrade. Support WebLogic deployment descriptors in Glassfish (partial)Support for other weblogic deployment descriptors (weblogic.xml, weblogic-ejb.xml, weblogic-ra.xml, weblogic-webservices.xml). Corresponding container teams will work on those. Application versioning, support deployment of application with multiple versionsWe don't support application runtime versioning where more than one version of the application could be enabled at the same time in the runtime. 4.5. Interfaces:4.5.1 Public Interfaces
4.5.2 Private InterfacesN/A. 4.5.3 Deprecated/Removed Interfaces:
4.6. Doc Impact:Update man pages for the new/modified CLI commands Application Deployment Guide/Developer Guide for new features 4.7. Admin/Config Impact:CLINew clustering application commands added. The target option of the existing application commands extends to clustering targets. The name option of the application commands extends to include version identifier/expression. GUIWebLogic deployment descriptors will be exposed through GUI. The renamed Glassfish deployment descriptors will be exposed through GUI. Application version will be exposed through GUI. 4.8. HA Impact:No impact. 4.9. I18N/L10N Impact:No impact. 4.10. Packaging, Delivery & Upgrade:4.10.1. PackagingNo impact. 4.10.2. DeliveryNo impact. 4.10.3. Upgrade and Migration:No impact. 4.11. Security Impact:No impact. 4.12. Compatibility ImpactNo compatibility impact. The deprecated sun deployment descriptors will continue to be supported in this release for backward compatibility. No new requirement on upgrade or migration tool. 4.13. Dependencies:4.13.1 Internal DependenciesClustering infrastructure: 4.13.2 External DependenciesNone 4.14. Testing Impact:Clustering DeploymentThe v2 clustering deployment dev/sqe tests (automated) will be re-enabled and test the deployment to cluster. Support application related commands in clustering environmentThe v2 clustering deployment dev/sqe tests (automated) will be re-enabled and test the application commands. Support WebLogic deployment descriptors in Glassfish (partial)Add new tests (automated) to test this feature. Rename sun specific deployment descriptor dtds (sun-.dtd) to glassfish dtds (glassfish-.dtd)Add new tests (automated) to test this feature. Application versioning, support deployment of application with multiple versionsAdd new tests (automated) to test this feature. 5. Reference Documents:3.1 Clustering Infrastructure One Pager 3.1 Basic Clustering Wiki Page 3.1 Dynamic Reconfiguration Wiki Page v2.1 Application Deployment Guide An Overview of WebLogic Deployment Descriptors Renaming Sun Specific Deployment Descriptors Wiki Page Evaluation of WebLogic Deployment Descriptor Elements Wiki Page Application Versioning Design Spec 6. Schedule:6.1. Projected Availability:Clustering deployment, support dynamic deployment to cluster and rolling upgrade
Support application related commands in clustering environment
Support Weblogic deployment descriptors in Glassfish (partial)
Rename sun specific deployment descriptor dtds (sun-.dtd) to glassfish dtds (glassfish-.dtd)
Application versioning, support deployment of application with multiple versions
|