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