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