時間:2018-09-25
作者:Tyler Treat是幫助公司構建云軟件的Real Kinetic的執(zhí)行合伙人。之前在Apcera公司,他負責開發(fā)NATS,這是一種面向云原生應用程序的開源高性能消息傳遞系統(tǒng)。
與客戶的多次談話中常聽到多云。我們希望做到與云無關,我們需要避免供應商鎖定。我們希望能夠在多家云提供商之間無縫地轉移工作負載。我要再強調一下:多云是個陷阱。除了取悅可能不太熱衷于在亞馬遜數(shù)據(jù)中心運行工作負載的少數(shù)幾家大零售商外,我想不出多云應受到任何規(guī)模的企業(yè)組織優(yōu)先重視的諸多理由。
乍一看,多云策略看似很棒,但它帶來不必要的約束,導致勞而無功。對于大多數(shù)人來說,它最終會分散注意力,帶來的問題比解決的問題還多,得不償失。眼下,我所說的“多云”是指這個想法:在多家供應商的平臺上運行同樣的服務,或者設計應用程序時確保它們可以在多家提供商之間順暢移動。我不是指這個概念:充分利用每家云提供商的最佳服務,或者跨提供商使用更高級別的增值服務。
多云因諸多原因而備受關注,但主要分為以下幾點:災難恢復、供應商鎖定和定價。我會深入闡述這每一點,然后討論多云在哪里確實派得上用場。
災難恢復
多云號稱是實施災難恢復的一種手段。討論災難恢復時,清楚地了解云提供商如何工作很重要。像AWS、GCP和Azure這些公共云提供商有區(qū)域和可用區(qū)這個概念(Azure最近才在某些區(qū)域推出了可用區(qū),它在經(jīng)歷了慘痛的教訓后明白可用區(qū)是好主意)。區(qū)域是某個特定地理區(qū)域內的數(shù)據(jù)中心集合。可用區(qū)是一個區(qū)域內的一個或多個數(shù)據(jù)中心。每個可用區(qū)由專用的網(wǎng)絡連接和電源后備系統(tǒng)加以隔離,區(qū)域中的可用區(qū)由低延遲鏈路進行連接??捎脜^(qū)可能在同一建筑物(配備獨立的計算、電源和散熱等系統(tǒng)),也可能完全分離,相隔數(shù)百英里。
波及整個區(qū)域的故障很少見。一旦發(fā)生,這是備受矚目的事件,因為它通常意味著半個互聯(lián)網(wǎng)癱瘓了。由于可用區(qū)本身從某種程度上來說在地理位置上是孤立的,肆虐整個區(qū)域的自然災害基本上相當于摧毀弗吉尼亞州的隕石。區(qū)域故障的更常見原因是配置錯誤及其他操作錯誤。雖然很少見,但確實會發(fā)生。然而,區(qū)域高度隔離,提供商在交錯的時間窗口對它們進行維護,以避免多區(qū)域故障。
這倒不是說多區(qū)域的故障不可能(這與隕石摧毀美國大陸的一半面積或某個奇怪的連鎖故障是同一個道理)。一些骨干基礎設施服務可能跨越多個區(qū)域,這可能導致更大規(guī)模的事件。雖然采用多家云提供商顯然比一家提供商的多區(qū)域策略來得安全,但是這么做成本很高。災難恢復是個極其復雜的話題,我認為它沒有得到充分的認識;我認為,實際上云端可移植性對于盡量降低那些成本而言收效甚微。不是說非得有多云才能擁有強大的災難恢復策略――除非你的運營規(guī)模達到谷歌或亞馬遜的程度。畢竟,亞馬遜是世界上最大的零售商之一,所以如果你的災難恢復策略能與它的策略相匹敵,你的情況可能已相當好。
供應商鎖定
供應商鎖定及相關的恐懼、不確定和疑慮(FUD)是主張采用多云策略的另一個常提到的原因。博•利頓(Beau Lyddon)在《別再浪費你的啤酒錢》(https://blog.realkinetic.com/stop-wasting-your-beer-money-12c3fe5e4d54)一文中提到了這點:
云、DevOps、Serverless。這些都是為了將常見需求包裝成商品而搞起來的潮流和市場。它們可能不是完美的解決方案。是的,你最終可能會“被鎖定”。但我認為,這個險值得冒一下。它沒有聽起來那么糟糕。Tim O'Reilly有句話概括了這一點:
之所以有“鎖定”,是由于別人得益于你的服務,而不是由于你完全掌控。
我們被鎖定,是由于得益于某服務。首先,這意味著我們在充分享用該服務帶來的價值。而且作為一群消費者,我們享有的遠不止這些。那些提供商會盡其所能,繼續(xù)提供我們受益的價值。這推動其收入增長。正如O'Reilly指出,提供商實際上擁有的控制力比你想象的要弱。它們會構建它們認為有利于市場最大群體的系統(tǒng)。它們會專注于我們(市場上的參與者)注重的東西。
競爭是另一個重要因素。連AWS這樣強大的提供商,也有很多云提供商與之競爭。雖然競爭對手試圖為它們認為的市場缺口提供差異化的解決方案,但也需要滿足基本需求。這就是為什么我們看到這些提供商提供如此多共有的服務。這一切有利于我們。我們應充分利用提供給我們的這一切。是的,從一家提供商轉移到另一家仍會有成本,但我認為這些成本實際上遠低于從本地轉移到云端的成本。一旦你真正接觸云,就獲得了靈活性。
我看到許多公司為避免供應商鎖定而經(jīng)歷的心理活動和贊同多云的諸多“理由”總是令我震驚。令人費解的是,公司企業(yè)卻愿意把大把的錢花在根本無法讓它們實現(xiàn)差異化的東西上。
我覺得這有幾個原因。首先,正如博指出的那樣,我們往往高估自己的能力,低估自己的成本。這導致我們對自建與外購這個決策判斷失誤。這也與宜家效應(IKEA effect)密切相關;宜家效應是指,消費者對于他們部分創(chuàng)造的產品賦予了高得不成比例的價值。其次,由于企業(yè)組織中的權力和影響力由IT轉向業(yè)務,尤其是奉行產品理念,我認為這是IT運維部門又一次試圖保住控制權和地位。
做到與云無關應該不是驅動關鍵決策的一個足夠重要的目標。如果與云無關是你的出發(fā)點,你其實在嚴重限制全面獲得云帶來的好處的能力。你只是在租用計算機而已。Pivotal Cloud Foundry和Red Hat OpenShift之類的平臺宣稱能夠在各大私有云和公共云上運行,但這么做本身勢必需要一個抽象層將每個云平臺的所有差異化功能抽取出來。如果你將差異化功能抽取出來避免鎖定,你也就把價值抽取出來。你最終被供應商“鎖在門外”,這基本上意味著你無法充分享用服務的價值。抽象是不是將系統(tǒng)簡化為一個通用接口不好說。如果真是如此,不清楚它如何利用差異化的提供商功能、保持與云無關。如果不是,不清楚它的價值是什么或者它如何做到真正多云。
別對PCF或Red Hat過于刁難,但由于各大云提供商繼續(xù)拆分自己的平臺、以更大眾化的方式重新捆綁它們,這些多云平臺的賣點開始減少。在Kubernetes和容器之前的時代,即平臺即服務(PaaS)的全盛時期,提供商在講令人信服的故事。現(xiàn)在,由于容器、Kubernetes、尤其是谷歌的GKE和GKE On-Prem(以及其他提供商的同類產品)這類系統(tǒng)日漸流行,這個故事越來越難有市場。值得關注的是,最近宣布的Knative是與Pivotal和Red Hat及其他公司密切合作開發(fā)而成的,此舉似乎是為了借助Kubernetes的勢頭,從企業(yè)采用Serverless計算中獲取一些價值。
但有人需要將這些多云平臺作為一種服務來運行,但問題就出在這里。這個責任通常轉移到了運維或共享服務團隊,這個團隊現(xiàn)在需要在多個云中運行,可能要與供應商簽訂服務合同。
部署多云需要多個云平臺的專業(yè)知識。PaaS可能會替開發(fā)人員將這部分抽取出來,但轉移到運維人員身上。而我們甚至還沒有探討認證多個平臺在安全和合規(guī)方面帶來的影響。對于現(xiàn)在剛遷移到云的一些公司而言,這會嚴重破壞現(xiàn)狀。一旦我們識破了不切實際的營銷噱頭,就真正深入了解多云的意義。
運行PaaS卻不為客戶管理PaaS,這年頭根本沒多少發(fā)展空間。對任何公司來說這根本不具有戰(zhàn)略意義。我還想指出,像Pivotal和Red Hat這樣的公司其收入來源主要是服務。這些平臺起到了推動專業(yè)服務收入的作用。
一般而言,非戰(zhàn)略性系統(tǒng)被供應商鎖定給公司帶來的風險很低。以數(shù)據(jù)庫存儲數(shù)據(jù)為例。無論是Amazon DynamoDB、Google Cloud Datastore還是Azure Cosmos DB,可能存在技術上的差異,比如NoSQL、關系數(shù)據(jù)庫、與ANSI兼容的SQL和專有數(shù)據(jù)庫等,從根本上來說,它們就是導入數(shù)據(jù)、輸出數(shù)據(jù)。在這些數(shù)據(jù)庫之間移動數(shù)據(jù)可能涉及技術活,但并非不可克服,我們從使用數(shù)據(jù)庫獲得的好處遠壓倒這個成本。依賴核心戰(zhàn)略系統(tǒng)時,供應商鎖定才會成為問題。這種系統(tǒng)可能執(zhí)行實際的業(yè)務邏輯,或者是支撐公司業(yè)務的關鍵因素。正如喬爾•斯波斯基(Joel Spolsky)所說:“如果是核心業(yè)務職能,無論如何都要自己搞。選擇你的核心業(yè)務能力和目標,在內部來搞。”詳見https://www.joelonsoftware.com/2001/10/14/in-defense-of-not-invented-here-syndrome/。
定價
在支持多云的所有理由中,價格競爭力是最弱的一個理由。實際上,隨著商品化程度越來越高,所有供應商都在比誰的成本最低。在提供者之間,你最終會在某些方面花費較多、另一些方面花費較少。多云價格套利(price arbitrage)是很不切實際的。另外,它沒有考慮到批量折扣。我在比較AWS和GCP的文章中提到,這其實更多地歸結為你在選擇云提供商時想把資源投入到哪里。
定價的鎖定方面(即供應商把你鎖定后抬高價格)根本講不通。首先,規(guī)模經(jīng)濟效應不是這樣運作的。一旦你進入云端,從一家提供商換成另一家的成本遠低于你在本地環(huán)境時的成本,所以這根本不符合提供商的最佳利益。它們會采取必要措施來搶占市場的最大群體,競爭力量會把基礎設施即服務(IaaS)的成本降下來。由于競爭環(huán)境和贏得奪取市場份額,定價可能會趨同。云提供商想要提高利潤率,就需要向軟件即服務(SaaS)和增值服務邁進。
此外,大多數(shù)公共云提供商提供批量折扣。比如說,AWS提供預留實例,為EC2提供高達75%的折扣。其他AWS服務也有批量折扣,亞馬遜使用合并計賬來合并一家企業(yè)中所有帳戶的使用情況,以便盡量降低總價。GCP提供持續(xù)使用折扣,這是在計賬月的大部分時間運行GCE實例時自動享受的折扣。它們還實施所謂的推理實例,將部分使用的實例拼裝成單個實例,防止更換實例時享受不了折扣。最后,GCP同樣有相當于亞馬遜預留實例的承諾使用折扣。如果資源分布在多家云提供商,要享受這樣的折扣比較難。
多云在哪里派得上用場
沒錯,對于大多數(shù)企業(yè)組織而言,多云會分散注意力,并且通常如此。如果你是一家剛開始關注云的公司,多云毫無意義,只會讓你看不到真正重要的東西。它會減慢速度,埋下FUD的苦果。
一些公司試圖同時在多家提供商的平臺上搞擴建,希望以此規(guī)避所有雞蛋放在一只籃子里的風險。我認為這適得其反,實際上會加大結果失敗的風險。對于小公司而言,挑選一家供應商,致力于產品化。盡量利用托管服務,別拿多云作為不利用托管服務的理由。對于大公司而言,在多家提供商的平臺上搞擴建不是不合理,但應該通過有節(jié)制的試驗來搞。而這是云的優(yōu)點之一,我們可以進行有限的投入和試驗,無需大筆的前期支出,面對多云PaaS產品和服務合同時要注意這一點。
但這并不意味著多云就沒有一席之地。事情從來沒有這么絕對。對于有多個業(yè)務部門的大企業(yè)而言,多云是不可避免的。這可能是成熟程度不一的產品團隊、企業(yè)IT基礎設施,當然還有企業(yè)并購的結果。多云的主要價值是充分利用每個云的優(yōu)勢,這也是我認為贊同多云的少數(shù)理由之一。這回到了提供商向上游邁進的話題。提供商試圖以增值服務實現(xiàn)差異化時,多云開始變得更有意義。其次,由于數(shù)據(jù)主權方面的原因,多云可能有其必要性,但我認為隨著區(qū)域和可用區(qū)普及開來,數(shù)據(jù)主權越來越不是問題。然而,谷歌的Cloud Spanner等一些服務可能因“全球可用的”服務而放棄可用區(qū)的細粒度,因此在應對GDPR之類的法規(guī)時要注意這一點。最后,對于擁有主機托管設施的企業(yè)而言,混合云始終是現(xiàn)實的選擇,不過將主機托管設施擴展到多個云提供商的平臺時會變得很復雜。
如果你剛開始接觸云,多云策略不該是你要操心的。它絕對不該是你的指導目標和推動貴公司核心決策或戰(zhàn)略項目的東西。它是有一席之地,但往往是徒勞無益的,只會分散注意心,因而忽視真正重要的東西。
Copyright © 2017-2024 河南中瀚安全技術有限公司 版權所有 豫ICP備18011434號-1 豫公網(wǎng)安備 41019702002746號