多云模式神話破滅,為什么說可攜帶性的工作負(fù)載是天方夜譚?
多云模式在正在得到業(yè)界的認(rèn)可,即公司會(huì)從多個(gè)云供應(yīng)商那里獲得不同的IT服務(wù),而同時(shí)又會(huì)保留一部分自身本地部署的IT工作。不過當(dāng)公司意識(shí)到將工作從一個(gè)云轉(zhuǎn)移到另一個(gè)的過程并不像供應(yīng)商所承諾的那般順利時(shí),各種多云模式的問題也會(huì)接踵而來。
不過在進(jìn)行更深一步討論前,我們有必要對(duì)多云模式先做下說明。
多云的定義
在過去的一兩年內(nèi),多云的概念現(xiàn)在了IT行業(yè)中,其大致是指一種公司不僅使用一個(gè)到數(shù)個(gè)SaaS服務(wù)(如人力資源或郵件服務(wù)等)并同時(shí)使用PaaS服務(wù)進(jìn)行軟件開發(fā),而且還有可能使用IaaS服務(wù)進(jìn)行虛擬機(jī)上工作運(yùn)行的模式。
Gartner技術(shù)和服務(wù)供應(yīng)商研究部門研究總監(jiān)Mattew Cheung表示,“我們看見更多的客戶在同時(shí)應(yīng)用多個(gè)公有云服務(wù),因?yàn)槟承┰乒?yīng)商在特定的工作負(fù)載方面具有更加專業(yè)化的能力”。
這些專業(yè)化的服務(wù)包括很多關(guān)鍵的企業(yè)應(yīng)用,比如Microsoft Azure中的SQL服務(wù)器,Google Cloud中的人工智能(AI)和數(shù)據(jù)分析服務(wù)。而像AWS這樣的巨頭也具有眾多的特定的功能和服務(wù),而且每年還在不斷地推新。
“混搭”的云方案
在上云的早期階段中,很多公司會(huì)通過“升級(jí)和轉(zhuǎn)移”的方式進(jìn)行IaaS服務(wù)的使用,以實(shí)現(xiàn)將工作負(fù)載從本地模式中移出。這種模式往往是公司配置虛擬機(jī)以取代傳統(tǒng)服務(wù)器,實(shí)際上是在云的架構(gòu)中對(duì)本地部署的環(huán)境進(jìn)行了復(fù)制。
無論是無意還是有意為之,很多公司都會(huì)在多個(gè)IaaS平臺(tái)上進(jìn)行工作的部署。這可能是因?yàn)閿?shù)據(jù)主權(quán)、反綁定或冗余問題。
那些兜售混合云產(chǎn)品和服務(wù)的供應(yīng)商會(huì)承諾這些都不是問題,當(dāng)用戶發(fā)現(xiàn)更好的云服務(wù)或引入其他公司所需要的新功能或服務(wù)時(shí),工作可以很輕易地從一朵云轉(zhuǎn)移到另一朵云中。
但是,如果公司覺得要上的那朵云并不適合自己工作負(fù)載時(shí),遷移的工作還會(huì)這么容易嗎?混合云方案的供應(yīng)商總是試圖讓人們相信遷移的工作就像復(fù)制粘貼一樣簡單,但實(shí)際上這一過程中困難重重。
擊破多云模式的神話
首先,不同供應(yīng)商的服務(wù)器實(shí)例(數(shù)據(jù)庫)的特性可能會(huì)截然不用,而且盡管具有像打包和虛擬機(jī)映像這樣開放格式的服務(wù),但它們在實(shí)踐中卻很少使用。另外,傳統(tǒng)的三層模式的應(yīng)用通常需要進(jìn)行單獨(dú)服務(wù)器集群上的數(shù)據(jù)庫的訪問,這也讓遷移工作變得更加復(fù)雜。這就說明,如果我們想要將工作從云端遷移到另一個(gè)云端,那么虛擬機(jī)并不是一個(gè)很理想的選擇。
當(dāng)然,公司還有一個(gè)選擇, 容器。自從Docker技術(shù)及其同名平臺(tái)出現(xiàn)以來,容器為開發(fā)人員提供了一種簡單的應(yīng)用程序代碼的封裝方式,并允許人們進(jìn)行發(fā)布以供本地或云端的運(yùn)行。
相較于虛擬機(jī),容器具有很強(qiáng)的便攜性優(yōu)勢。容器的大小通常只有數(shù)十兆字節(jié),而虛擬機(jī)會(huì)包含整個(gè)操作系統(tǒng)以及應(yīng)用程序,一般會(huì)有幾千兆字節(jié)。
總的來說,容器實(shí)際上是一種Linux技術(shù)(除了最近推出的Windows容器之外), 其主要應(yīng)用于運(yùn)行那些在公有云上所謂本地部署的工作負(fù)載,而不是那些如今在公司所有系統(tǒng)中運(yùn)行的傳統(tǒng)企業(yè)應(yīng)用程序。
相比于虛擬機(jī),目前容器技術(shù)更加不成熟,因此其整個(gè)生態(tài)正在迅速的構(gòu)建中,而圍繞著安全性、高可用性以及關(guān)鍵資源容器廠商也提供著很多不同的方案。
不過,根據(jù)Cheung所述,即使在這種情況下,簡單地從一個(gè)云中提取工作負(fù)載并將其轉(zhuǎn)移到另一個(gè)云中的可能性依然很低,因?yàn)槿藗儾⒉豢春霉ぷ髫?fù)載會(huì)很完美地運(yùn)行在虛擬機(jī)或容器上。相反,人們傾向于依靠其他的功能和服務(wù)。由于不同云平臺(tái)之間的差異相當(dāng)明顯,所以很難簡單地將工作負(fù)載轉(zhuǎn)移到不同的云上,除非該工作負(fù)載非常簡單和獨(dú)立。“今天,在不同公有云之間轉(zhuǎn)移工作負(fù)載真的非常困難”,Cheug說道。
Red Hat的OpenShift平臺(tái)就是一個(gè)很典型的案例,其使得用戶可以使用Docker及容器以構(gòu)建和部署應(yīng)用程序,而且其不僅允許用戶進(jìn)行本地的部署,而且還支持在Microsoft Azure、AWS和Google云平臺(tái)上面的工作部署。 理論上,OpenShift應(yīng)該可以允許用戶在這些平臺(tái)間進(jìn)行任意應(yīng)用程序代碼的轉(zhuǎn)移。 不過,這依然具有依賴性的問題。如果用戶的應(yīng)用依賴于某一的云平臺(tái)特定的功能或服務(wù),那么他們就很難將這些應(yīng)用遷移到其他平臺(tái)中。而且這同時(shí)也阻礙了用戶去使用一個(gè)更為方便的功能或服務(wù),因?yàn)楣?yīng)商鎖定的問題會(huì)讓其無功而返。
無服務(wù)器計(jì)算的空頭支票
除了PaaS服務(wù)外,公司還可以關(guān)注下所謂的無服務(wù)器計(jì)算,這是一種以應(yīng)用程序按使用次數(shù)而計(jì)費(fèi)的模式,即“功能即服務(wù)”或“FaaS”。AWS中的Lambda就是其中的一個(gè)例子。
幾乎所有的無服務(wù)器平臺(tái)都支持Python語言,因此使用該語言編寫的應(yīng)用程序可以較為容易地實(shí)現(xiàn)在不同無服務(wù)器平臺(tái)上面的遷移。不過當(dāng)不同的云支持不同的功能時(shí),問題會(huì)再次出現(xiàn),除非有一種通用的代碼,而且公司能夠避免鏈接到任何云特定的功能或服務(wù),否則遷移的過程就不會(huì)是無縫的。
實(shí)現(xiàn)云端可移植性承諾的另一個(gè)障礙來自于實(shí)際數(shù)據(jù)。由于合規(guī)性或監(jiān)管的原因,將某些類型的信息遷移出本地基本不可能實(shí)現(xiàn)。
另外,由于數(shù)據(jù)中心所在的位置,或者由于只有有限數(shù)量的供應(yīng)商能夠達(dá)到運(yùn)行特定工作負(fù)載所需的認(rèn)證級(jí)別,所以在進(jìn)行其他云供應(yīng)商平臺(tái)選擇時(shí),公司也會(huì)遇到很大的問題。
更重要的是,所涉及到的數(shù)據(jù)量也可能會(huì)成為一個(gè)問題。當(dāng)然今天的用戶可以享受到相對(duì)較快的互聯(lián)網(wǎng)連接速度,但是由于種種的限制(如網(wǎng)絡(luò)攻擊、地理位置、網(wǎng)絡(luò)穩(wěn)定性等),通過互聯(lián)網(wǎng)傳輸數(shù)據(jù)的過程可能會(huì)耗費(fèi)數(shù)天甚至更多的時(shí)間。
將數(shù)據(jù)從本地遷移到云端的工作可以通過基于磁盤的設(shè)備來完成,只需要將相應(yīng)的設(shè)備運(yùn)送到云供應(yīng)商的數(shù)據(jù)中心中,比如AWS的Snowball就是這樣的解決方案。 但是將數(shù)據(jù)從一個(gè)云平臺(tái)轉(zhuǎn)移到另一個(gè)云平臺(tái)的過程不可能這么容易,因?yàn)椴煌脑品?wù)商使用不同的API和數(shù)據(jù)存儲(chǔ)標(biāo)準(zhǔn),在數(shù)據(jù)提取與傳輸中這會(huì)造成很大的障礙。而同時(shí)云供應(yīng)商間不同的定價(jià)模式也可能會(huì)增加用戶提取與傳輸數(shù)據(jù)的成本。
公司依然需要小心謹(jǐn)慎
由于以上的種種問題,相應(yīng)的跨平臺(tái)的云管理工具仍然不成熟,Gartner在最近一份報(bào)告中將其描述為“新興且高度分散的市場”。
云計(jì)算和基礎(chǔ)架構(gòu)的供應(yīng)商都具有自己的管理工具,但主要集中在如何與自己體系內(nèi)的軟件進(jìn)行集成,他們讓第三方的供應(yīng)商提供某種形式的可支持多云的服務(wù)。這種情況使得用戶的IT部門不得不掌握一系列“最佳”的管理工具以監(jiān)管他們的多云環(huán)境,或者使用一種具有有限功能的跨平臺(tái)管理工具。
就目前而言,云平臺(tái)之間的工作負(fù)載與數(shù)據(jù)的移動(dòng)性依然是一個(gè)很重要的問題,盡管容器等技術(shù)正試圖攻克這一難關(guān)。因此,公司在制定云策略時(shí)應(yīng)該保持謹(jǐn)慎與小心,因?yàn)槿绻麤Q定使用不同的云服務(wù),那么在不同云服務(wù)商之間進(jìn)行工作負(fù)載的轉(zhuǎn)移可能會(huì)相當(dāng)困難而且代價(jià)高昂。