Application Edition Management
Overview
When you perform a rollout to an edition, you replace an active edition with a new edition. To provide interruption-free application upgrades, performing a rollout to an edition includes the following items:
- Fencing a server from receiving new requests.
- Quiescing requests for the application in a particular server.
- Stopping the currently active edition.
- Starting the new edition.
- Resuming the flow of requests to the edition.
Using RapidDeploy, our application release automation tool, you can deploy multiple editions of an enterprise application and perform a rollout to any of them. Please, check the IBM Documentation for further information on this matter.
Deploying different editions using the Jython framework
There is only one variable that needs to be set to manage the application editions, not setting this variable means you are deploying the "Base edition":
appEdition = "ApplicationEditionName"
NOTE: setting this variable means you want to deploy a certain edition, setting it to blank will throw an exception. If you don't want to use the application edition management just don't set it.
This variable gives you 2 different options:
- Setting it to the actual value of the edition name.
- Setting it to "
default
" which will use the name of the deployment package as the edition name.- Using this option gives you the possibility not to have to change the .py configuration file every time you want to deploy a new edition.
Additionally, you can use the advantages of the .dict dictionary file generated with every environment. You can set a new property in the .dict file with an empty value, so when you want to execute a new job, the Late configuration option will warn you to set this value, giving you the possibility to set the edition name right before every execution. Let's see an example:
.dict file
... # Leaving the next property value empty @@appEditionName@@= ...
.py file
... appEdition = "@@appEditionName@@" ...
Setting the maximum number of editions to be kept in the target server
It is as simple as setting the next variable to the number of editions we want to keep:
maxNumberOfEditions = 10
When this number of editions is exceeded in the target server, the oldest edition is uninstalled.
By default it is set to 0 with means no limit is applied.
Performing a rollout of a certain edition
To perform a rollout you need to configure an orchestration using the specific RapidDeploy task: WebSphereEditionRolloutTask.
Basically, what you need to specify as a resource for this task is the application edition to which you want to perform the rollout. To achieve this you have 4 different options:
- Leave this value as default, in which case the edition name will be the deployment package name (the version selected at deployment time).
- Set it to a certain string value, and this will be the edition name selected.
- Setting it to BASE means you select the "Base edition".
- Set it to a dictionary item key (e.g. @@appRolloutEdition@@), and set this key with a blank value as part of the dictionary file, this way the edition name will be asked at deployment time as part of the Late configuration properties; the same way as in the previous section.
- Set it to the built in variable ${ARCHIVE_NAME}, that acts the same way as the option by default.
For more information about this task please refer to the "Task Help" section of RapidDeploy.