最近,InfoQ與Quali公司首席技術(shù)官Joan Wrabetz就“云沙盤”在現(xiàn)代軟件開發(fā)生命周期(modern software development lifecycle,SDLC)中可以起到的作用進(jìn)行了深入探討。Quali公司的云沙盤技術(shù)允許用戶創(chuàng)建、管理和發(fā)布基礎(chǔ)設(shè)施和應(yīng)用程序配置的復(fù)制品,提供給技術(shù)和業(yè)務(wù)團(tuán)隊(duì),供其按需使用。云沙盤的主要使用案例包括開發(fā)和質(zhì)量保證測(cè)試、概念驗(yàn)證、培訓(xùn)與實(shí)驗(yàn)室和銷售演示等。
Quali公司的CloudShell工具能使基礎(chǔ)設(shè)施和應(yīng)用程序在云沙盤建模,以便為其復(fù)制復(fù)雜的生產(chǎn)環(huán)境。用戶可以在一個(gè)沙盤里混用實(shí)體和虛擬的基礎(chǔ)設(shè)施和網(wǎng)絡(luò)連接、應(yīng)用程序、數(shù)據(jù)和測(cè)試工具等。業(yè)務(wù)流程的工作流可以通過(guò)使用原生Python庫(kù)或可視化的拖放編輯工具創(chuàng)建。沙盤可以通過(guò)CloudShell工具保存、恢復(fù)、配置和監(jiān)控,并且可以創(chuàng)建藍(lán)圖,以生成自助服務(wù)目錄,供開發(fā)人員和QA工程師使用。CloudShell還集成了像Jenkins之類的持續(xù)交付工具。最近發(fā)布了開源的‘Sandbox-Jenkins-Plugin’插件。
根據(jù)Wrabetz的說(shuō)法,沙盤技術(shù)可以通過(guò)自動(dòng)化創(chuàng)建與生產(chǎn)環(huán)境的測(cè)試環(huán)境來(lái)幫助推動(dòng)“DevOps轉(zhuǎn)型”。鼓勵(lì)公司中以前孤立的團(tuán)隊(duì)在沙盤管理上開展合作,以推進(jìn)共同的問(wèn)責(zé)制,通過(guò)配置、工具或?qū)徲?jì)確保符合每支團(tuán)隊(duì)的核心職責(zé)范圍。
如果沒(méi)有這種能力來(lái)定義和共享環(huán)境,很容易產(chǎn)生“泡沫”或封閉的業(yè)務(wù)領(lǐng)域。在這些領(lǐng)域里根據(jù)生產(chǎn)環(huán)境的部署和數(shù)據(jù)得出的基礎(chǔ)設(shè)施配置并能不代表生產(chǎn)的實(shí)際情況。
InfoQ問(wèn)Wrabetz:隨著如Docker或rkt之類Linux容器的廣泛使用,以及打包和部署的應(yīng)用軟件等,云沙盤與這個(gè)技術(shù)有什么不同?Wrabetz回應(yīng)說(shuō),CloudShell允許在VMware vCenter等容器技術(shù)范圍之外部署基礎(chǔ)設(shè)施;象Catalyst、Fabric Interconnect、Nx-OS Devices等一樣的Cisco網(wǎng)絡(luò)產(chǎn)品,象EC2、VPC和網(wǎng)絡(luò)等亞馬遜服務(wù)等。Docker也支持CloudShell,并且Wrabetz提到容器和沙盤技術(shù)之間有一些概念性的相似之處:
Quali公司的CloudShell對(duì)環(huán)境的作用如同Docker對(duì)應(yīng)用程序的作用,因?yàn)樗鼘?shí)現(xiàn)了便攜性,并且除了共享應(yīng)用配置,還共享基礎(chǔ)設(shè)施配置。
Wrabetz接著說(shuō),在整個(gè)軟件開發(fā)生命周期(SDLC)內(nèi),如沒(méi)有可用的共同的基礎(chǔ)設(shè)施,很難實(shí)現(xiàn)從研發(fā)到生產(chǎn)環(huán)境的應(yīng)用程序部署流程自動(dòng)化。容器技術(shù)實(shí)現(xiàn)了“原生云”(cloud native)應(yīng)用,但許多企業(yè)有遺留系統(tǒng)或復(fù)雜的生產(chǎn)環(huán)境的配置,因此不能完全在一個(gè)Linux容器內(nèi)部進(jìn)行模擬。
把真實(shí)和虛擬基礎(chǔ)設(shè)施作為一個(gè)池子以按需的方式部署在一個(gè)沙盤里,這種能力可以用來(lái)加快持續(xù)測(cè)試。Wrabetz說(shuō)驅(qū)動(dòng)“左移”(shift left)質(zhì)量保證的驅(qū)動(dòng)力意思是有自動(dòng)化的方法來(lái)創(chuàng)建和共享復(fù)雜的環(huán)境,這可以推動(dòng)業(yè)務(wù)團(tuán)隊(duì)和技術(shù)團(tuán)隊(duì)的工作。無(wú)論是從在創(chuàng)建功能之前定義測(cè)試的角度,還是使測(cè)試環(huán)境和數(shù)據(jù)貼近生產(chǎn)的角度,這都是可行的。
Wrabetz說(shuō),除了功能質(zhì)量保障的作用之外,很多Quali公司的客戶都熱衷于利用云沙盤進(jìn)行非功能性測(cè)試,。
可以在整個(gè)公司內(nèi)定義、審計(jì)和共享沙盤藍(lán)圖。這對(duì)于遵守規(guī)則非常有用,并且也可以確保在真實(shí)和可重建的環(huán)境中實(shí)現(xiàn)性能和安全性測(cè)試。
關(guān)于Quali公司的云沙盤軟件和CloudShell工具集的更多信息可以在Quali公司網(wǎng)站上查詢。有問(wèn)題可以通過(guò)開發(fā)者論壇向社區(qū)提問(wèn)。
查看英文原文:Using Cloud Sandboxes to “Shift Left” Testing within Production-Like Environments