WebSphere Deployment Automation
with UrbanCode Deploy
UrbanCode Deploy integrates with scores of 3rd party tools via its free plugins. One such plugin is the WebSphere plugin which provides the integration between UrbanCode Deploy and WebSphere Application Server, WAS. The plugin provides auto-discovery and auto-configuration for WAS installations. It identifies the WebSphere installation and maps its topology, saving you from having to enter WebSphere configuration into UrbanCode Deploy manually; a time-consuming and error-prone task. The WebSphere plugin also gives you the steps to deploy and manage applications on WAS; like, check status, start or stop application, install or update application and so on.
For the purpose of this blueprint, we will deploy an example application to a WAS cluster.
The application that we will deploy is the JPetStore application, an open source application often used in demos. JPetStore has two components: a war file, which will be installed on the cluster, and a database component that is deployed to a database server (not part of this blueprint.) Typically, the war file will be created by our build system and then be automatically handed to UrbanCode Deploy for deployment. See Going from Continuous Integration to Continuous Delivery for more on this topic.
We will deploy the application to a WAS cluster called Cluster1, that lives in the WebSphere cell called cell01, shown in Figure 2. Cell01 spans two machines, Host A and Host B, and has two nodes; Node01 on Host A, and Node02 on host B. Node01 has one server, and Node02 has two servers. All three servers are part of Cluster1, our deployment target.
The WebSphere network deployment manager, ND, is installed on Host A. There is only one ND per cell and it handles all deployments to WebSphere resources in the cell. UrbanCode Deploy interacts with the ND, via a UrbanCode Deploy agent. The UrbanCode Deploy agent is installed on the same host as the ND. This gives the agent access to the ND, the WebSphere API and WSAdmin; tools that it needs to perform integration tasks on resources in the cell. This architecture makes it possible for UrbanCode Deploy to deploy to any server(s) and cluster(s) in the cell. In this example, UrbanCode Deploy will deploy the application to Cluster1 and the deployment manager, ND, will install it on the servers in the cluster. The cluster topology described above is shown hierarchically in the WebSphere Integrated Solutions Console in Screen 1. This screen shows the nodes and servers in Cluster1 with their complete WebSphere names. To define deployment targets, UrbanCode Deploy will need a model of this WAS configuration complete with its properties; the paths, ports, id's, passwords, and such.
What we are going to do
We have set up a fresh installation of UrbanCode Deploy to deploy the JPetStore application to WAS Cluster1. We will show how auto-discovery identifies the WAS cell installation, and how auto-configuration creates the model of the WebSphere cell resource deployment targets. We will create a component process; a set of steps that will define and sequence the actions necessary to install the JPetStore component. Then we will create a UrbanCode Deploy application deployment process that we can use to deploy the application to Cluster1, or any other WAS deployment target in the cell. Finally, we will select our target deployment environment, Cluster1, from UrbanCode Deploy's model of the WAS cell, deploy the application, and show how UrbanCode Deploy reports its progress.
It's worth mentioning that once we have accomplished this, we can reuse the component process and the application process to deploy the application to any number of WAS environments as often as we want.Read entire blueprint here
Benefits of using UrbanCode Deploy and the WebSphere plugin to deploy to WebSphere
UrbanCode Deploy's integration with WAS provides both automatic environment configuration and process automation. Auto-discovery and auto-configuration save a huge amount of manual data entry and prevent manually introduced errors. These features allow us to add new WAS environments quickly, and to keep up with changes in the WAS environment with "one click" auto-configuration.
The WebSphere plugin steps allow us to create reliable, repeatable, automated component processes; processes that we can combine to create orchestrated deployments of any complexity. It eliminates home grown deployment scripts and their maintenance. It replaces error prone manual processes with reliable automated ones that can be launched in any environment by anyone with appropriate credentials.
UrbanCode Deploy's deployment automation simultaneously reduces many types of errors while shortening deployment times. Having a single application deployment process for all environments in the deployment pipeline improves quality and confidence in the process; testing both the deployment process and the deployed artifacts, at every deployment.