Automation is key to the modern DevOps approach and application lifestyle management. Though it was a Herculean...
task in the days of VMs, containers are now making automation accessible for every DevOps team. With the advent of 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 first step in automating your software pipeline.
Thankfully, vendor tools are coming together to make ALM process automation possible. This first 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 of 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 of 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 of tests at scale by managing the Selenium Grid with Kubernetes. With the advanced auto-scaling features of Kubernetes, you won’t have to overprovision nodes for your Selenium Grid as you can quickly start up new nodes as needed.
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 of 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 of your app. Users won't even notice the release.
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 of VMs. With containers, however, you can easily automate the creation and cleanup of 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.
The bottom line: Automation rules
ALM process automation is becoming essential to the success of applications, and containers are pushing automation to the limit. Whether it's creating builds, managing test infrastructure or ensuring smooth releases, automation is key.
Learn how automated development tools mitigate the risk of 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 Software containers
Related Q&A from Twain Taylor
Resilience testing isn't just for infrastructure. Architects can adopt this disaster recovery testing strategy to build more reliable microservice ... Continue Reading
Containerization tools have taken on a critical role in managing communication between microservices, and two Kubernetes-based tools in particular ... Continue Reading
There was plenty of movement around Kubernetes in 2017, and there seems to be more to come in the year ahead. Twain Taylor makes predictions about ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.