“云計算”作為近兩年科技圈最火爆的詞語之一,頻頻出現(xiàn)在各大媒體報刊,熱度節(jié)節(jié)攀升。云計算已然成為未來社會發(fā)展的趨勢,因此云計算廠商們也都紛紛布局云計算,一時間云計算市場暗流涌動,在市場如此火爆的時候,有人確提出了不一樣的意見?云計算時代即將終結?
我們正在面臨云計算時代的終結,我知道,這是一個大膽的聲明,甚至聽起來有點瘋狂。但請給我一點時間,聽我細細道來。
根據(jù)運行服務器應用程序的傳統(tǒng)觀點,無論是網(wǎng)絡應用還是手機應用程序的后臺,都是未來云計算的發(fā)展模式。而亞馬遜、谷歌和微軟層也在忙著為自己的云產(chǎn)品增加新的工作層,讓運行中的服務器軟件變得更加簡單方便。因此,在表面上,代碼的托管最好的選擇無疑是亞馬遜、谷歌或者微軟,他們方便、便宜且全自動化還能夠彈性使用……然而,我為什么要預測末日的到來呢,下面是我的陳述理由:
云計算無法滿足長期的擴展需求
相信在看的大家都應該知道,即使在云中,構建一個可伸縮、高度可靠、可用的web應用程序也是相當困難的。如果貴公司完成了搭建,讓自家的應用程序獲得了巨大成功,其過程規(guī)模將花費眾多財力和精力。即使業(yè)務順利運行,云端最終也將達到極限,網(wǎng)絡本身就具備限制性,計算機的速度和存儲能力比網(wǎng)絡帶寬增長速度更快。我們忽略網(wǎng)絡中立的爭論,目前,這可能不是大多數(shù)(除去Netflix和亞馬遜)的問題,但很快這些問題便會隨著時間推進而閃現(xiàn)。隨著我們從高清移動到4K到8K,我們通過網(wǎng)絡推送的數(shù)據(jù)量正在瘋狂增長,相信很快就會發(fā)生VR數(shù)據(jù)集的移動。
這個問題主要是因為我們組織網(wǎng)絡的方式引起的。有很多客戶想要獲得內(nèi)容和使用程序,卻只有相對較少的服務器擁有這些程序和內(nèi)容。就像,當有人在Slack上發(fā)布了一幅有趣的圖片時,即時坐我旁邊的20個人想看同樣的圖片,都必須從服務器上下載它,服務器需要發(fā)送20次。
當服務器遷移到了云上,即亞馬遜或者谷歌的計算機或數(shù)據(jù)中心,這些地方的網(wǎng)絡需要驚人的吞吐量來處理所有數(shù)據(jù),還需要大量的硬盤存儲每份數(shù)據(jù)并通過網(wǎng)絡推送給需要它的每一個人。而如今,隨著流媒體服務的興起,這種狀況變得更加糟糕。
云計算的集中和脆弱
集中存儲數(shù)據(jù)和程序的另一個問題是可用性和持久性。如果亞馬遜的數(shù)據(jù)中心被一顆小行星撞了或者被龍卷風摧毀了,怎么辦?或者,它在一段時間內(nèi)突然失效了,又怎么辦?存儲在機器上的數(shù)據(jù)現(xiàn)在不能被臨時訪問,甚至永久丟失。
這些問題,通常是利用多個位置存儲數(shù)據(jù)來緩解,但這僅僅意味著需要更多的數(shù)據(jù)中心。而這可能大大降低了意外損失的風險,但數(shù)據(jù)問題又能得到什么樣的解決呢?如今,所有個人信息甚至重要的公共信息都存儲在云端——在Facebook上,在谷歌Drive,iCloud,或者Dropbox等其他網(wǎng)站上,一旦這些服務發(fā)生故障或者企業(yè)資金鏈斷裂,數(shù)據(jù)的結果又會怎么樣呢?即使沒有發(fā)生上述假設,這也限制了你對數(shù)據(jù)的使用,無論何時,你必須使用他們的業(yè)務才能處理自己的數(shù)據(jù)。
云計算需要信任,但無法為此提供任何保證
你的朋友如何相信自己接收到的數(shù)據(jù)是你所發(fā)送的數(shù)據(jù),唯一的方法便是相信中間過程的傳遞。這在大多數(shù)情況下還是可以接受的,但是我們使用的網(wǎng)站和網(wǎng)絡是由在國家注冊的合法實體來運營的,這些國家的政府有能力安排中間商做很多事情。盡管大多數(shù)時間,這是一件好事,能被用來幫助解決犯罪或者協(xié)助刪除網(wǎng)絡非法內(nèi)容,但在很多情況下,這種權力顯然被濫用了。
云計算讓我們和數(shù)據(jù)一起坐以待斃
高度集中互聯(lián)網(wǎng)真正可怕的一面是個人數(shù)據(jù)的積累。對于提供服務的企業(yè)而言,我們每個人都需要利用這樣或者那樣的渠道來使用他們的服務,這便讓服務商獲取到了巨量的緩存數(shù)據(jù),有了足夠的個人信息,那么預測用戶的購買傾向、投票傾向,買房傾向甚至會有多少孩子,都會被他們的掌握。更不用說辦理信用卡和貸款業(yè)務這些信息,簡直是綽綽有余。
或許這仍然可以接受,畢竟,云計算也是值得信賴的。但是,今年早些時候,信用報告機構Equifaxlost發(fā)生了1.4億用戶的大規(guī)模數(shù)據(jù)泄露,這些數(shù)據(jù)如今是公開的。我們暫時可以將此視為十年一遇的事情,前提是我們需要更加小心盡量防止此類事件的發(fā)生。但事實上,越來越明顯的是,這樣的數(shù)據(jù)泄露事件很難完全防止,數(shù)據(jù)處于一個危險的狀況,要想真正阻止數(shù)據(jù)泄露的唯一方式就是不收集數(shù)據(jù),然而這似乎是天方夜譚。
那么,什么將取代云計算呢?
一個主要由客戶機-服務器協(xié)議(如HTTP)和基于對中央權威(如TLS)的信任的安全性是有缺陷的,并且會產(chǎn)生無法解決的問題?,F(xiàn)在是尋找更好的替代品的時候了——一個沒有其他人存儲個人數(shù)據(jù)的模型,大型的媒體文件散布在整個網(wǎng)絡,整個系統(tǒng)完全是點對點和無服務器的。
對于這個領域的新興技術,點對點是未來無法避免的方向。點對點web技術的目標是用協(xié)議和策略來取代我們熟知的web的構建塊,用以解決上面所述的大量問題。他們的目標是一個完全分布式的、永久的、冗余的數(shù)字存儲,在這個存儲中,每個參與的客戶機都在存儲其中一些數(shù)據(jù)的副本。
如果你聽說過BitTorrent,下面這些內(nèi)容應該很熟悉。在BitTorrent中,數(shù)據(jù)用戶將大數(shù)據(jù)文件分成小塊(每個都有唯一的ID),不需要中央授權。為了下載一個文件,用戶需要一個哈希內(nèi)容的指紋。BitTorrent客戶端將會找到相同文件碎片并下載的同伴,直到用戶擁有所有的文件片段。
對于找到同伴的這個過程,BitTorrent使用了一種名為Kademlia的協(xié)議,在Kademlia中,網(wǎng)絡上的每個對等點都有一個唯一的ID號,它的長度與唯一的塊ID相同。它在一個節(jié)點上存儲一個帶有特定ID的塊,該ID與塊的ID“最近”。對于塊和網(wǎng)絡節(jié)點的隨機ID,網(wǎng)絡中存儲的分布應該非常均勻。然而,不能隨意選擇塊ID,而是使用加密哈希——這是塊本身內(nèi)容的唯一指紋——Content-addressable塊。這也使得驗證塊的內(nèi)容變得很容易(通過重新計算和比較指紋),另外提供一個塊ID的保證,不可能下載到除了原始數(shù)據(jù)的其他數(shù)據(jù)。
使用內(nèi)容散列進行尋址的一個有趣的特性是,通過將一個塊的ID嵌入到另一個塊的內(nèi)容中,將兩個塊以一種不能被篡改的方式連接到一起。如果鏈接塊的內(nèi)容被改變,它的ID將會改變,鏈接將被打破。如果嵌入的鏈接發(fā)生了更改,那么包含塊的ID也會發(fā)生變化。
這一機制將一個塊的ID嵌入到另一個塊的內(nèi)容中,就可以創(chuàng)建這樣的區(qū)塊鏈,或者更復雜的結構,通常被稱為定向Acyclic圖形,或簡稱為DAGs。一個Merkle DAG的常見示例是Git存儲庫。Git將提交歷史和所有目錄和文件存儲在一個巨大的Merkle DAG中。
這就引出了基于內(nèi)容尋址的分布式存儲的另一個有趣特性:它是不可變的,內(nèi)容無法更改。相反,新的修訂存儲在現(xiàn)有版本的旁邊,在修訂之間沒有更改的塊會被重復使用,因為根據(jù)定義,它們具有相同的ID。這也意味著在這樣的存儲系統(tǒng)中不能復制相同的文件,轉(zhuǎn)換為有效的存儲。因此,在這個新網(wǎng)絡上,每一張獨特的圖片只會被存儲一次(盡管在整個存儲群中有多個冗余副本)。
Kademlia和Merkle鏈以及Merkle DAGs等協(xié)議為我們提供了工具來建立文件層次結構和修訂時間線,并在一個大規(guī)模的點對點網(wǎng)絡中共享。已經(jīng)有一些協(xié)議使用這些技術來構建符合我們需求的分布式存儲。目前看起來很有希望的便是IPFS。
通過上述技術,我們可以解決不少我在開始概述的問題:我們在鏈接到Web的設備上獲得分布式、高度冗余的存儲,并且可以追蹤文件的歷史記錄,并保存所有需要的版本,而這幾乎解決了可用性、容量、持久性和內(nèi)容驗證的問題。另外,它還搞定了帶寬問題,由于對等體之間互相發(fā)送數(shù)據(jù),因此沒有主要的熱點。
從云計算到霧計算
從云端撤離是一個令人興奮的未來。首先,在技術方面,我們應該對點對點網(wǎng)絡中進行更多的優(yōu)化。Content-addressable存儲提供了密碼驗證的內(nèi)容本身沒有一個可信的權威,但托管內(nèi)容的需求卻是永久性的(只要任何人類感興趣),目前該需求正在以相當明顯的速度提升,即使在發(fā)展中國家的邊緣(甚至在另一個星球上)也是如此,但值得注意的是:要遠離數(shù)據(jù)中心。
在某種程度上,甚至數(shù)據(jù)中心也可能成為過去。消費設備變得如此強大和無處不在,計算能力和存儲幾乎隨處可見。
對于運行web應用程序的企業(yè)來說,這一變化將會帶來顯著的成本節(jié)約,盡量少的避免構建可靠的數(shù)字產(chǎn)品。另外,企業(yè)還會減少對云計算故障停工風險的關注,更多地關注增加客戶價值。我們?nèi)匀恍枰仆泄芊掌?,但它們只是眾多同類中的一個。我們還可以看到異構應用程序,在這些應用程序中,并不是所有的對等應用程序都是相同的——在這些應用程序中,有面向消費者的對等體和后臺的工作人員,它們是同一應用程序“集群”的一部分,而訪問的差異僅在基于加密的訪問級別上。
對于企業(yè)和客戶來說,另一個巨大的好處是客戶數(shù)據(jù)的處理。當不再需要集中存儲大量客戶信息時,丟失這些數(shù)據(jù)的風險就會降低。軟件工程領域的領導者(如Erlang的創(chuàng)始人Joe Armstrong)長期以來一直認為, 客戶將數(shù)據(jù)發(fā)送給企業(yè)所有程序的互聯(lián)網(wǎng)設計是倒退的,我們應該將數(shù)據(jù)定向發(fā)送給客戶,以執(zhí)行他們私人持有的部分,而這些數(shù)據(jù)是不會直接共享的。這樣的模型似乎更安全,也不會以任何方式妨礙企業(yè)收集他們所需要的有用的客戶指標。
沒有任何方式能夠阻止某些服務不透明且持有私有數(shù)據(jù)。這種類型的應用程序架構似乎是一個更私密的做大規(guī)模計算和軟件服務的方法——一種更接近于開放信息交換意愿的互聯(lián)網(wǎng), 任何人都可以輕松地向其他人發(fā)布內(nèi)容,并控制可以發(fā)布和訪問的內(nèi)容是由網(wǎng)絡用戶共同決定的,而不是由擁有服務器的私人實體決定的。
(原標題:云計算時代即將終結?這些理由夠不夠)