Release Automation Can Reduce the Stress of Testing, Too!
Release Automation Can Reduce the Stress of Testing, Too!
The use of proper DevOps techniques eases the release and testing for each application. This process reduces errors and speeds up development.
Join the DZone community and get the full member experience.Join For Free
Do you need to strengthen the security of the mobile apps you build? Discover more than 50 secure mobile development coding practices to make your apps more secure.
Have you ever gone down the path of testing the latest version of an application only to find out that you had the wrong version? Maybe you accidentally grabbed the wrong build or you didn’t have the correct configuration file for the environment you were testing against. Maybe your database wasn’t updated correctly or the script you were using was still pointing to a prior version of the software.
Whatever the case, we can all agree that keeping track of all the various artifacts, database schema changes, configuration parameters, and other components needed to accurately test and deploy an application is both time-consuming and prone to errors.
Today, many companies are looking to DevOps, Continuous Delivery, and Agile development methodologies to shorten their application delivery cycles and reduce the number of errors and the costs associated with application deployment processes. Nearly all enterprise companies are software companies and their mere existence depends on delivering differentiating products and services via software to their customers. In order to stay ahead of the competition, we must all be able to react to customer demands and competitive pressures quickly, if not immediately. Gone are the days of yearly release cycles. Today, we see companies deploying new functionalities into production environments on a monthly, weekly, or even daily basis. At some companies, hundreds, if not thousands, of deployments are occurring across dev, test, and production environments on a daily basis. The old methodologies we once used simply can’t support this type of volume and cadence.
So, how have these companies transitioned to this new way of thinking? Automation; automating early and often. Everything about your release process is a candidate for automation. This includes environment provisioning and configuration automation, build automation, test automation, and release and deployment automation.
A customer of ours recently implemented CA Release Automation, and within eight weeks had automated 90% of its deployments. Deployments that once took over five hours and a team of people now take a matter of minutes.
“This not only saves us a huge amount of time, but it also mitigates the risk of human error being introduced by manual processes,” says Tim Dallmann, platform engineer at Jewelers Mutual.
Increased Flexibility and Visibility
Continuous Delivery helps break down barriers often seen between development and operations teams. It provides, even forces, a more collaborative approach, and automation is a key enabler of this.
“One of the best things about automation is that it gives us the flexibility to skill-up end users – deployments in our test environments are no longer solely the responsibility of the operations or IT teams,” explains Dallmann.
With an application release automation (ARA) solution, such as CA Release Automation, artifact, build, configuration and release processes are no longer tracked with spreadsheets or embedded in complicated scripts. Increased visibility into these processes ultimately enables all stakeholders to take a more active role in the release process, and access to real-time information can significantly reduce the amount of time and resources needed to resolve and recover from problems when they do occur.
Automation leads to:
Integrating With the Ecosystem
An enterprise ARA solution can help you create a single control point to streamline all your application delivery processes for better predictability and reduced risk. A critical component of this is the ability to integrate and orchestrate tools and technologies required along the Continuous Delivery pipeline, including source control, automated testing tools, provisioning and configuration management solutions, and change management and performance management solutions.
Integration with an application lifecycle management solution such as CA Agile Central can provide even further governance and traceability between development projects and what is ultimately being tested and promoted to production. “By integrating the two solutions, we will have a complete audit trail of deployments to help us understand how, where and by whom stories have changed,” explains Phil Nickolai, director of application services at Jewelers Mutual.
“What we really needed was a solution to streamline our whole way of working,” Nickolai comments. “We had numerous people working on projects, competing for resources and causing complexity. Now we’re back in control and getting smarter every day.”
The Time Is Now
Let’s get rid of the problem that exists between the keyboard and information kept in spreadsheets, scripts or emails. Not only will you stop wasting time testing the wrong version of an application but you can also ensure you have the right test data, the appropriate test cases and the correct configuration parameters for your environment. Stress-inducing release weekends and nights become a thing of the past. Developers can spend more time on developing innovative capabilities that generate revenue and keep customers coming back for more.
Want to learn more about Continuous Delivery and application release automation? Join us at #CAWORLD. Find out more here.
Published at DZone with permission of Tim Mueting , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.