automating the jee deployment process
DESCRIPTION
While the basics of deployment are simple, in reality, deployment is a complicated process. The goal of a deployment is “Making an application available to end users”. This means that for the end user to open the browser and hit “www.xebia.com”, the application must be fully functional behind the scenes to serve the request. Let’s follow the end user’s browser request and see what components it hits; First it hits a firewall, then an http server, another firewall, the application server and finally the application running in the application server which uses a database to retrieve some data. In total there are 5 components involved to get the application successfully available. We need to not only configure all 5 components but also place some data on some of those components and make sure they are (re-)started in the correct order to get the pretty picture to the end-user. Thus in a nutshell the application deployment consists of installing the application, configuring resources, configuring middleware components, starting/stopping components, maintaining the correct order and repeating the same steps with different configurations across DTAP environments. Most of the times we tend to do this process manually. The manual process as the name suggests is usually time consuming, not predictable and un-reliable. This causes frustrations for, and between, developers and deployers, not supporting the business needs and therefore too expensive. This session would explore ways to automate the deployment process in order to make it repeatable, defect free, less taxing and less expensive.TRANSCRIPT
Automating JEE Deployment Process
Vikas Hazrati
www.xebiaindia.com
Challenges Of Deployment Are Getting Tough Everyday
Enterprises and System Administrators are Juggling with Deployment Challenges
On Average Enterprise is Spending $852,187 Per Year for Deployments
Bringing Down This Cost is an Achievable Goal
Automating the Deployment Process is the Key
===== Act II, Scene 1
Earlier
Those werethe days
Enterprise JEE Deployment is a Complex Task
For Each Application There are Multiple Deployment Categories
Configuring the Deployment Categories is an Involved Process
Installing the Application
Configuring Resources
Maintaining the Order
Starting / Stopping Components
Repeating the same Steps across environments
Configuring Middleware Components
Support for Multiple Deployment Categories
Report on the status of each category
Amount of Infrastructure Increases as Business Grows
Data Centers are Around the World
Manual Deployment or Home Grown Scripts Often Fall Short
Suggest Deployment steps based on different Deployment categories
Suggest Deployment steps based on different Deployment categories
Standard deployment steps should be overridable
Suggest Deployment steps based on different Deployment categories
Easy to write / plugin deployment scripts
Workload Associated with Managing Applications is Growing
Reasons for Increase in Workload
Complexity isOften
ignored
Little or no Automation
Tooling is limited
===== Act II, Scene 2
Enterprise JEE Deployment is Expensive
Large Number of Specialized Staff Required for Deployment and Script Writing
AD Can Help by Reducing the Cost
Time Spent on Configuration Issues is High
Should have the capability to use separate configuration files for DTAP environments
Downtime Leads to Lost Money
===== Act II, Scene 3
Enterprise JEE Deployment is Unpredictable
Too Much Dependent on People
Configuration Drift
Should show the current state of the deploymentPreview of changes
Should maintain a history of deployment changes
Log all changes
Should show the current state of the deploymentShould show the current state of the deployment
Version the configuration changes in source control
Transaction Boundries and Rollback ???
Possible Solution
===== Act III
Enterprise Deployments are Marred With Challenges and High Costs
Deployment Automation is the Key to IT's Future
Start With One of the Products and Take One Bite at a Time
Automating Deployment – Makes You Feel Better
References & Credits