平臺就是為企業提供服務的,所以管理企業自己的開發基礎架構是非常大的優勢,允許企業有更多時間關注于編碼和設計。 雖然PaaS可能是新專案的最佳選擇,但是對於現有的、遺留的開發工作可能並不是很合適。 在將遺留開發專案轉移到平臺即服務(PaaS)之前,我們需要認真考慮以下五件事。
1、首先是如何使用PaaS?
不同的公司對於PaaS有不同的使用,來適用其IT環境和目標。 首先必須瞭解如何將PaaS合併到企業中。 一些服務可以將一些計算輕鬆轉移到雲端,同時維護本地資源上的其他功能。 比如,Pi Cloud提供了一種應用程式介面(API),可以複製本地的Python代碼到雲端,並在雲端運行,同時開發工具和代碼庫則保留在本地。
另一種選擇是用本地資源開發,用PaaS產品測試。 在運行大型測試套件或者需要共用資源的單獨實例進行適當的測試時,這種方法十分有用。 也可以通過使用雲集成開發環境(IDE)將所有的開發轉移到雲端。 通過基於瀏覽器的IDE(一些是羽量級的)審核性能支援,可能會不適應所有的性能。
2、軟體發展實踐和工具是否適合PaaS?
如果使用Git、SVN、Ant或者Maven這樣的工具開發軟體,要考慮在PaaS中這些是否能夠輕鬆使用。 在一個PaaS版本控制系統中工作與本地資源工作並沒有過多的區別。 然而,重寫構建腳本則是一種更加具體的工作。 如果沒有過多正式的實踐或者使用自主研發的工具,要考慮這些工具如何適用于PaaS環境,且針對代碼和文檔,審核訪問策略。 檢查PaaS供應商的存取控制機制,確保能夠按照需要的方式控制訪問。
3、是否需要集成本地資源?
應用通常需要整合其他的應用或者共用資源,比如企業資料庫。 在這樣的例子中,理解如何從PaaS訪問這些資源。 如果使用通過Web服務API實現的內置應用,且已經服務于外部用戶端應用,應該能夠轉移到PaaS。 如果安全是關注要點,且只有在虛擬私有網路(VPN)上的用戶端應用能夠訪問本地應用,就要在開發的早期測試PaaS API。 如果需要實現VPN功能且PaaS供應商並不符合需求,可能需要考慮基礎架構即服務(IaaS)雲來代替。
4、開發堆疊是否完全支援?
從單一語言平臺到支援大量語言、資料庫和其他服務的平臺,PaaS產品快速成熟。 要找到能夠支援全部應用堆疊的PaaS選擇,減少採用PaaS開發的障礙。 比如,如果用JAVA開發,用Jenkins進行持續集成,可能CloudBees會是個不錯的選擇。 如果需要支援Ruby和Node.js,Engine Yard更適合。 如果在NoSQL平臺上構建,紅帽的PaaS——OpenShift就是上佳選擇。
5、開發期是怎樣的?
處於開發期的那個階段會嚴重影響從本地開發轉移到雲端開發的成本和好處。 典型的,你的開發週期進行的越長久,就會在開發環境和工具中放入更多的投資。 按照專案進度情況,需要創建更多軟體且比如轉移到一個PaaS平臺上,增加了轉換的成本。
把一個進行中的專案開發轉移到PaaS平臺,只有在PaaS成本權重優勢高於遷移所需要的潛在時間時才有意義。 在轉移到PaaS之後,就可以釋放伺服器管理、作業系統和其他基礎架構的管理了。 如果需要擴展應用,避免時間消耗以及工程師問題,巨大的回報就出現了。
在雲端運行應用,且以最小的技術介入進行擴展,就能節省時間,確實值得努力轉移到PaaS。