idspopd - Fotolia

Manage Learn to apply best practices and optimize your operations.

How important is ALM process automation in a modern DevOps approach?

Automation is key to the modern DevOps approach and application lifecycle management. Twain Taylor explains where and how automation should fit into your development phases.

Automation is key to the modern DevOps approach and application lifestyle management. Though it was a Herculean task in the days VMs, containers are now making automation accessible for every DevOps team. With the advent Docker, ALM process automation becomes even more possible and necessary.

Let's look at how containers change automation at every step of the software delivery lifecycle.

Automated container image builds

In a DevOps environment, code is often checked in numerous times per day. Each time code is added to the repository, it needs to be built into a container image and pushed to the repository. This is a crucial step in automating your software pipeline.

Thankfully, vendor tools are coming together to make ALM process automation possible. This step can be automated by a continuous integration tool, like Jenkins. Other platforms, like Puppet and Google Cloud, also integrate with Jenkins to deliver automated container image builds.

Automated test infrastructure

Testing is another crucial, albeit tricky, part the DevOps strategy where automation needs to be put into play.

Selenium is the leading test automation framework available today. Setting up a Selenium Grid, however, is a complex task: It requires manual configuration grid nodes and isn't scalable. Luckily, with Docker, you can pull container images for a Selenium hub and nodes for each browser. Further, you can control the execution tests at scale by managing the Selenium Grid with Kubernetes. With the advanced auto-scaling features Kubernetes, you won’t have to overprovision nodes for your Selenium Grid as you can quickly start up new nodes as needed.

Automated deployments

Deployments are plagued with downtime for various reasons. Containers enable a technique called blue/green deployments, which can help cultivate highly reliable releases. It requires you to have two identical production environments -- one hosting the current version your app and the other the new release. Once your release is ready, you can simply switch the proxy to divert all traffic to the new version your app. Users won't even notice the release.

ALM process automation is becoming essential to the success applications, and containers are pushing automation to the limit.

This is a resource-heavy task and requires both creating and destroying VMs quickly. This is expensive and time-consuming because it uses double the number VMs. With containers, however, you can easily automate the creation and cleanup containers at scale. This makes it possible to have blue/green deployments without the headache. Now, any company can achieve continuous delivery and need not stop with just continuous integration.

Containers have made automation in ALM simpler as well as more necessary.
While containers have made automation more important, they have also made it easier to implement.

The bottom line: Automation rules

ALM process automation is becoming essential to the success applications, and containers are pushing automation to the limit. Whether it's creating builds, managing test infrastructure or ensuring smooth releases, automation is key.

Next Steps

Learn how automated development tools mitigate the risk human error

How to match container automation tools to your Amazon Web Services workload requirements

How to automate your Kubernetes cluster for container management

Dig Deeper on Container orchestration

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

Which stage of development, if automated, would make a difference to your application's lifecycle?