虛擬化興起直面服務(wù)測(cè)試障礙
服務(wù)虛擬化成為一類新興的SOA組件建模工具的基礎(chǔ)。利用一種新的仿真方式,在軟件服務(wù)實(shí)現(xiàn)之前很久,開發(fā)團(tuán)隊(duì)就可以與其協(xié)同工作了。
這涉及到在創(chuàng)建高質(zhì)量的復(fù)合應(yīng)用時(shí)遇到的某些最大的瓶頸,并幫助敏捷開發(fā)工作,努力跟上快節(jié)奏的Web應(yīng)用的步伐。
“在應(yīng)用開發(fā)生命周期中植入虛擬化的想法是我們目前所見到的最令人興奮的技術(shù),”Theresa Lanowitz說:“這會(huì)使得包括開發(fā)、測(cè)試及運(yùn)營團(tuán)隊(duì)在內(nèi)的IT組織管理可以管理典型的成本、質(zhì)量及進(jìn)度的三角關(guān)系。”Theresa是Voke Media的創(chuàng)始人兼分析師。
這些工具使得軟件開發(fā)團(tuán)隊(duì)可以在已有或計(jì)劃服務(wù)的上下文中,使用預(yù)期要交互的新代碼測(cè)試新服務(wù)的性能及行為。這降低了在開發(fā)中測(cè)試代碼的門檻,使得在開發(fā)過程可以更早更容易地發(fā)現(xiàn)缺陷,并打開了SOA應(yīng)用敏捷開發(fā)之門。
2003年,Parasoft聲稱其一款產(chǎn)品SOATest體現(xiàn)了服務(wù)虛擬化概念。這一術(shù)語是在2007年由iTKO在LISA平臺(tái)發(fā)布時(shí)發(fā)明出來的。近年來,包括IBM、CA及惠普在內(nèi)的主流企業(yè)軟件供應(yīng)商已經(jīng)開發(fā)或收購了一些服務(wù)虛擬化工具,服務(wù)虛擬化已蓄勢(shì)待發(fā),準(zhǔn)備成為主流的工具類型。IBM最近收購了Greenhat,CA則收購了iTKO,HP也開發(fā)了自己的內(nèi)部工具。
Lanowitz說:“市場(chǎng)已經(jīng)準(zhǔn)備好聆聽服務(wù)虛擬化在幫助管理成本方面能做些什么。這已經(jīng)在金融服務(wù)、零售、電信及其他組織內(nèi)部署了高度復(fù)合的應(yīng)用。在測(cè)試組織無法接觸大型主機(jī)的時(shí)候這很有用。”
Stub、mock及服務(wù)虛擬化
傳統(tǒng)上開發(fā)者已經(jīng)建立了stub和mock來表示新代碼需要交互的服務(wù)。這一方案把開發(fā)者的注意力從寫代碼上轉(zhuǎn)移,從而減少了其有用的輸出。Peter Cole,Green Hat的前CEO,現(xiàn)在是IBM Rational軟件部質(zhì)量管理主管說:“開發(fā)者針對(duì)mock進(jìn)行測(cè)試的時(shí)候,他們將服務(wù)預(yù)期表現(xiàn)出來的行為進(jìn)行編碼,而不是根據(jù)實(shí)際情況進(jìn)行。我們發(fā)現(xiàn)最令人生厭的集成問題就是由于不好的假設(shè)導(dǎo)致的。”
中間件集成是一種不斷復(fù)雜化的嘗試。一旦新代碼最終準(zhǔn)備就緒,可以拿到實(shí)體平臺(tái)上進(jìn)行測(cè)試,開發(fā)者或測(cè)試者就得管理與這一代碼交互的其他服務(wù)。在許多情況下這些服務(wù)都是運(yùn)行在開發(fā)者不熟悉的平臺(tái)上的。“有些開發(fā)者把30-50%的時(shí)間花在準(zhǔn)備測(cè)試上面,”Cole說。而另一方面,他繼續(xù)說:“虛擬化服務(wù)更容易實(shí)現(xiàn)和管理。不到15分鐘開發(fā)者就能建立幾個(gè)虛擬化服務(wù)了。”
服務(wù)虛擬化對(duì)代碼有可能需要交互的服務(wù)的行為建模。這跟對(duì)所有的底層代碼邏輯都進(jìn)行建模相比要容易得多,ITKO 創(chuàng)始人、現(xiàn)在是CA技術(shù)的著名工程師John Michelsen說:“你必須開發(fā)軟件的一部分以便與軟件的另一部分行為相匹配,這樣就不會(huì)有人知道仿真與實(shí)體的區(qū)別了。它必須提供相同的界面,但不需要支持所有的底層邏輯。”
“客戶也許有10億行自己無法理解的COBOL,”他說。通過仿真或虛擬化服務(wù),他們不再需要理解這10億行代碼,他繼續(xù)道,他們只需知道如何與別的應(yīng)用交互即可。
服務(wù)虛擬化工具可以移除若干開發(fā)過程中對(duì)測(cè)試硬件可用性、服務(wù)及隱私方面的約束,Parasoft 負(fù)責(zé)戰(zhàn)略企業(yè)發(fā)展的副總裁Wayne Ariola說。Parasoft最近的一項(xiàng)調(diào)查發(fā)現(xiàn)組織與平均8到10個(gè)受測(cè)應(yīng)用存在依賴關(guān)系。而開發(fā)者在任何時(shí)間點(diǎn)上只能接觸到這些依賴關(guān)系的30%.
通過服務(wù)虛擬化,開發(fā)團(tuán)隊(duì)還可以針對(duì)新服務(wù)的特定行為進(jìn)行測(cè)試,而不是等待代碼開發(fā)完畢再開始。這強(qiáng)化了朝著更敏捷、高度迭代開發(fā)技術(shù)趨勢(shì)的演進(jìn)。服務(wù)虛擬化還可以允許組織對(duì)敏感數(shù)據(jù)建模和屏蔽,使得這些數(shù)據(jù)可以在HIPAA、SOX等隱私約束下進(jìn)行服務(wù)測(cè)試。
向云計(jì)算的演進(jìn)可能會(huì)進(jìn)一步加快服務(wù)虛擬化的應(yīng)用,惠普應(yīng)用產(chǎn)品營銷主管Kelly Emo說:“比如說,當(dāng)作為復(fù)合應(yīng)用的一部分的新業(yè)務(wù)需求向云遷移時(shí),信貸服務(wù)或存貨服務(wù)就會(huì)倍感壓力,”她說:“從開發(fā)團(tuán)隊(duì)的角度看,已有的共享服務(wù)會(huì)出現(xiàn)非??焖俚淖兓?。”
更糟糕的場(chǎng)景正等著。實(shí)際上,開發(fā)團(tuán)隊(duì)往往會(huì)陷入等待狀態(tài),Emo說。“他們需要進(jìn)行端到端的測(cè)試,可是服務(wù)可能卻還沒有就緒,”她說。這些延誤導(dǎo)致團(tuán)隊(duì)錯(cuò)過日程安排,或者測(cè)試不夠優(yōu)化?;萜盏姆?wù)虛擬化產(chǎn)品試圖解決這一瓶頸。
美洲銀行是服務(wù)虛擬化的早期采用者之一,該公司已經(jīng)習(xí)慣了用這一技術(shù)來增加測(cè)試的覆蓋面以及改進(jìn)代碼質(zhì)量。美洲銀行的前任性能與彈性測(cè)試經(jīng)理Burt Klein說,為了采用傳統(tǒng)測(cè)試方法對(duì)兩項(xiàng)應(yīng)用進(jìn)行測(cè)試,該組織一直在考慮使用一款高成本的測(cè)試平臺(tái)?,F(xiàn)在他們可以采用iTKO的一款新的服務(wù)虛擬化測(cè)試基礎(chǔ)設(shè)施來節(jié)省投入,現(xiàn)在該產(chǎn)品已經(jīng)壯大到支撐更多的并發(fā)版本。
Klein說這個(gè)平臺(tái)能夠?yàn)樾阅堋⑦\(yùn)營測(cè)試提供更好的測(cè)試覆蓋面。它們能夠模擬新代碼需要交互的單個(gè)服務(wù)的性能,從而幫助識(shí)別出不同的斷點(diǎn)以及相關(guān)行為。在失敗發(fā)生時(shí)這一知識(shí)可以幫助運(yùn)營團(tuán)隊(duì)識(shí)別底層的瓶頸。
這一基礎(chǔ)設(shè)施工具還極大地改善并加快了尋找、解決缺陷問題的能力,Klein說。在這個(gè)案例中,有一個(gè)缺陷被認(rèn)為是完全的失敗或者無法滿足應(yīng)用的服務(wù)水平協(xié)議。在第一次部署服務(wù)虛擬化之后,錯(cuò)誤率從每百萬次有18000次失效的幾率下降到了250次。進(jìn)一步的調(diào)優(yōu)之后錯(cuò)誤率最終降低為0.0001/百萬。
Klein對(duì)服務(wù)虛擬化的印象異常深刻,以至于他離開了該銀行,自己組建了一個(gè)服務(wù)虛擬化社區(qū),幫助樹立對(duì)該技術(shù)的意識(shí),并作為共享最佳實(shí)踐的論壇。他解釋說:“我將其視為我的軟件開發(fā)生涯中的游戲改變者。”