一段时间以来,随着DevSecOps、DevTestOps的出现,表明DevOps软件开发方法已完全成熟并进化到了新的阶段,但究其根本,仍是通过频繁发布小型构建来加快产品的生产速度和上线速度。作为渐进交付的连续周期的一部分,DevOps开发团队采用了左移和右移的原则,以确保在这些动态的开发环境和生产环境中的软件质量。在此,将重点讨论右移原则在DevOps中的使用以及如何使软件产品更可靠的。
一、DevOps中的左移和右移
要理解左移和右移,可以将软件开发周期视为一个从左到右的连续体,或无限循环。在循环的左边,团队在前期生产中计划、开发和测试产品,核心目标是构建符合设计标准的产品。当团队发布软件投入生产进入循环的右侧时,他们会向用户提供这些可用的软件产品,核心目标是产品符合业务目标和可靠性的要求。
具体来说,左移是将测试、质量和性能评估转移到软件开发过程早期的实践。随着团队面临更快、更频繁、更高质量地交付软件的压力,这个概念变得越来越重要。通过在开发周期投入生产之前确认/验证和解决软件缺陷,左移可以明显的提高开发效率并降低成本。同样,右移是在真实生产环境中执行测试、质量和性能评估的实践。右移方法确保在生产中运行的应用程序在能够承受真实的用户负载的情况下,仍能保持同样高的质量水平。使用右移,DevOps团队测试生产环境上的产品,以确保软件可靠性,目标是确认/验证和修复在开发环境中难以发现的软件缺陷。
目前,左移和右移测试都已经成为敏捷软件开发的重要组成部分,使团队能够增量地、可靠地构建和发布软件,而且还能在生命周期的不同节点测试软件。
二、为什么右移很重要
使用右移,团队可以在开发环境无法模拟的真实环境中测试代码。这种实践使团队能够在客户之前发现运行时缺陷,同时,还可以对在现场配置或监控的代码应用右移测试。
有些企业在发布到生产环境之前,会有一个完全高仿生产环境的环境,像左移测试一样,右移测试的目标是在这样的环境上通过小规模、快速失败的方式发现问题,这比客户在实际生产中发现的问题更容易解决,影响也会最小。
一旦建立右移建立起来,就会成为持续反馈循环的一部分,这是DevOps的特点,并使开发和运营活动更加紧密地结合在一起。
针对目前公司实际情况,右移的重要性具体的还可以体现在如下两方面:
- 对微服务架构的重要性
服务、微服务架构已是当前软件产品的主流架构,生产中的测试对于从微服务构建的软件尤其重要。这是因为,基于微服务的应用程序的性能取决于单个服务的响应能力,这使得在模拟环境中进行测试非常困难,右移可以使团队能够观察真实生产环境的情况并度量它们的影响。
- 对安全性的重要性
右移的另一个重要性是提高了应用程序的安全性。例如,容器的迅速普及使网络安全变得复杂。容器虽然可以掩盖其中运行的进程,但攻击者仍可以利用容器的漏洞,因为即使容器的内容是“模糊的”,生产测试也可以暴露基于容器的软件行为。另外,右移测试还可以用来测试以前未曾出现过的zero-day漏洞的存在。
三、右移测试的种类
右移测试有多种方法,常见的有如下几种:
A/B测试:
这种方法常用于Web或App程序。它在同一时间里,向用户呈现两个版本的页面中的一个,并且通过度量结果以确定哪个版本会产生更好的响应。这种类型的测试几乎总是在生产环境中进行,因此可以收集真实的反馈,与一般工程测试有根本的区别。
混沌测试:
利用混沌工程,开发人员通过引入错误来故意“破坏”应用程序,测试其功能、性能边界,以确定它从破坏中恢复的程度。DevOps和IT团队设置了监控工具,这样他们就可以精确地看到应用程序如何响应不同类型的压力。该测试通常在受控的生产环境中执行,以最大限度地减少对任务关键型系统的影响。
金丝雀发布:
也称之为灰度发布。它来源于早期矿工们用这种金丝雀潜入煤矿探测有毒气体的行为。在IT领域中,当前用来描述在将更改应用到整个基础架构之前,对一小部分实例进行缓慢部署并进行测试、观察、修复,直至完全发布。
蓝绿部署:
一个组织运行两个几乎相同的生产环境,同时对外提供服务,一个运行着当前稳定版本,一个运行着待上线的版本。当用户(真实的或合成的)对运行着待上线的版本进行变更(发现缺陷、修复缺陷)时,对外提供的服务会在这两个环境之间进行切换。这种实践对于右移方法非常重要,因为它可以最大限度地减少停机时间,并在最新版本出现问题时提供快速回退的机制。
目前,公司正在进行一系列的运维平台的建设,这势必给右移(测试)打下很好的基础,同时,我们还应该着眼于人工智能驱动的全栈可观测性解决方案,使公司行业内长期处于技术应用与业务创新的前列。最后,需要指出的是,无论左移(测试)还是右移(测试),都是工作的左移和右移,而不是人员的左移和右移。文章来源:https://www.toymoban.com/news/detail-678690.html
文章来源地址https://www.toymoban.com/news/detail-678690.html
到了这里,关于DevOps中的左移和右移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!