很少企業(yè)能夠忍受將自己的應(yīng)用開(kāi)發(fā)實(shí)踐同單一廠商綁定,但是很多企業(yè)又在不知不覺(jué)中將應(yīng)用開(kāi)發(fā)和唯一云提供商綁定在一起。
隨著云越來(lái)越具有競(jìng)爭(zhēng)力以及一些提供商具有長(zhǎng)期穩(wěn)定性風(fēng)險(xiǎn),開(kāi)發(fā)者必須理解如下的事情:即平臺(tái)即服務(wù)(PaaS)是圈套,因?yàn)槠脚_(tái)特性支持不均衡,一些PaaS提供商比其他的提供商造成了更大的風(fēng)險(xiǎn),所有的PaaS選擇通過(guò)正確的項(xiàng)目步驟都可以變得對(duì)于可移植性更加友好。
即便是在云應(yīng)用的初期,PaaS服務(wù)用戶提出了其應(yīng)用的可移植性問(wèn)題,而不是向PaaS提供商提問(wèn),而是在從第一個(gè)提供商轉(zhuǎn)向不同的提供商時(shí)提問(wèn),或者甚至是遷回?cái)?shù)據(jù)中心時(shí)才提問(wèn)。在一些案例中,這種轉(zhuǎn)換要求軟件的主要改變,而且導(dǎo)致項(xiàng)目滯后,甚至生產(chǎn)力損失。主要是兩個(gè)具體問(wèn)題導(dǎo)致的,開(kāi)發(fā)者必須在為PaaS創(chuàng)建可移植性應(yīng)用時(shí)解決。
PaaS可移植性的第一個(gè)問(wèn)題是缺少PaaS提供商之間一致的平臺(tái)定義。使用基礎(chǔ)架構(gòu)即服務(wù)(IaaS),開(kāi)發(fā)者同裸機(jī)共事,可以提供應(yīng)用需要的所有系統(tǒng)軟件。這種平臺(tái)的問(wèn)題就是可移植性,因?yàn)閺囊粋(gè)IaaS提供商遷移到另一個(gè)時(shí),甚至?xí)浦驳奖镜貎?nèi)部的虛擬機(jī)。使用PaaS,提供商選擇自己支持的操作系統(tǒng)和中間件元素,如果提供商做出不同選擇,隨后應(yīng)用在這些不同領(lǐng)域使用的性能就不能遷移。如果一些PaaS性能是提供商自定制的,將應(yīng)用遷移會(huì)本地相同的平臺(tái)甚至更難。
對(duì)于這個(gè)可移植性問(wèn)題的最佳解決方案就是創(chuàng)建一個(gè)平臺(tái)參照點(diǎn)。PaaS服務(wù)通常都是圍繞一個(gè)操作系統(tǒng)提供的(比如,Linux、Windows),一群中間件用于通信和數(shù)據(jù)庫(kù)服務(wù),還有管理和開(kāi)發(fā)工具。同時(shí)多種云提供商可能提供相同的基礎(chǔ)平臺(tái),變換了中間件和工具,因此繪制你優(yōu)先的平臺(tái)類(lèi)型性能圖表很重要,高亮標(biāo)出哪些不統(tǒng)一支持的性能/工具。避免這些性能和工具,就能避免可移植性問(wèn)題。
第二個(gè)問(wèn)題就是缺少可靠平臺(tái)替代提供商。當(dāng)今PaaS服務(wù)通常提供兩種形式。首先,平臺(tái)“所有者”(微軟的Windows/Azure為例)可能會(huì)對(duì)有效的服務(wù)器平臺(tái)提供一個(gè)云版本。在這種案例中,第一類(lèi)PaaSi工商的優(yōu)勢(shì)可能也會(huì)阻礙競(jìng)爭(zhēng)力,盡管平臺(tái)提供商考慮到了(微軟最近變更了Windows Server,促進(jìn)非微軟Windows PaaS產(chǎn)品。)
當(dāng)一個(gè)支配性的提供商壓制PaaS競(jìng)爭(zhēng)力,云用戶可用的唯一替代物就是使用IaaS服務(wù),包括其機(jī)器映像中的PaaS“平臺(tái)”部分。如果這樣做,關(guān)鍵就是確保所有的PaaS性能對(duì)于本地服務(wù)器配置可用。主要平臺(tái)提供商(比如微軟、IBM、HP或者甲骨文)的風(fēng)險(xiǎn)就可能僅僅避免小型PaaS業(yè)務(wù),但是在這些地方小型提供商就是PaaS唯一的選擇,計(jì)劃IaaS退路是個(gè)謹(jǐn)慎的過(guò)程。
第二個(gè)問(wèn)題的解決方案就是適配器設(shè)計(jì)模式。云端應(yīng)用必須參照可能不是所有提供商都可用的服務(wù)時(shí),封裝參照到更高層的軟件元素中(遵循適配器設(shè)計(jì)模式原則,共有面向?qū)ο笤O(shè)計(jì))并轉(zhuǎn)換通用需求到PaaS服務(wù)需要的具體形式。
例如,假設(shè)一個(gè)應(yīng)用為亞馬遜的Redshift倉(cāng)儲(chǔ)服務(wù)開(kāi)發(fā)。然而IaaS服務(wù)和廣泛使用的亞馬遜EC2兼容,其他的IaaS提供商不提供Redshift,且應(yīng)用是為了“miniPaaS”編寫(xiě),EC2/Redshift在不變更所有的項(xiàng)目參照到Redshift的情況向下就不能遷移。一個(gè)開(kāi)發(fā)者編寫(xiě)了一個(gè)小型的軟件對(duì)象,稱(chēng)之為“Warehouse”,用于代替Redshift應(yīng)用程序接口(API)。Warehouse內(nèi)部,代碼可能改變數(shù)據(jù)庫(kù)操作參數(shù),成為Redshift格式,隨后調(diào)用Redshift。如果應(yīng)用隨后轉(zhuǎn)移到一個(gè)不支持Redshift的提供商,Warehouse就要變更來(lái)執(zhí)行正確的數(shù)據(jù)庫(kù)訪問(wèn)API需求來(lái)模擬。Warehouse對(duì)象單一的變更就可以進(jìn)行應(yīng)用遷移。
這種基于抽象的機(jī)制也適用于管理應(yīng)用可移植性問(wèn)題,即需要在一個(gè)平臺(tái)性能上構(gòu)建一個(gè)云應(yīng)用,競(jìng)爭(zhēng)分析顯示并沒(méi)有廣泛的支持。關(guān)鍵在于確保至少要有合理的方式在多種平臺(tái)上提供同樣的性能/功能,即便相同的API不能跨平臺(tái)工作,比如上面提到的Warehouse例子,在一個(gè)或者更多的替代平臺(tái)上根本沒(méi)有可比較的服務(wù),然后適配器設(shè)計(jì)模式機(jī)制在它們之中并不能輕松的支持可移植性。
久而久之,PaaS最大的可移植性風(fēng)險(xiǎn)并不是正常的PaaS平臺(tái),比如Azure,但是隨著IaaS服務(wù)通過(guò)增加一些性能發(fā)展成PaaS服務(wù),比如亞馬遜的Redshift或者緩存服務(wù)。這些平臺(tái)的很多用戶永遠(yuǎn)不會(huì)把自己看作是PaaS用戶,可能在他們第一次嘗試將應(yīng)用轉(zhuǎn)移到另一個(gè)提供商時(shí)就會(huì)被不可移植性攻其不備。少量的預(yù)先計(jì)劃可以防止主要的問(wèn)題,經(jīng)驗(yàn)也能夠協(xié)助云專(zhuān)家要理解可能讓PaaS可移植性成為性能區(qū)別持久壓力。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:PaaS應(yīng)用可移植性:?jiǎn)栴}與解決方案
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112188460.html