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