Eliminate Hidden IT Costs in Under 100 Days
Replacing error-prone deployment scripting with intelligent automation can positively impact your IT operations in no more than 100 days.
by Larry Warnock
Search for the phrase "Need help with scripting" in your favorite search engine and you get thousands of results. Consider the many variations of that phrase and you can imagine the hundreds of thousands of people taking to the Internet in an attempt to solve their particular scripting challenge.
I've worked with IT departments for more than 25 years and I have yet to come across a company that had an identical environment for development, testing, and production. Each stage differed by topology, technology, and naming conventions, not to mention personnel with varying approaches. Managing the configuration drift across those environments quickly becomes an untenable problem.
As a result, you have deployment scripts that only work for specific environments (impeding critical application deployments), upgrades, and release migrations across the enterprise. Sure your team my be ready to migrate to IBM WebSphere 7.0 or Oracle WebLogic 10g, but can your previously developed scripts migrate with you?
It's amazing how many manual processes and hacked-together scripts hold today's IT organizations together. Scripts are everywhere in a data center -- often representing large, complex routines or procedures that require an army of people to write and maintain. Although scripting can serve a useful purpose to automate repetitive tasks, in many cases the creation and ongoing updating of scripts simply isn't necessary.
Perhaps the answer these developers are searching for isn't how to write a better script, but rather to find an alternative to an archaic process that we've grown too comfortable with.
Companies originally turned to scripts for two reasons: to automate costly, error-prone tasks and to boost efficiency and increase employee and system productivity. Although both of these motivators are valid, scripts can often simply fail to deliver on both of these goals.
First, scripts are terrible at eliminating errors. In fact, according to Forrester, 40 percent of all application downtime is configuration-related. Scripts simply replace typos with system errors -- a rather poor trade-off, I would argue.
As far as boosting productivity, deployment scripts are a prime cause of the "unseen" hidden costs incurred by IT departments each year. Crafting scripts is a time-consuming process, and when an error does occur, companies are often forced to call on their best (and most expensive) developers to fix the problem. Because most application servers do not keep track of configuration changes internally, determining what is different between two environments is nearly impossible. If you can't determine the delta, then you can't fix it. I have talked to some companies that have more than 20 people in their IT or development teams that do nothing but create scripts for repetitive processes -- mainly around software builds, releases, and deployments.
Automation has long been a solution for almost every key activity in the data center, from network management to identity tracking to capacity management. Interestingly, one of the strategies for funding and starting companies is to identify where scripts are heavily used and then build an application or framework that automates that function and eliminates the need for those scripts. In fact, almost all of the data center automation tools on the market today replace processes that used to be handled manually with custom-made scripts.
This begs the question: why are we still scripting application deployment? In today's trying economy, there are few investments that can help you reduce IT costs in less than 100 days. Automating deployment of Java applications is one. In fact, automating this process has been known to reduce the number of configuration-related application server defects by as much as 95 percent and accelerate the delivery of production-ready systems by as many as three weeks.
If automation has worked for so many other tasks, why not try it here? A major petroleum company recently asked itself this very question. After realizing the amount of resources that were tied up with scripting, the company decided to replace its homegrown scripts with a solution designed to automate the process. Within weeks, the company doubled the number of servers supported by each full time employee. The process was simple. Deployment of the automated solution took three days, followed by eight hours of training. Just like that, they were able to increase the responsibilities of each FTE and redeploy the rest of the team to more strategic tasks.
A major financial services company had a similar experience, replacing a combination of manual and scripted steps with an automated solution. Within 11 weeks, they reduced problem resolution by 95 percent, eliminated time spent documenting and scripting deployments, and fully automated their compliance and auditing requirements. Their return on their investment was realized in less than 100 days.
Automating the deployment of business applications is not difficult and can reduce the time spent on installation and scripting by as much as 90 percent. However, you must have a repeatable and consistent mechanism that offers control of every application deployment at all time.
Following are six critical elements to consider before automating application deployment:
1. Understand your baseline environment at all times. By having an accurate understanding of your baseline, you are able to examine and represent a given environment -- either as a baseline upon which to make changes or as a way to capture the configuration state to be applied to other environments. Change happens every time there is a new deployment, an upgrade, a release migration, or a newly built and configured environment. It is critical to know if the change was intentional and for the better or a manual or scripting error that negatively impacted the original environment.
2. Understand changes that will be made. Make sure you are able to preview what a change in a given environment will look like in advance of adding a new payload. In addition to previewing functionality, you should also be able to fully understand how changes impact an environment after they are made. The easiest way to do this is to use snapshot and compare tools. Automation solutions should allow you to take a snapshot of a current environment and then compare it to other snapshots across environments or across time.
3. Ensure control over the changes that are made. Have control at all times over changes that are made and be able to select which items can be changed and which should not ever be changed. The solution should allow you to contextually apply an application configuration through environmentally sensitive adds/deletes/updates. In addition, you should be able to define "sacred items" in an environment that is not subject to change.
4. Have access to robust error management. Make sure you are able to roll back changes made in the event of an error. The easiest way to do this is to have a solution that provides logs of each move and can determine the root cause of the error. Additionally, your solution should never leave servers in a partially configured state. Should an error occur, it should revert back to the last known good state or to a specific point in time.
5. Ensure you can verify changes and provide an audit trail. Automation should reduce the amount and complexity of installation documentation by as much as 50 percent. Users should be able to follow up a successful deployment with audit trails and verification of payload delivery. Ensure you have access to granular reports showing what was done and what was changed. Reports can vary, but should be easily externalized for sharing across departments.
6. Make sure your solution is flexible and extensible. Select a solution that does not require heavy infrastructure, whether deploying internal or external applications. It should integrate directly with your existing data center automation and software development tools.
Challenging times call for innovative solutions. By replacing error-prone deployment scripting with intelligent automation you can positively impact your IT operations within in no more than 100 days. You have nothing to lose and hundreds of thousands of dollars in "unseen savings" to gain.
Larry Warnock is the president and CEO of Phurnace Software, Inc. You can reach the author at firstname.lastname@example.org