Docker — Another QA Tool of the Trade

We recently discussed the advantages of using the KVM open source server virtualization tool to facilitate the creation of QA environments during a software development project. Virtualization also brings a myriad of conveniences to other areas of modern IT. Docker, an even newer virtualization technology, leverages a container framework to provide other significant advantages compared to KVM and older virtualization tools.

In addition to an improved virtualization model, what does Docker bring to the table for the QA professional? Is it something your team needs to consider implementing on a trial basis? Let’s take a closer look at the details.

Docker encapsulates Applications within Software Containers

In its simplest definition, Docker allows you run applications within their own software-based container. It is a relatively new open source project that saw an initial release in March 2013. Over the past three years the tool has rapidly grown in popularity among IT professionals of all stripes.

A major difference of Docker’s container model compared to a typical VM is applications are able to share binaries and libraries as well as the underlying server operating system. This lets you encapsulate an application’s entire infrastructure in one package, making deployments of all types — including QA — an easier process. This is one of the reasons for Docker’s wide popularity in the Agile era of enterprise development; IT departments are able to accomplish more with less.

In fact, the financial industry was an early adopter of the nascent container technology, with three large banks using version 1.0 of Docker, according to company vice-president, James Turnbull, in a discussion with ZDNet. The conservative financial IT world still has COBOL apps in production, and to see it embrace Docker so quickly truly speaks to the efficacy of the technology.

A More Efficient Form of Virtualization

Docker’s container technology uses less server horsepower than standard VM virtualization. This allows companies to run four to six times as many applications on one server instance inside a container compared to using virtual machines. All container apps need to use the same operating system, though, unlike VMs which can each run its own guest OS.

The potential for significant cost savings in server hardware is immense.

Docker’s Advantages for the QA Process

The container model leveraged by Docker makes an application highly portable.  Deploying software on different servers now becomes easier, which is a boon for QA professionals needing to run an app through performance and acceptance testing. This standardization of containers also enhances interaction between the different roles of a software development team, as the Docker model is supported by many other collaboration tools like Chef or Vagrant.

QA engineers are also able to run Docker on their own local machine, which provides another mechanism for accomplishing more without having to depend on network engineers to manage their own test environments. Ultimately, Docker is a tool that fits perfectly with the new methodologies ushered in by the DevOps era. Expect its popularity in the technology world to continue to grow.

Watch for future posts on the Betica blog as we take a closer look at the ever-changing world of the QA professional.