DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. Don't Leave QA Out of DevOps!

Don't Leave QA Out of DevOps!

QA is an important part of DevOps but often doesn't get the credit it deserves. This article strives to shine light on QA teams everywhere.

Twain Taylor user avatar by
Twain Taylor
·
May. 13, 17 · Opinion
Like (2)
Save
Tweet
Share
3.98K Views

Join the DZone community and get the full member experience.

Join For Free

I wish the term “DevQAOps” sounded as cool as “DevSecOps.” But alas, DevQAOps is hard to say, and DevOps is the term that IT professionals have come to know and love today.

Unfortunately, the term DevOps leaves one key component of software delivery out of the mix: Quality Assurance, or QA. QA is an essential part of DevOps, but it sometimes gets short shrift in the DevOps conversation.

To help give QA its due, in this post, I’d like to point out all of the ways in which QA teams play a vital role in DevOps and continuous delivery workflows. I may not be able to rewrite the DevOps lexicon, but I hope at least to get people to think more about how important QA is in our DevOps-centric world.

QA Shifts Both Left and Right

With DevOps, Dev teams look to shift right, assuming responsibility for the reliability of the applications they build, and not leaving it fully to Ops. Similarly, Ops shifts left in an attempt to influence the features and ideas that are spawned in planning and development cycles. However, between these two, QA teams shift both left and right, and are the key enablers for Dev and Ops teams to collaborate effectively. QA teams have a role in defining which features are prioritized by Dev, and ensuring code is of high quality when deployed.

This high view of QA takes not just QA seeing itself differently, but Dev and Ops teams seeing QA differently, too. Often, QA takes the blame for bad development practices, and any faults that show up post-release. Developers take responsibility for the code they ship. Mark Hrynczak of Atlassian, talking about the future of QA, insists that a great developer is someone who “can capably write and ship high-quality, bug-free code,” and doesn’t insist that QA should catch all their mistakes. The biggest change that DevOps brings to QA is that quality is everyone’s problem, not just QA’s.

DevOps Quickens QA

DevOps involves continuous integration and continuous delivery. They both break the entire software delivery lifecycle down into small chunks that are easier to manage, are limited in scope, and are released more frequently. The pace of development has been quickened. Ops is having to cope with multiple releases every day. All this busyness on either side means that QA also needs to work at a much faster pace. Common issues between QA and other teams—like “works on my machine,” keeping up with version changes, and unclear product specs are all compounded with DevOps.

Enabling QA teams to perform in this new culture requires a completely new approach to testing, which also means a different toolset. It takes test infrastructure that’s agile, and reliable. That’s the problem that Docker and the container ecosystem is solving today. While Docker shot to fame among Developer circles, QA took some time to catch on. But now, Docker’s value in powering testing infrastructure is clear. QA is no longer on the backfoot when it comes to container adoption.

Containers - Consistency Across the Pipeline

DevOps is about maintaining consistency across every stage of the development pipeline. Previously, Dev would throw code over the wall for Ops to deploy, and Ops would often push back, saying the code is not deployment-ready. The solution to this deadlock is to have QA enforce quality right from the start.

For Dev and QA to speak the same language, they need to be able to easily share all the configuration needed to run an application. The state of an application when an error occurs is important when troubleshooting. This was done manually in bug tracking systems in the past. Now, with Docker, Dev and QA can easily share configuration and the state of an application in a Docker image. The image functions like a snapshot of the application.

This consistency doesn’t just help with troubleshooting. It also helps with improving the reliability of an application, as the same container image that’s built and tested is deployed. This brings confidence at every step of the software delivery lifecycle, and improves user experience.

However, containerizing applications and infrastructure is not simple. While Docker provides the standard container runtime, there are bigger concerns like replication, failover, and automated deployments. This is where an orchestration tool like Kubernetes has a key role to play.

Container Orchestration for Reliable Deployments

Kubernetes makes it easy to create and manage multiple environments for test, staging, and production. You could run, for example, test and staging environments in the same cluster and isolate them using Kubernetes’ namespaces feature. The benefits are more simplified management, reduced costs, and better resource utilization. The end result, though, is faster and better QA processes.

To keep up with the fast pace of development, you need to automate builds, testing, and deployment. Leaving automated testing out will only lead to unstable, low quality releases. Luminis Technologies adopted Kubernetes for container orchestration and saw big improvements in reliability. This is because of how easy Kubernetes makes it to test and ship containers.

Running staging and production environments in the same cluster, however, is not ideal, as it creates a whole new set of challenges to ensure the staging environment doesn’t starve production for resources. Still, the benefits of Kubernetes for test infrastructure are hard to overlook.

Discussions around DevOps have left QA out of the picture, even though QA is essential to faster and higher-quality releases within a continuous delivery pipeline.

QA is in a unique spot where it shifts both left and right to align with Dev and Ops teams to build in quality, reliability, and sustainable speed from the start. To make this happen, QA needs a new kind of infrastructure that’s powered by containers and managed by container orchestration tools. Docker and Kubernetes together give QA teams the wings they need to take flight in this new world of DevOps.

Question answering DevOps Docker (software) Kubernetes Continuous Integration/Deployment agile dev application

Published at DZone with permission of Twain Taylor, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Upgrade Guide To Spring Data Elasticsearch 5.0
  • Mr. Over, the Engineer [Comic]
  • Fraud Detection With Apache Kafka, KSQL, and Apache Flink
  • Memory Debugging: A Deep Level of Insight

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: