討論 | 多云是個(gè)陷阱根本派不上用場(chǎng)?
與客戶的多次談話中常聽(tīng)到多云。我們希望做到與云無(wú)關(guān),我們需要避免供應(yīng)商鎖定。我們希望能夠在多家云提供商之間無(wú)縫地轉(zhuǎn)移工作負(fù)載。我要再?gòu)?qiáng)調(diào)一下:多云是個(gè)陷阱。除了取悅可能不太熱衷于在亞馬遜數(shù)據(jù)中心運(yùn)行工作負(fù)載的少數(shù)幾家大零售商外,我想不出多云應(yīng)受到任何規(guī)模的企業(yè)組織優(yōu)先重視的諸多理由。
乍一看,多云策略看似很棒,但它帶來(lái)不必要的約束,導(dǎo)致勞而無(wú)功。對(duì)于大多數(shù)人來(lái)說(shuō),它最終會(huì)分散注意力,帶來(lái)的問(wèn)題比解決的問(wèn)題還多,得不償失。眼下,我所說(shuō)的“多云”是指這個(gè)想法:在多家供應(yīng)商的平臺(tái)上運(yùn)行同樣的服務(wù),或者設(shè)計(jì)應(yīng)用程序時(shí)確保它們可以在多家提供商之間順暢移動(dòng)。我不是指這個(gè)概念:充分利用每家云提供商的最佳服務(wù),或者跨提供商使用更高級(jí)別的增值服務(wù)。
多云因諸多原因而備受關(guān)注,但主要分為以下幾點(diǎn):災(zāi)難恢復(fù)、供應(yīng)商鎖定和定價(jià)。我會(huì)深入闡述這每一點(diǎn),然后討論多云在哪里確實(shí)派得上用場(chǎng)。
災(zāi)難恢復(fù)
多云號(hào)稱是實(shí)施災(zāi)難恢復(fù)的一種手段。討論災(zāi)難恢復(fù)時(shí),清楚地了解云提供商如何工作很重要。像AWS、GCP和Azure這些公共云提供商有區(qū)域和可用區(qū)這個(gè)概念(Azure最近才在某些區(qū)域推出了可用區(qū),它在經(jīng)歷了慘痛的教訓(xùn)后明白可用區(qū)是好主意)。區(qū)域是某個(gè)特定地理區(qū)域內(nèi)的數(shù)據(jù)中心集合??捎脜^(qū)是一個(gè)區(qū)域內(nèi)的一個(gè)或多個(gè)數(shù)據(jù)中心。每個(gè)可用區(qū)由專用的網(wǎng)絡(luò)連接和電源后備系統(tǒng)加以隔離,區(qū)域中的可用區(qū)由低延遲鏈路進(jìn)行連接。可用區(qū)可能在同一建筑物(配備獨(dú)立的計(jì)算、電源和散熱等系統(tǒng)),也可能完全分離,相隔數(shù)百英里。
波及整個(gè)區(qū)域的故障很少見(jiàn)。一旦發(fā)生,這是備受矚目的事件,因?yàn)樗ǔR馕吨雮€(gè)互聯(lián)網(wǎng)癱瘓了。由于可用區(qū)本身從某種程度上來(lái)說(shuō)在地理位置上是孤立的,肆虐整個(gè)區(qū)域的自然災(zāi)害基本上相當(dāng)于摧毀弗吉尼亞州的隕石。區(qū)域故障的更常見(jiàn)原因是配置錯(cuò)誤及其他操作錯(cuò)誤。雖然很少見(jiàn),但確實(shí)會(huì)發(fā)生。然而,區(qū)域高度隔離,提供商在交錯(cuò)的時(shí)間窗口對(duì)它們進(jìn)行維護(hù),以避免多區(qū)域故障。
這倒不是說(shuō)多區(qū)域的故障不可能(這與隕石摧毀美國(guó)大陸的一半面積或某個(gè)奇怪的連鎖故障是同一個(gè)道理)。一些骨干基礎(chǔ)設(shè)施服務(wù)可能跨越多個(gè)區(qū)域,這可能導(dǎo)致更大規(guī)模的事件。雖然采用多家云提供商顯然比一家提供商的多區(qū)域策略來(lái)得安全,但是這么做成本很高。災(zāi)難恢復(fù)是個(gè)極其復(fù)雜的話題,我認(rèn)為它沒(méi)有得到充分的認(rèn)識(shí);我認(rèn)為,實(shí)際上云端可移植性對(duì)于盡量降低那些成本而言收效甚微。不是說(shuō)非得有多云才能擁有強(qiáng)大的災(zāi)難恢復(fù)策略――除非你的運(yùn)營(yíng)規(guī)模達(dá)到谷歌或亞馬遜的程度。畢竟,亞馬遜是世界上最大的零售商之一,所以如果你的災(zāi)難恢復(fù)策略能與它的策略相匹敵,你的情況可能已相當(dāng)好。
供應(yīng)商鎖定
供應(yīng)商鎖定及相關(guān)的恐懼、不確定和疑慮(FUD)是主張采用多云策略的另一個(gè)常提到的原因。博•利頓(Beau Lyddon)在《別再浪費(fèi)你的啤酒錢(qián)》(https://blog.realkinetic.com/stop-wasting-your-beer-money-12c3fe5e4d54)一文中提到了這點(diǎn):
云、DevOps、Serverless。這些都是為了將常見(jiàn)需求包裝成商品而搞起來(lái)的潮流和市場(chǎng)。它們可能不是完美的解決方案。是的,你最終可能會(huì)“被鎖定”。但我認(rèn)為,這個(gè)險(xiǎn)值得冒一下。它沒(méi)有聽(tīng)起來(lái)那么糟糕。Tim O'Reilly有句話概括了這一點(diǎn):
之所以有“鎖定”,是由于別人得益于你的服務(wù),而不是由于你完全掌控。
我們被鎖定,是由于得益于某服務(wù)。首先,這意味著我們?cè)诔浞窒碛迷摲?wù)帶來(lái)的價(jià)值。而且作為一群消費(fèi)者,我們享有的遠(yuǎn)不止這些。那些提供商會(huì)盡其所能,繼續(xù)提供我們受益的價(jià)值。這推動(dòng)其收入增長(zhǎng)。正如O'Reilly指出,提供商實(shí)際上擁有的控制力比你想象的要弱。它們會(huì)構(gòu)建它們認(rèn)為有利于市場(chǎng)最大群體的系統(tǒng)。它們會(huì)專注于我們(市場(chǎng)上的參與者)注重的東西。
競(jìng)爭(zhēng)是另一個(gè)重要因素。連AWS這樣強(qiáng)大的提供商,也有很多云提供商與之競(jìng)爭(zhēng)。雖然競(jìng)爭(zhēng)對(duì)手試圖為它們認(rèn)為的市場(chǎng)缺口提供差異化的解決方案,但也需要滿足基本需求。這就是為什么我們看到這些提供商提供如此多共有的服務(wù)。這一切有利于我們。我們應(yīng)充分利用提供給我們的這一切。是的,從一家提供商轉(zhuǎn)移到另一家仍會(huì)有成本,但我認(rèn)為這些成本實(shí)際上遠(yuǎn)低于從本地轉(zhuǎn)移到云端的成本。一旦你真正接觸云,就獲得了靈活性。
我看到許多公司為避免供應(yīng)商鎖定而經(jīng)歷的心理活動(dòng)和贊同多云的諸多“理由”總是令我震驚。令人費(fèi)解的是,公司企業(yè)卻愿意把大把的錢(qián)花在根本無(wú)法讓它們實(shí)現(xiàn)差異化的東西上。

我覺(jué)得這有幾個(gè)原因。首先,正如博指出的那樣,我們往往高估自己的能力,低估自己的成本。這導(dǎo)致我們對(duì)自建與外購(gòu)這個(gè)決策判斷失誤。這也與宜家效應(yīng)(IKEA effect)密切相關(guān);宜家效應(yīng)是指,消費(fèi)者對(duì)于他們部分創(chuàng)造的產(chǎn)品賦予了高得不成比例的價(jià)值。其次,由于企業(yè)組織中的權(quán)力和影響力由IT轉(zhuǎn)向業(yè)務(wù),尤其是奉行產(chǎn)品理念,我認(rèn)為這是IT運(yùn)維部門(mén)又一次試圖保住控制權(quán)和地位。
做到與云無(wú)關(guān)應(yīng)該不是驅(qū)動(dòng)關(guān)鍵決策的一個(gè)足夠重要的目標(biāo)。如果與云無(wú)關(guān)是你的出發(fā)點(diǎn),你其實(shí)在嚴(yán)重限制全面獲得云帶來(lái)的好處的能力。你只是在租用計(jì)算機(jī)而已。Pivotal Cloud Foundry和Red Hat OpenShift之類的平臺(tái)宣稱能夠在各大私有云和公共云上運(yùn)行,但這么做本身勢(shì)必需要一個(gè)抽象層將每個(gè)云平臺(tái)的所有差異化功能抽取出來(lái)。如果你將差異化功能抽取出來(lái)避免鎖定,你也就把價(jià)值抽取出來(lái)。你最終被供應(yīng)商“鎖在門(mén)外”,這基本上意味著你無(wú)法充分享用服務(wù)的價(jià)值。抽象是不是將系統(tǒng)簡(jiǎn)化為一個(gè)通用接口不好說(shuō)。如果真是如此,不清楚它如何利用差異化的提供商功能、保持與云無(wú)關(guān)。如果不是,不清楚它的價(jià)值是什么或者它如何做到真正多云。
別對(duì)PCF或Red Hat過(guò)于刁難,但由于各大云提供商繼續(xù)拆分自己的平臺(tái)、以更大眾化的方式重新捆綁它們,這些多云平臺(tái)的賣點(diǎn)開(kāi)始減少。在Kubernetes和容器之前的時(shí)代,即平臺(tái)即服務(wù)(PaaS)的全盛時(shí)期,提供商在講令人信服的故事?,F(xiàn)在,由于容器、Kubernetes、尤其是谷歌的GKE和GKE On-Prem(以及其他提供商的同類產(chǎn)品)這類系統(tǒng)日漸流行,這個(gè)故事越來(lái)越難有市場(chǎng)。值得關(guān)注的是,最近宣布的Knative是與Pivotal和Red Hat及其他公司密切合作開(kāi)發(fā)而成的,此舉似乎是為了借助Kubernetes的勢(shì)頭,從企業(yè)采用Serverless計(jì)算中獲取一些價(jià)值。
但有人需要將這些多云平臺(tái)作為一種服務(wù)來(lái)運(yùn)行,但問(wèn)題就出在這里。這個(gè)責(zé)任通常轉(zhuǎn)移到了運(yùn)維或共享服務(wù)團(tuán)隊(duì),這個(gè)團(tuán)隊(duì)現(xiàn)在需要在多個(gè)云中運(yùn)行,可能要與供應(yīng)商簽訂服務(wù)合同。

部署多云需要多個(gè)云平臺(tái)的專業(yè)知識(shí)。PaaS可能會(huì)替開(kāi)發(fā)人員將這部分抽取出來(lái),但轉(zhuǎn)移到運(yùn)維人員身上。而我們甚至還沒(méi)有探討認(rèn)證多個(gè)平臺(tái)在安全和合規(guī)方面帶來(lái)的影響。對(duì)于現(xiàn)在剛遷移到云的一些公司而言,這會(huì)嚴(yán)重破壞現(xiàn)狀。一旦我們識(shí)破了不切實(shí)際的營(yíng)銷噱頭,就真正深入了解多云的意義。
運(yùn)行PaaS卻不為客戶管理PaaS,這年頭根本沒(méi)多少發(fā)展空間。對(duì)任何公司來(lái)說(shuō)這根本不具有戰(zhàn)略意義。我還想指出,像Pivotal和Red Hat這樣的公司其收入來(lái)源主要是服務(wù)。這些平臺(tái)起到了推動(dòng)專業(yè)服務(wù)收入的作用。
一般而言,非戰(zhàn)略性系統(tǒng)被供應(yīng)商鎖定給公司帶來(lái)的風(fēng)險(xiǎn)很低。以數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)為例。無(wú)論是Amazon DynamoDB、Google Cloud Datastore還是Azure Cosmos DB,可能存在技術(shù)上的差異,比如NoSQL、關(guān)系數(shù)據(jù)庫(kù)、與ANSI兼容的SQL和專有數(shù)據(jù)庫(kù)等,從根本上來(lái)說(shuō),它們就是導(dǎo)入數(shù)據(jù)、輸出數(shù)據(jù)。在這些數(shù)據(jù)庫(kù)之間移動(dòng)數(shù)據(jù)可能涉及技術(shù)活,但并非不可克服,我們從使用數(shù)據(jù)庫(kù)獲得的好處遠(yuǎn)壓倒這個(gè)成本。依賴核心戰(zhàn)略系統(tǒng)時(shí),供應(yīng)商鎖定才會(huì)成為問(wèn)題。這種系統(tǒng)可能執(zhí)行實(shí)際的業(yè)務(wù)邏輯,或者是支撐公司業(yè)務(wù)的關(guān)鍵因素。正如喬爾•斯波斯基(Joel Spolsky)所說(shuō):“如果是核心業(yè)務(wù)職能,無(wú)論如何都要自己搞。選擇你的核心業(yè)務(wù)能力和目標(biāo),在內(nèi)部來(lái)搞。”詳見(jiàn)https://www.joelonsoftware.com/2001/10/14/in-defense-of-not-invented-here-syndrome/。
定價(jià)
在支持多云的所有理由中,價(jià)格競(jìng)爭(zhēng)力是最弱的一個(gè)理由。實(shí)際上,隨著商品化程度越來(lái)越高,所有供應(yīng)商都在比誰(shuí)的成本最低。在提供者之間,你最終會(huì)在某些方面花費(fèi)較多、另一些方面花費(fèi)較少。多云價(jià)格套利(price arbitrage)是很不切實(shí)際的。另外,它沒(méi)有考慮到批量折扣。我在比較AWS和GCP的文章中提到,這其實(shí)更多地歸結(jié)為你在選擇云提供商時(shí)想把資源投入到哪里。
定價(jià)的鎖定方面(即供應(yīng)商把你鎖定后抬高價(jià)格)根本講不通。首先,規(guī)模經(jīng)濟(jì)效應(yīng)不是這樣運(yùn)作的。一旦你進(jìn)入云端,從一家提供商換成另一家的成本遠(yuǎn)低于你在本地環(huán)境時(shí)的成本,所以這根本不符合提供商的最佳利益。它們會(huì)采取必要措施來(lái)?yè)屨际袌?chǎng)的最大群體,競(jìng)爭(zhēng)力量會(huì)把基礎(chǔ)設(shè)施即服務(wù)(IaaS)的成本降下來(lái)。由于競(jìng)爭(zhēng)環(huán)境和贏得奪取市場(chǎng)份額,定價(jià)可能會(huì)趨同。云提供商想要提高利潤(rùn)率,就需要向軟件即服務(wù)(SaaS)和增值服務(wù)邁進(jìn)。
此外,大多數(shù)公共云提供商提供批量折扣。比如說(shuō),AWS提供預(yù)留實(shí)例,為EC2提供高達(dá)75%的折扣。其他AWS服務(wù)也有批量折扣,亞馬遜使用合并計(jì)賬來(lái)合并一家企業(yè)中所有帳戶的使用情況,以便盡量降低總價(jià)。GCP提供持續(xù)使用折扣,這是在計(jì)賬月的大部分時(shí)間運(yùn)行GCE實(shí)例時(shí)自動(dòng)享受的折扣。它們還實(shí)施所謂的推理實(shí)例,將部分使用的實(shí)例拼裝成單個(gè)實(shí)例,防止更換實(shí)例時(shí)享受不了折扣。最后,GCP同樣有相當(dāng)于亞馬遜預(yù)留實(shí)例的承諾使用折扣。如果資源分布在多家云提供商,要享受這樣的折扣比較難。
多云在哪里派得上用場(chǎng)
沒(méi)錯(cuò),對(duì)于大多數(shù)企業(yè)組織而言,多云會(huì)分散注意力,并且通常如此。如果你是一家剛開(kāi)始關(guān)注云的公司,多云毫無(wú)意義,只會(huì)讓你看不到真正重要的東西。它會(huì)減慢速度,埋下FUD的苦果。
一些公司試圖同時(shí)在多家提供商的平臺(tái)上搞擴(kuò)建,希望以此規(guī)避所有雞蛋放在一只籃子里的風(fēng)險(xiǎn)。我認(rèn)為這適得其反,實(shí)際上會(huì)加大結(jié)果失敗的風(fēng)險(xiǎn)。對(duì)于小公司而言,挑選一家供應(yīng)商,致力于產(chǎn)品化。盡量利用托管服務(wù),別拿多云作為不利用托管服務(wù)的理由。對(duì)于大公司而言,在多家提供商的平臺(tái)上搞擴(kuò)建不是不合理,但應(yīng)該通過(guò)有節(jié)制的試驗(yàn)來(lái)搞。而這是云的優(yōu)點(diǎn)之一,我們可以進(jìn)行有限的投入和試驗(yàn),無(wú)需大筆的前期支出,面對(duì)多云PaaS產(chǎn)品和服務(wù)合同時(shí)要注意這一點(diǎn)。
但這并不意味著多云就沒(méi)有一席之地。事情從來(lái)沒(méi)有這么絕對(duì)。對(duì)于有多個(gè)業(yè)務(wù)部門(mén)的大企業(yè)而言,多云是不可避免的。這可能是成熟程度不一的產(chǎn)品團(tuán)隊(duì)、企業(yè)IT基礎(chǔ)設(shè)施,當(dāng)然還有企業(yè)并購(gòu)的結(jié)果。多云的主要價(jià)值是充分利用每個(gè)云的優(yōu)勢(shì),這也是我認(rèn)為贊同多云的少數(shù)理由之一。這回到了提供商向上游邁進(jìn)的話題。提供商試圖以增值服務(wù)實(shí)現(xiàn)差異化時(shí),多云開(kāi)始變得更有意義。其次,由于數(shù)據(jù)主權(quán)方面的原因,多云可能有其必要性,但我認(rèn)為隨著區(qū)域和可用區(qū)普及開(kāi)來(lái),數(shù)據(jù)主權(quán)越來(lái)越不是問(wèn)題。然而,谷歌的Cloud Spanner等一些服務(wù)可能因“全球可用的”服務(wù)而放棄可用區(qū)的細(xì)粒度,因此在應(yīng)對(duì)GDPR之類的法規(guī)時(shí)要注意這一點(diǎn)。最后,對(duì)于擁有主機(jī)托管設(shè)施的企業(yè)而言,混合云始終是現(xiàn)實(shí)的選擇,不過(guò)將主機(jī)托管設(shè)施擴(kuò)展到多個(gè)云提供商的平臺(tái)時(shí)會(huì)變得很復(fù)雜。
如果你剛開(kāi)始接觸云,多云策略不該是你要操心的。它絕對(duì)不該是你的指導(dǎo)目標(biāo)和推動(dòng)貴公司核心決策或戰(zhàn)略項(xiàng)目的東西。它是有一席之地,但往往是徒勞無(wú)益的,只會(huì)分散注意心,因而忽視真正重要的東西。
作者:Tyler Treat是幫助公司構(gòu)建云軟件的Real Kinetic的執(zhí)行合伙人。之前在Apcera公司,他負(fù)責(zé)開(kāi)發(fā)NATS,這是一種面向云原生應(yīng)用程序的開(kāi)源高性能消息傳遞系統(tǒng)。