遺留開發(fā)進(jìn)入PaaS五要素
平臺即服務(wù)提供了管理企業(yè)自己的開發(fā)基礎(chǔ)架構(gòu)的優(yōu)勢,允許企業(yè)有更多時間關(guān)注于設(shè)計和編碼。雖然PaaS可能是新項目的優(yōu)先選擇,但是對于現(xiàn)有、遺留開發(fā)工作可能并不合適。在將遺留開發(fā)項目轉(zhuǎn)移到平臺即服務(wù)(PaaS)之前,需要認(rèn)真考慮如下五件事。
1、如何使用PaaS?
不同的公司對于PaaS有不同的使用,來適用其IT環(huán)境和目標(biāo)。首先必須了解如何將PaaS合并到企業(yè)中。一些服務(wù)可以將一些計算輕松轉(zhuǎn)移到云端,同時維護(hù)本地資源上的其他功能。比如,Pi Cloud提供了一種應(yīng)用程序接口(API),可以復(fù)制本地的Python代碼到云端,并在云端運(yùn)行,同時開發(fā)工具和代碼庫則保留在本地。
另一種選擇是用本地資源開發(fā),用PaaS產(chǎn)品測試。在運(yùn)行大型測試套件或者需要共享資源的單獨實例進(jìn)行適當(dāng)?shù)臏y試時,這種方法十分有用。也可以通過使用云集成開發(fā)環(huán)境(IDE)將所有的開發(fā)轉(zhuǎn)移到云端。通過基于瀏覽器的IDE(一些是輕量級的)審核性能支持,可能會不適應(yīng)所有的性能。
2、軟件開發(fā)實踐和工具是否適合PaaS?
如果使用Git、SVN、Ant或者M(jìn)aven這樣的工具開發(fā)軟件,要考慮在PaaS中這些是否能夠輕松使用。在一個PaaS版本控制系統(tǒng)中工作與本地資源工作并沒有過多的區(qū)別。然而,重寫構(gòu)建腳本則是一種更加具體的工作。如果沒有過多正式的實踐或者使用自主研發(fā)的工具,要考慮這些工具如何適用于PaaS環(huán)境,且針對代碼和文檔,審核訪問策略。檢查PaaS提供商的訪問控制機(jī)制,確保能夠按照需要的方式控制訪問。
3、是否需要集成本地資源?
應(yīng)用通常需要整合其他的應(yīng)用或者共享資源,比如企業(yè)數(shù)據(jù)庫。在這樣的例子中,理解如何從PaaS訪問這些資源。如果使用通過Web服務(wù)API實現(xiàn)的內(nèi)置應(yīng)用,且已經(jīng)服務(wù)于外部客戶端應(yīng)用,應(yīng)該能夠轉(zhuǎn)移到PaaS。如果安全是關(guān)注要點,且只有在虛擬私有網(wǎng)絡(luò)(VPN)上的客戶端應(yīng)用能夠訪問本地應(yīng)用,就要在開發(fā)的早期測試PaaS API。如果需要實現(xiàn)VPN功能且PaaS提供商并不符合需求,可能需要考慮基礎(chǔ)架構(gòu)即服務(wù)(IaaS)云來代替。
4、開發(fā)堆棧是否完全支持?
從單一語言平臺到支持大量語言、數(shù)據(jù)庫和其他服務(wù)的平臺,PaaS產(chǎn)品快速成熟。要找到能夠支持全部應(yīng)用堆棧的PaaS選擇,減少采用PaaS開發(fā)的障礙。比如,如果用Java開發(fā),用Jenkins進(jìn)行持續(xù)集成,可能CloudBees會是個不錯的選擇。如果需要支持Ruby和Node.js,Engine Yard更適合。如果在NoSQL平臺上構(gòu)建,紅帽的PaaS——OpenShift就是上佳選擇。
5、開發(fā)期是怎樣的?
處于開發(fā)期的那個階段會嚴(yán)重影響從本地開發(fā)轉(zhuǎn)移到云端開發(fā)的成本和好處。典型的,你的開發(fā)周期進(jìn)行的越長久,就會在開發(fā)環(huán)境和工具中放入更多的投資。按照項目進(jìn)度情況,需要創(chuàng)建更多軟件且比如轉(zhuǎn)移到一個PaaS平臺上,增加了轉(zhuǎn)換的成本。
把一個進(jìn)行中的項目開發(fā)轉(zhuǎn)移到PaaS平臺,只有在PaaS成本權(quán)重優(yōu)勢高于遷移所需要的潛在時間時才有意義。在轉(zhuǎn)移到PaaS之后,就可以釋放服務(wù)器管理、操作系統(tǒng)和其他基礎(chǔ)架構(gòu)的管理了。如果需要擴(kuò)展應(yīng)用,避免時間消耗以及工程師問題,巨大的回報就出現(xiàn)了。
在云端運(yùn)行應(yīng)用,且以最小的技術(shù)介入進(jìn)行擴(kuò)展,就能節(jié)省時間,確實值得努力轉(zhuǎn)移到PaaS。