某些PaaS產品有一些特定的功能,將用戶和他們的應用限制于某個特定的廠商。可以考慮使用容器等技術來增加PaaS的靈活性。
雖然基礎架構即服務仍然是公有云產品的標準,用戶卻開始越來越對平臺即服務感興趣,因為它可以降低成本并簡化操作。但大多數PaaS產品都有專門的操作系統或中間件功能,意味著可以將用戶鎖定到特定的供應商。
一個可移植的PaaS產品——即能夠跨多個云平臺和供應商工作,可以提供一個解決方案。組織有幾種方法可以實現PaaS產品的可移植性。但首先重要的是要了解PaaS采納背后的推動力。
用戶采用PaaS模型主要有以下三個原因:
1.由于PaaS中包括了操作系統和中間件,進而降低了許可和支持這些元素的成本。這種降低可以抵消PaaS和基礎架構即服務(IaaS)之間的差價。
2.PaaS包含的服務對所有應用都是標準化的,這可以簡化混合云的部署。
3.某些IaaS云,如亞馬遜網絡服務,有一些非常有用的Web服務,可以創建一個PaaS環境。IT團隊和開發人員可以將這些服務添加到應用中來改善性能或功能。
重要的是便攜式的PaaS模型在這三方面是如何組合的,以及如何能夠在各種公有云和私有數據中心環境之間移動。但是,想要以單一的PaaS方法來解決所有這些需求是很困難的。因此,企業需要優先考慮他們的PaaS目標,或者做好將多種方法結合起來的預期。
四種方法實現便攜式PaaS模式
想確保你的PaaS環境可以跨多個云或數據中心工作的一種方法是采用容器技術,比如Docker,來托管應用。容器的架構會共享一個操作系統,但為每個容器提供一個中間件和文件系統的副本。在大多數情況下,包括Docker,我們有可能將中間件標準化使其可以橫跨各個容器鏡像,但我們也可以選擇為應用和組件創建獨立的容器鏡像。之后開發團隊便可以在多個環境間移動這些容器,并在任何相同類型的容器系統中,無論是托管在云或是數據中心,運行這些應用和組件。
市面上有許多開源軟件工具能夠增強Docker,使之更加的類似PaaS。比如DEIS,Flynn和Tsuru就是一些很好的例子,而且都相當容易使用。他們能夠提高Docker在跨多個云提供商的容器中部署應用的能力。
另一種能夠實現便攜PaaS模式的方法是選擇擁有寬容的許可證條款的操作系統和中間件組件——也就是在每個副本的基礎上有適度定價,或多次使用的折扣,然后在你的云托管和數據中心組件中將他們標準化。你將在使用IaaS虛擬機或基于容器的云服務間進行選擇。然后,你可以使用創建機器鏡像或容器鏡像的工具來檢查中間件和操作系統的版本,確保你在每處部署的都是相同的版本。
這種方法在云應用不斷擴展,或當應用或底層的操作系統和中間件變化頻繁時可能會成為一個挑戰。這些復雜性會引入錯誤和更高的運營成本,除非有軟件的支持來簡化任務。IT團隊可以使用擴展工具來進行支持,如在創建機器鏡像方面家喻戶曉的VMware工具,但是,在某些時候,我們則有必要尋找一種工具,其具體目標是建立一個PaaS的環境。
在跨多個云間采用PaaS的第三種模式是使用能夠在IaaS或裸機服務器上部署PaaS的云技術。Cloud Foundry和OpenShift便是這類工具的例子,但更新的產品,如Morpheus,正在受到關注。這些云部署或管理的工具允許用戶創建和部署基于標準的中間件和操作系統的應用程序。企業使用這些工具來創建一個可以跨云提供商邊界或多種服務器類型的PaaS模式。這些工具能夠融合操作系統和中間件,構建一個真正的PaaS,并處理版本管理和跨系統中間件更新的艱巨任務。但是,這些工具的學習和使用過程都很復雜,比較適合擁有大量技術支持人員的企業。
另外,雖然這種PaaS的方法提供了便攜性并減少了在多云或混合環境中維護應用的運營負擔,但卻不會改變許可方面的費用。如果那才你使用PaaS的目標,則這種做法可能不是最合適的。
實現便攜式PaaS模型的第四種方式同微服務有關。組織可以將需要用到專門的中間件的應用組件做成可被應用其他部分按需調用的服務。這么做會使中間件僅僅被限制在這些服務中,進而降低復雜性和許可成本并確保實施的一致性。IT團隊也可以使用同樣這種基于服務的方式來構建一個不是所有IaaS提供商都提供的私有版本的Web服務,讓依賴于這些Web服務的應用能夠在所有IaaS云上實現可移植性。
這種方法會帶來性能的風險。中間件通常同應用高度集成,而將經常使用的功能分離作為服務會帶來網絡延遲和性能問題。但是,慎重選擇目標并控制延遲可以使這種模式變得很有價值,特別是在跨云提供商間協調Web服務的時候。
沒有一種便攜式PaaS模型可以適合所有的情形,現在做不到未來也不太可能。好消息是,組織可以結合某些或幾個選項來達到他們想要的PaaS效率,而不需將自己鎖定于一個單一的云供應商。想打造最好的PaaS模型可能需要一些時間,但會很值得。