云越發(fā)展,鎖定問題就會(huì)越嚴(yán)重?
就像HBO的史詩奇幻劇《權(quán)力的游戲》(Game of Thrones)有好幾季一樣,消費(fèi)者云計(jì)算(consumer cloud)的發(fā)展也經(jīng)歷了不同的階段。
總結(jié)一下,這場(chǎng)由蘋果,谷歌,微軟和亞馬遜等巨頭發(fā)起的“服務(wù)的游戲”***季圍繞于移動(dòng)操作系統(tǒng)平臺(tái),贏家是蘋果和谷歌。
而第二季是關(guān)于服務(wù)本身,這些公司在云存儲(chǔ),應(yīng)用程序,消息,音樂/視頻/書籍內(nèi)容方面提供了大量服務(wù),以及不斷推進(jìn)這些服務(wù)的發(fā)展。
第三季是關(guān)于公有消費(fèi)者云服務(wù)的API訪問之爭(zhēng)。從很大程度上來說,如今谷歌和Facebook仍是最重要的消費(fèi)者云,而對(duì)它們中的各類API進(jìn)行訪問也是一個(gè)不斷變化的目標(biāo)。
第四季的內(nèi)容呢?答案是企業(yè)/商業(yè)云的發(fā)展。我們?cè)谶@里討論的是公有云的超級(jí)擴(kuò)張者: AWS、微軟Azure、谷歌云,以及IBM云。
到目前為止,企業(yè)云工作負(fù)載可以分為IaaS、PaaS、SaaS或三者的混合。這類天生時(shí)就被設(shè)計(jì)成在云中運(yùn)行的工作負(fù)載通常被稱為“生于云”工作負(fù)載,而那些自本地?cái)?shù)據(jù)中心的傳統(tǒng)客戶機(jī)/服務(wù)器遷移到云中的負(fù)載,則被稱作遷移工作負(fù)載。
如果我們把這些東西結(jié)合起來,并在云和本地之間進(jìn)行分割,就得到了混合云架構(gòu)。
在大多數(shù)情況下,企業(yè)/商業(yè)云托管服務(wù)可以被視為一種商品并進(jìn)行互換。計(jì)算/虛擬機(jī)、存儲(chǔ)和網(wǎng)絡(luò)是基本的IaaS服務(wù),這些服務(wù)在巨頭中是一樣的,它們也都應(yīng)用了一種逐底競(jìng)爭(zhēng)的方式。
在Docker等開源應(yīng)用程序打包標(biāo)準(zhǔn)上運(yùn)行的容器,以及使用Kubernetes等編排系統(tǒng)的容器,是下一代的計(jì)算,而這也正在被商品化。它比虛擬機(jī)更便宜,也更容易擴(kuò)展。如果在一個(gè)公有云上運(yùn)行一個(gè)基于Docker的應(yīng)用程序,那么將其移植到具有類似容器托管服務(wù)的另一個(gè)公有云上是相當(dāng)簡單的。
超大規(guī)模用戶(hyperscalers)可以嘗試在性能和其他一些方面對(duì)這些服務(wù)進(jìn)行區(qū)分,但在基本層面上,IaaS還是IaaS,而容器還是是容器,無論它們是在AWS、Azure還是谷歌云上運(yùn)行。
實(shí)際上,廠商商業(yè)云的區(qū)別在于SaaS和PaaS。對(duì)于像微軟這樣的公司來說,它的SaaS,比如Office 365、PowerBI、Dynamics、SharePoint、 Teams和Skype For Business,是它區(qū)別于行業(yè)其他公司的地方。這些應(yīng)用程序平臺(tái)曾在本地?fù)碛邢喈?dāng)大的市場(chǎng)份額,因此將客戶轉(zhuǎn)移到基于云的托管版本(SaaS)是IT從傳統(tǒng)安裝過渡到現(xiàn)代化訪問的一項(xiàng)自然過程。
但這些工作負(fù)載非常棘手,因?yàn)樗鼈儽唤壎ǖ轿④浀腁ctive Directory身份驗(yàn)證機(jī)制中,該機(jī)制是基于微軟的環(huán)境的基礎(chǔ)技術(shù)。由于這些客戶已經(jīng)被鎖定,他們并不打算離開這些應(yīng)用程序平臺(tái),因?yàn)闆]有更好的替代方案。
另一方面,通過PaaS,用戶可以托管數(shù)據(jù)庫來托管機(jī)器學(xué)習(xí)和大數(shù)據(jù)計(jì)算等系統(tǒng),而這些都是基于事務(wù)計(jì)費(fèi)的。當(dāng)這些系統(tǒng)與基于容器的PaaS結(jié)合時(shí),企業(yè)客戶可以被允許構(gòu)建高度可擴(kuò)展的系統(tǒng),否則在IaaS中實(shí)現(xiàn)這些系統(tǒng)的成本將非常高,并且可以按需供應(yīng)。
到目前為止,很多這樣的系統(tǒng)都是在開源平臺(tái)上構(gòu)建的,如Hadoop或MongoDB。但是現(xiàn)在我們開始看到超大規(guī)模云供應(yīng)商也構(gòu)建他們自己的后端高度可擴(kuò)展服務(wù),這些服務(wù)與開源服務(wù)兼容,但并不相同。
一個(gè)這樣的例子是AWS最近發(fā)布的DocumentDB,這是一個(gè)托管的數(shù)據(jù)庫服務(wù),它可兼容MongoDB的API,但不使用任何實(shí)際的MongoDB代碼。
目前,用戶可以在AWS中構(gòu)建應(yīng)用程序,使用IaaS和基于容器的系統(tǒng),并將后端應(yīng)用程序構(gòu)建到DocumentDB中,稍后也可以將它們移回本地,甚至是另一個(gè)與之競(jìng)爭(zhēng)的超大規(guī)模云服務(wù)中,如微軟Azure或谷歌云平臺(tái),但這可能不是完全不受限的。
今天,許多托管服務(wù)都使用與開源服務(wù)兼容的API。因此,代碼是可移植的;它并不局限于云供應(yīng)商。
這與從一個(gè)基于SQL的數(shù)據(jù)庫移植到另一個(gè)數(shù)據(jù)庫的經(jīng)典問題并沒有完全不同,只要它們被編碼為ANSI SQL規(guī)范。在這種兼容性級(jí)別上,數(shù)據(jù)庫是否從Oracle啟動(dòng)并不重要,然后可以將其移動(dòng)到IBM DB2甚至微軟SQL Server上。
但是,隨著這些服務(wù)變得商品化,就像IaaS在計(jì)算和存儲(chǔ)方面所做的那樣,云供應(yīng)商將增加他們自己的特性增強(qiáng),這將使它們與開源對(duì)手們有所不同。軟件開發(fā)人員會(huì)喜歡這些新特性,特別是它們能夠提高性能與可擴(kuò)展性,并且能夠在事務(wù)或計(jì)算成本上節(jié)省成本。
這也是他們轉(zhuǎn)向PaaS、容器和云中微服務(wù)的首要原因之一——打造真正的“云原生”應(yīng)用。此外,他們可以專注于運(yùn)行應(yīng)用程序平臺(tái)和代碼,而不必?fù)?dān)心底層基礎(chǔ)設(shè)施。IaaS實(shí)際上只是將復(fù)雜轉(zhuǎn)移到了云中間層,所以用戶仍需擔(dān)心系統(tǒng)堆棧的維護(hù)與操作。
不過,如果為了利用性能優(yōu)化而將業(yè)務(wù)邏輯強(qiáng)行放入某個(gè)特定數(shù)據(jù)庫平臺(tái)上進(jìn)行存儲(chǔ)與運(yùn)行,那么用戶最終可能會(huì)遇到嚴(yán)重的兼容性問題。
這樣想,從Oracle轉(zhuǎn)移到IBM DB2就不是一件簡單的事了。將業(yè)務(wù)邏輯移出數(shù)據(jù)庫可能會(huì)花費(fèi)用戶大量的軟件開發(fā)時(shí)間(和金錢),因此它們可以選擇將其從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái)。
曾有一個(gè)IBM的銀行業(yè)客戶在Oracle中放置了800個(gè)存儲(chǔ)過程和觸發(fā)器,如果要?jiǎng)h除所有這些并將邏輯轉(zhuǎn)移到J2EE上的中間件中,則需要花費(fèi)數(shù)百萬美元。盡管DB2在許可方面比Oracle便宜,但是軟件開發(fā)成本要高得多。最終客戶還是選擇了使用Oracle,但還是將其遷移到不同的操作系統(tǒng)和硬件平臺(tái)(IBM的AIX和POWER)以獲得所需的性能。不過,該客戶還是被鎖定在了Oracle的數(shù)據(jù)庫中。
這樣的情況也發(fā)生在更大規(guī)模的云中。當(dāng)然,DocumentDB現(xiàn)在與MongoDB兼容了。但誰能說,五年后,這些API將是相通的呢?DocumentDB只是一個(gè)云服務(wù),一個(gè)高度可擴(kuò)展的、在云中誕生的應(yīng)用程序可能被設(shè)計(jì)成僅特定于某云供應(yīng)商的十幾種的云服務(wù)產(chǎn)品。
比如,微軟Azure的組合中有多少服務(wù)?不可勝數(shù)。當(dāng)然,其中很多都使用開源標(biāo)準(zhǔn),但是又有多少不是呢?而且,那些與開源兼容的服務(wù)將完全保持這種狀態(tài)多久? 隨著AWS、微軟、谷歌云和IBM彼此之間的競(jìng)爭(zhēng)越來越激烈,它們很可能會(huì)放棄目前的想法。
企業(yè)用戶越失去對(duì)基礎(chǔ)設(shè)施的控制,并將注意力轉(zhuǎn)移到嚴(yán)格運(yùn)行應(yīng)用程序代碼和必須依賴于托管平臺(tái)上,該平臺(tái)變得棘手的可能性就會(huì)越大,而這正是AWS和微軟等超大規(guī)模供應(yīng)商所希望的。他們想讓客戶留下。他們希望他們不斷進(jìn)行購買和交易。他們不希望客戶離開他們的云。像Office 365、Workday和Salesforce這樣的SaaS系統(tǒng)顯然是***粘性的。
其實(shí)這與擁有本地軟件平臺(tái)沒有什么不同,這些平臺(tái)是專有的,使用的代碼不容易移植到另一個(gè)平臺(tái)。不同之處在于,用戶并沒有授權(quán)這些平臺(tái),而是租用了這些平臺(tái)上的空間,這是組織中精打細(xì)算的人所喜歡的,因?yàn)檫@是一項(xiàng)運(yùn)營費(fèi)用(OPEX),而不是資本費(fèi)用(CAPEX)。
因此,用戶當(dāng)然可以設(shè)計(jì)出基于云的系統(tǒng),這些系統(tǒng)是相當(dāng)獨(dú)立且是可移植的。 但長期這樣做可能在經(jīng)濟(jì)上不可行。 對(duì)比之下,完全的云服務(wù)將比用戶在IaaS中使用虛擬機(jī)中或甚至在容器中托管的服務(wù)便宜。 而使用PaaS,權(quán)衡關(guān)鍵最終將取決于性能,功能以及成本與可移植性。
那么隨著我們?cè)絹碓揭蕾囃瓿傻脑品?wù),云鎖定是不可避免的嗎?