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