idspopd - Fotolia
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.
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.
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.
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.
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
Related Q&A from Twain Taylor
See how event-driven architecture patterns can set up an enterprise application for adaptability in a way that monolithic architectures can't. Continue Reading
Explore the pros and cons that differentiate SDKs and APIs from each other and come to understand what types of applications call for SDKs, APIs or ... Continue Reading
The more distributed and complex a modern application is, the more likely an API mapping tool should join the developers' arsenal for efficient ... Continue Reading