最近,InfoQ 与 Quali 公司首席技术官 Joan Wrabetz 就“云沙盘”在现代软件开发生命周期(modern software development lifecycle,SDLC)中可以起到的作用进行了深入探讨。Quali 公司的云沙盘技术允许用户创建、管理和发布基础设施和应用程序配置的复制品,提供给技术和业务团队,供其按需使用。云沙盘的主要使用案例包括开发和质量保证测试、概念验证、培训与实验室和销售演示等。
Quali 公司的 CloudShell 工具能使基础设施和应用程序在云沙盘建模,以便为其复制复杂的生产环境。用户可以在一个沙盘里混用实体和虚拟的基础设施和网络连接、应用程序、数据和测试工具等。业务流程的工作流可以通过使用原生 Python 库或可视化的拖放编辑工具创建。沙盘可以通过 CloudShell 工具保存、恢复、配置和监控,并且可以创建蓝图,以生成自助服务目录,供开发人员和 QA 工程师使用。CloudShell 还集成了像 Jenkins 之类的持续交付工具。最近发布了开源的‘ Sandbox-Jenkins-Plugin ’插件。
根据 Wrabetz 的说法,沙盘技术可以通过自动化创建与生产环境的测试环境来帮助推动“DevOps 转型”。鼓励公司中以前孤立的团队在沙盘管理上开展合作,以推进共同的问责制,通过配置、工具或审计确保符合每支团队的核心职责范围。
如果没有这种能力来定义和共享环境,很容易产生“泡沫”或封闭的业务领域。在这些领域里根据生产环境的部署和数据得出的基础设施配置并能不代表生产的实际情况。
InfoQ 问 Wrabetz:随着如 Docker 或 rkt 之类 Linux 容器的广泛使用,以及打包和部署的应用软件等,云沙盘与这个技术有什么不同?Wrabetz 回应说,CloudShell 允许在 VMware vCenter 等容器技术范围之外部署基础设施;象 Catalyst、Fabric Interconnect、Nx-OS Devices 等一样的 Cisco 网络产品,象 EC2、VPC 和网络等亚马逊服务等。Docker 也支持 CloudShell,并且 Wrabetz 提到容器和沙盘技术之间有一些概念性的相似之处:
Quali 公司的 CloudShell 对环境的作用如同 Docker 对应用程序的作用,因为它实现了便携性,并且除了共享应用配置,还共享基础设施配置。
Wrabetz 接着说,在整个软件开发生命周期(SDLC)内,如没有可用的共同的基础设施,很难实现从研发到生产环境的应用程序部署流程自动化。容器技术实现了“原生云”(cloud native)应用,但许多企业有遗留系统或复杂的生产环境的配置,因此不能完全在一个 Linux 容器内部进行模拟。
把真实和虚拟基础设施作为一个池子以按需的方式部署在一个沙盘里,这种能力可以用来加快持续测试。Wrabetz 说驱动“左移”(shift left)质量保证的驱动力意思是有自动化的方法来创建和共享复杂的环境,这可以推动业务团队和技术团队的工作。无论是从在创建功能之前定义测试的角度,还是使测试环境和数据贴近生产的角度,这都是可行的。
Wrabetz 说,除了功能质量保障的作用之外,很多 Quali 公司的客户都热衷于利用云沙盘进行非功能性测试,。
可以在整个公司内定义、审计和共享沙盘蓝图。这对于遵守规则非常有用,并且也可以确保在真实和可重建的环境中实现性能和安全性测试。
关于 Quali 公司的云沙盘软件和 CloudShell 工具集的更多信息可以在 Quali 公司网站上查询。有问题可以通过开发者论坛向社区提问。
查看英文原文: Using Cloud Sandboxes to “Shift Left” Testing within Production-Like Environments
评论