云計算和虛擬化可以讓你創(chuàng)建虛擬機,并使用基于云的服務用于項目管理、問題管理和具有自動化測試的軟件構建。而這又從六個方面鼓勵了敏捷軟件開發(fā)。
澳大利亞綜合金融服務領先供應商之一澳洲聯(lián)邦銀行(Commonwealth Bank)建立了一個私有云來運行內部應用程序作為服務。這些應用程序使用超過300個Oracle數(shù)據(jù)庫,這些數(shù)據(jù)庫都被合并到按需Oracle實例中,而該實例可以由瀏覽器界面內的應用程序開發(fā)團隊進行非常迅速的配置。這使開發(fā)團隊配置生產質量環(huán)境的準備時間從三個月縮減到兩分鐘。
同時,Salesforce.com R&D利用云計算顯著加快了其產品發(fā)布周期。該公司每個季度會發(fā)布一個主要產品,但每個月、每周甚至每天都需要添加漸進式改進。該公司的云基礎設施幫助其建立了一個單一的統(tǒng)一代碼庫,讓位于不同地理位置的開發(fā)團隊都可以使用。這些團隊成功地將敏捷開發(fā)和持續(xù)集成/交付與云計算結合在一起。
聯(lián)邦銀行和Salesforce.com R&D只是兩個例子,向我們展示了敏捷軟件開發(fā)團隊如何使用云計算來加快開發(fā)操作和實現(xiàn)效率與效益。云計算和虛擬化讓敏捷開發(fā)團隊可以無縫地將多個開發(fā)、測試和生產環(huán)境與其他云服務相結合。
以下云計算和虛擬化幫助提高敏捷軟件開發(fā)的六個重要方面:
1.云計算提供無限數(shù)量的測試和開發(fā)用服務器
在敏捷開發(fā)沒有“遇到”虛擬化或云計算之前,開發(fā)團隊受限于一臺物理服務器,來滿足其開發(fā)和生產服務器的需求。然而,在使用虛擬機或云實例后,開發(fā)團隊擁有無限數(shù)量的服務器。他們不需要等待物理服務器空閑時才開始或繼續(xù)他們的工作。
2.使敏捷開發(fā)轉變成真正并行的活動
你可能在使用敏捷開發(fā)的同時,在配置服務器實例和安裝必要的底層平臺(例如數(shù)據(jù)庫軟件)時仍然遭遇延遲現(xiàn)象。正如聯(lián)邦銀行將配置Oracle數(shù)據(jù)庫的時間從三個月縮減到兩分鐘,敏捷開發(fā)團隊可以自己快速地配置所需的服務器,而不是等待IT運營來為他們配置。
雖然敏捷開發(fā)辦法旨在消除軟件開發(fā)過程中的低效率和延遲,在實踐中,它變成一個串行活動,而云計算可以將其變成一個并行活動。這將幫助敏捷軟件開發(fā)團隊提高效率和效益。
3.鼓勵創(chuàng)新和實驗
能夠根據(jù)需要產生盡可能多的實例可以幫助敏捷開發(fā)團隊不斷創(chuàng)新。如果一個功能看起來很不錯,團隊可以迅速產生一個開發(fā)實例來編碼并測試它,而不需要等待下一個產品發(fā)布。當添加云計算到敏捷開發(fā)時,軟件構建更加快速,這也將鼓勵創(chuàng)新和實驗。
4.加強了持續(xù)集成和交付
如前所述,云實例和虛擬化能夠大大提高持續(xù)集成和交付。構建和自動化測試需要花一段時間。敏捷開發(fā)團隊可能隨后需要為在自動化測試期間失敗的測試修復代碼,在所有測試通過之前,他們需要反復這樣修復代碼。
在敏捷開發(fā)團隊自己的云環(huán)境或者公共云中,擁有大量虛擬機可以提高持續(xù)集成和交付的速度。
5.帶來更多開發(fā)平臺和外部服務
敏捷開發(fā)團隊可能需要使用各種不同的項目管理、問題管理以及自動化測試環(huán)境(如果使用持續(xù)集成的話)。很多這些服務都在云中作為軟件即服務(SaaS)。
敏捷開發(fā)可以使用虛擬化、私有云和基礎設施即服務水平的公共云的結合體。這種產品包括Amazon網(wǎng)絡服務、GoGrid、opSource和RackSpace Cloud。
然后是使用平臺即服務(PaaS)實例,例如Oracle數(shù)據(jù)庫云服務、Google App Engine和Salesforce.com平臺force.com,所有這些都包含數(shù)據(jù)庫和語言環(huán)境作為服務。