QA,是DevOps不可分割的重要组成之一

2017-10-13   出处: 软件质量报道  作/译者:Twain Taylor

QA(Quality Assurance)是DevOps的重要部分,然而它并没有得到应有的重视,让我们好好阅读这篇文章,了解QA在DevOps的应有的地位。


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.

不幸的是,DevOps这个术语让其关键构成——QA不在其中,现在开始流行DevSecOps,咱们也希望流行DevQAOps,后面这两个术语都不易发音,只能将就这个术语DevOps,虽然它可能误导大家


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 (QA既要左移、又要右移)

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.

DevOps,简单可以看作是开发Dev右移和运维Ops团队左移Dev对自己构件的软件可靠性/性能负责;Ops要影响整个开发过程中的产品特性的定义、设计和实现。过去我们强调测试/QA左移,但我们忘记了,测试也应该右移实际上许多公司已经这样做了,模拟测试、镜像测试、部署验证测试、在线测试、A/B测试、灰度发布... 这些都是测试右移


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带给QA最大的改变是:质量是每个人的问题,而不仅仅是QA的问题——这是进步。我经常强调:质量是构建的,相对QA,开发对质量的贡献和责任更大


DevOps Quickens (加快了) QA

hile 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.

(过去Dev、Ops是没打通的,那样的话,QA也许发挥更大作用:全过程的质量管理)


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.

(今天,借助Docker,Dev和QA可以容易地共享配置信息、应用程序状态)


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.

(借助Docker的镜像,更容易保持测试、部署的一致性,这使我想起之前,我们在release有一条严格的规则:确保部署的版本是最后经过测试的版本,通过md5 验证。这种一致性有利于故障排除和系统的可靠性


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 (编排,NFV 也特别关注服务的编排 ) 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(模拟环境,类似alpha/beta 环境), 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.

Kubernetes,主要是帮我们管理好不同的环境——研发测试环境、模拟环境和生产环境等


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.

(持续交付依赖于构建、测试、部署等全过程的自动化,就像Jenkins 完成全过程的自动调度,Kubernetes是基于容器技术实现全过程的自动化


Running staging and production environments in the same cluster, however, is not ideal, as itcreates a whole new set of challenges to ensure the staging environment doesn’t starveproduction 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 teamsto 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.

(不仅左移、右移,而且要借助好的技术与工具,这就是:优秀的质量文化 + 优秀的工具 产生 巨大的能量


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
354° /3532 人阅读/1 条评论 发表评论

登录 后发表评论