您的位置:首頁>正文

一個來自技術諮詢公司的預測:雲時代即將終結

技術諮詢公司 Red Badger 的技術負責人 Viktor Charypar 提出了一個大膽甚至有點瘋狂的想法:雲時代即將終結。

通過 Web 應用程式或移動程式後端運行伺服器應用程式就是雲技術的未來了, 為使雲服務更易使用, 亞馬遜、穀歌和微軟正向其雲服務中添加更多的工具層, 這以讓使用者覺得自己把密碼都存在 AWS、GCP 或者 Azure就可以, 方便, 節約成本, 容易自動化, 還能擴充記憶體, 然而 Victor 為什麼會預測這些都會終結呢?

他提出了幾個原因:

雲技術無法滿足長期的擴展需求。 要構建一個可擴展、可靠同時具備高利用率的網站應用程式, 即使是在雲平臺上也是相當困難的。 即使成功, 也將付出巨大的金錢和精力成本, 而且這樣的成功也衝擊了雲技術、網站技術的極限:電腦的運行速度和存儲能力的增長比網路頻寬快。 如果忽視網上的辯論, 現在這些對大多數人來說(除了 Netflix 和 亞馬遜)都沒什麼影響,

但很快就會有了。 隨著網路視頻解析度從 HD 到 4K 再到 8K, 很快還會有 VR 資料集的傳輸, 人們向網路上傳輸的資料量迅速增長。

這一問題出現的主要原因是現在的組織網路方式。 很多使用者想要從網路上獲取內容, 但只有少數人有內容資源。 當有人在 Slack 上上傳了一張貓的趣圖時, 如果同時有 20 人想要看這張圖片, 這 20 人需要從同一個伺服器上進行下載, 那麼這個伺服器就要發送 20 次數據。

隨著資料服務轉向雲平臺, 對於亞馬遜或穀歌的電腦而言, 每天要處理我們難以想像的資料量, 同時還需要大量的硬碟驅動器來存儲每個使用者的資料, 以及將資料定點推送出去的 CPU。 隨著流媒體服務的興起, 情況變得更糟了。

所有這些活動都需要大量成本, 這讓整個服務系統效率低下, 價格昂貴且不環保。

過程集中但不安全。 集中存儲和處理資料的另一個問題是可用性和持久性。 如果亞馬遜的資料中心遭遇了洪水、小行星或龍捲風的襲擊, 或者, 不這麼誇張, 短時間斷電會怎麼樣?存儲的資料會暫時無法獲取或直接永久性丟失。

服務要求朋友間的信任, 但沒有保障。 此時, 只有通過可靠的中間人和用戶自身的誠信才能取信朋友。 多數情況下沒什麼問題, 網站經過合法註冊, 可以用來解決犯罪或移除網站上的違法內容, 但也有權力濫用的時候。

當前系統中使用者資料更易攻擊。 高度集中的網路真正可怕的一面是私人資料的積累。 一些大公司向人們提供必須的網路服務, 使用過程中使用者產生的資料給了公司足夠的資訊進行分析:用戶想買什麼、想給誰投票、什麼時候想買房、什麼時候想買馬, 甚至是用戶可能有幾個孩子。 這些資訊足以申請信用卡、貸款甚至是冒名買房。

這些用戶們可能都不在意,

畢竟這些公司是值得信任的, 但事實上這些公司並不是重點, 別人才是。 今年年初, 信用報告機構 Equifax 洩露了 1.4 億使用者的資料, 這是公司歷史上最大的資料洩露事件, 現在這些資料是公開的。 如果謹慎一些的話, 這些資料洩露其實可以避免, 除非從一開始就不收集資料, 否則這樣的資料洩露很難避免。

那麼, 雲技術會被什麼取代呢?

Victor 認為, 當前的 HTTP 等網路和安全框架有缺陷, 而且引起了很多無法解決的問題, 因此是時候尋求更好的替代方法了——一種其他人無法存儲使用者私人資料, 完全點對點的對等無伺服器模式。

閱讀了這一領域新興技術的大量資料後, Victor 相當確信對等網路是未來的必然趨勢, 其最終目標是替代當前系統,解決上述問題,構建完全分散式的、永久的以及大量的資料存儲系統,在這種模式中,每位元使用者都會存儲自己資料的副本。

如果聽說過位元流(BitTorrent),接下來的內容就很容易理解了。在位元流協定中,使用者通過將比如視頻這樣的大體積檔,分割成更小單位的區塊,每個區塊都有唯一的 ID,不需要中央處理系統。要想下載檔案,用戶只需分享各自的檔區塊,即可下載到完整的檔。

其中有意思的地方在於如何匹配用戶。位元流通過一個叫做 Kademlia 的協議實現了這一過程。Kademlia 協定採用異或運算模式,是一種分散式散列表,每個用戶代表一個節點,有自己唯一的 ID 號碼,與其相對應的資料區塊的 ID 長度相同,因此可用作資料區塊匹配和定位,但搜索內容時需要秘鑰,這讓內容搜索變得十分有效,且因為一個 ID 只對應一個區塊,因此也能夠保證資料和內容的安全性。

這種協議另一個有趣的地方在於通過將一個內容區塊嵌入另一個,就成功將兩個資料塊以一種不可篡改的方式聯繫在了一起。如果內容被修改,聯繫就會被破壞,那麼資訊存儲的 ID 也會隨之變化。

這種嵌入機制可能會產生一些內容區塊的區塊鏈,像 Bitcoin 和其他加密貨幣驅動的區塊鏈一樣,甚至其他的複雜結構,像 Directed Acyclic Graphs(有向無環圖,簡稱 DAGs)之類。這種連結被其發明人 Ralph Merkel 命名為 Merkle。所以如果你聽見有人在談論 Merkel DAGs,你大致可以知道他們是做什麼的。Merkel DAGs 一個最普通的例子就是資源庫,Git 將其所有的提交歷史、目錄和檔都存儲在一個巨大的 Merkel DAGs 資源庫中。

基於內容定位的分散式存儲還有另一個有趣之處:不可變。已存儲的內容不能在原區塊中進行更改,也就是說,修改後的內容會被存儲為新的區塊,但在修訂後,原區塊還能繼續使用,因為 ID 不變。這也意味著在這樣的存儲系統中,相同的檔不能被複製,有效存儲。因此在新的網頁上,每一張唯一的貓咪圖片都只能存在一次。

Kademlia 這樣的協議加上 Merkle 區塊鏈以及 Merkle DAGs 一起讓使用者能夠建立檔層次模型、檔修訂的時間表以及在大規模的對等網路中進行內容共用。還有一些已經利用這些技術建立了滿足使用者需求的分散式存儲的協定,其中一個看起來比較有前景的是 IPFS。

名稱和共用問題

通過以上的技巧,上述很多問題都能得到解決:使用者在與網路相連的設備上獲取分散式的、大量的存儲資料,這幾乎解決了獲取性、可用性、持久性以及內容甄別的問題,同時,由於資料的點對點傳輸,因此不存在存儲伺服器的瓶頸問題。

但未來也需要可擴展的電腦資源,但不難實現:現在的筆記型電腦和電話的數量級比大多數應用程式所需的要大得多,而且電腦通常都可以進行大幅度的記憶體擴展。所以只要能讓每一部設備都為使用者進行必要的工作,那就不會有什麼大問題。

所以現在如果用戶想看 Slack 上面的貓咪照片,就可以從同事那裡獲取,不用再從 Slack 伺服器上下載。但如果用戶想要上傳一張照片,就需要建立新的管道,也就是說,管道已經不是圖片上傳之前的了,這一點才是困難的地方。

最難的部分:即時更新

為維護世界的秩序和自身思想的穩定,人類提出了變化的實體這一概念,也可以將其看作是一種代表事物隨時間推移產生不同價值的身份認定。這是在電腦中為資訊建立模型的一種更自然的方式。一件事情說出之後,說話人不能改變說過的話,聽話人也不能變成沒有聽過的狀態,比如說,某個時候的美國總統不會隨著時間的推移發生變化,這些事情只會被其他相同性質的事情覆蓋。但是,在 Git 的例子中,一條引用能夠在不同時間指向不同的評論,然後覆蓋其當前的價值。隨著時間的推移,信息量的增加,Slack 頻道的定義也會發生變化。

頻道中有很多使用者才是核心問題,所有人都嘗試發佈資訊和改變頻道,有時候還會同時進行,那麼就要有人做決定。

在集中式系統中,例如大多數當前的網頁系統,都有一個中央系統來決定更新事宜和對事件進行序列化,即先到者勝。但在分散式系統中,每個人都是平等的,所以就需要一種確保對序列達成共識的機制。

就當今而言,在真正的分散式系統中,共識是最難解決的問題。它不僅會影響同時升級和即時升級,對資料庫而言尤甚,同時它還會影響 DNS 等其他關鍵服務。在分散式系統中要求使用者以分散的方式登記塊號和系列的 ID 號,這代表每一個用戶都認同各自的用戶名及其含義,否則就會出現不同用戶以相同用戶名查看不同檔的情況。以內容為基礎的定位方法解決了機器的問題,因為一個用戶名只能定點指向匹配的內容,但沒解決人的問題。

處理分散式系統共識機制有幾種主要策略。一個是先選出一個小團體,再由小團體共同推舉領導者,之後就由這個領導者決定所有事情,本質上其實就是一種集中式系統。

還有一種方法是比特幣(Bitcoin)區塊鏈這樣的工作量證明(POW)系統,個人通過解題獲得升級,這種方式很難做到但是容易檢驗,而且如果問題依然存在就可以採取現有的其他措施來解決。還有一些採取權益證明(POS)的方式來減少解題所需的資源。

此外,還有一種解決 CRDT(可交替複製的資料類型)相關問題的方法,完全不涉及到共識問題。最簡單的例子就是遞增計數器,如果所有的升級都只是「加一個」,那只要我們能確定每次更新都只用一次,那順序就無關緊要,但效果相同。

關於共識機制現在還沒有明確的解決方案,但很多人都一直在研究,現在也得出了一些有趣的方法。使用者只需要選擇自己能夠承擔的特定交易,通常取決於目標群體的規模和使用者能夠讓渡的權益——可用性或一致性等,但只要時間合理,似乎多數應用程式都能支援一致性前提下的可用性。

公共檔網頁中的隱私問題

需要特別注意的就是隱私問題。怎麼才能保證將私人資訊存儲在分散式系統中而不洩露?如果能夠隱藏資訊,內容定位存儲是一個好的選擇,因為如果要獲取資源,使用者必須知道內容的 Hash 值。所以本質上可分為三個隱私級別:公開,隱藏和隱私。達到第三個級別的解決方案似乎是加密檔,也就是為內容進行增強式加密並通過不同頻道傳輸的方式進行分享,比如紙面分享、NFC 設備傳輸或者掃描二維碼等。

加密檔可能起初聽起來有風險,畢竟駭客們總能找到漏洞,但事實上比今天採用的內容存儲方式要好,事實上,在實踐可能表現得會更好。企業和政府通常將敏感資訊存儲在私密空間中,但相反,通過加密方式,對能夠查看檔的人數進行保密才能更好地實現保護資訊的目的,通常,如果獲取了查看資料的許可權,就等於擁有了全部資料。

但是如果使用者將私人資料以公開方式存儲,就必須採取保護措施以防別人獲取到。這個想法和那些安全軟體開源讓人們尋找漏洞大體一樣,但知道安全軟體怎麼運行對於破解也沒什麼幫助。

這種獲取控制的一個有趣特性是,一旦授予了某人查看一些資料的許可權,他們將永遠擁有修改資料的許可權。當然,用戶也可以經常變換未來修訂的秘鑰,這也比今天採用的方式好,儘管不太明顯:只要賦予許可權,任何人都能進行拷貝。

這一領域中又去的條韓在於建立一個能夠建立和識別身份並在不斷變化的群體中間分享資料的系統,這個系統需要擁有私人秘鑰和輪換秘鑰的結合,但是還要讓用戶擁有順暢的體驗,這是難點。

從雲到霧

儘管問題很難解決,用戶從雲平臺中遷移出來的未來也還是很令人興奮。首先,從技術方面,對等網路需要大規模改良。內容定址存儲在無可信中央處理系統的前提下提供內容本身的秘鑰識別,同時根據使用者意願,在內容託管平臺永久保留內容, 我們可以看到其相當迅速的發展,甚至是發展中世界的邊緣,遠離資料中心。

未來,資料中心可能變成過去式,消費者設備變得這麼先進和無處不在,以至於電腦力量和存儲幾乎都無用武之地。

對於商業運行網頁應用程式而言,這種變化代表著成本的極大節約和建立可信數碼產品難點的減少。企業將能減少對停機風險遷移的關注,同時增加對用戶價值和惠及所有用戶的關注。使用者還是會需要雲託管伺服器,但這些伺服器只能變成一個「節點」,同時也還會有多樣化的應用程式,在這些應用程式中,有不一樣的「點」,有面對消費者的和後臺的,都是應用程式「群集」的一部分,其中的差別僅在於秘鑰的許可權級別。

對組織和消費者而言還有一個巨大的好處就是消費者資料的處理。無用資料的洩露風險更小,軟體工程團隊的領導者們企業對於消費者的私人資料不應直接共用的問題爭論已久,這種模式似乎更安全能夠防止企業有目的的收集使用者資料。

但沒什麼辦法能夠阻止一些服務的不透明和私人資料的保留。這種應用程式系統似乎對於大規模的電腦和軟體服務而言更方便更自然——一種距離資訊源更近的網路,任何人都能輕易發佈內容和控制內容的發佈以及通過使用者共識而非私人伺服器獲取內容。

Victor 對此很興奮,他想要組建一個小團隊在短時間內利用上述技術研發一個簡單的概念移動應用。目前的成果只能算是 Twitter 的克隆,所以並不滿意,他在網路上發出了號召,希望能有更多人貢獻想法,推進研究。

其最終目標是替代當前系統,解決上述問題,構建完全分散式的、永久的以及大量的資料存儲系統,在這種模式中,每位元使用者都會存儲自己資料的副本。

如果聽說過位元流(BitTorrent),接下來的內容就很容易理解了。在位元流協定中,使用者通過將比如視頻這樣的大體積檔,分割成更小單位的區塊,每個區塊都有唯一的 ID,不需要中央處理系統。要想下載檔案,用戶只需分享各自的檔區塊,即可下載到完整的檔。

其中有意思的地方在於如何匹配用戶。位元流通過一個叫做 Kademlia 的協議實現了這一過程。Kademlia 協定採用異或運算模式,是一種分散式散列表,每個用戶代表一個節點,有自己唯一的 ID 號碼,與其相對應的資料區塊的 ID 長度相同,因此可用作資料區塊匹配和定位,但搜索內容時需要秘鑰,這讓內容搜索變得十分有效,且因為一個 ID 只對應一個區塊,因此也能夠保證資料和內容的安全性。

這種協議另一個有趣的地方在於通過將一個內容區塊嵌入另一個,就成功將兩個資料塊以一種不可篡改的方式聯繫在了一起。如果內容被修改,聯繫就會被破壞,那麼資訊存儲的 ID 也會隨之變化。

這種嵌入機制可能會產生一些內容區塊的區塊鏈,像 Bitcoin 和其他加密貨幣驅動的區塊鏈一樣,甚至其他的複雜結構,像 Directed Acyclic Graphs(有向無環圖,簡稱 DAGs)之類。這種連結被其發明人 Ralph Merkel 命名為 Merkle。所以如果你聽見有人在談論 Merkel DAGs,你大致可以知道他們是做什麼的。Merkel DAGs 一個最普通的例子就是資源庫,Git 將其所有的提交歷史、目錄和檔都存儲在一個巨大的 Merkel DAGs 資源庫中。

基於內容定位的分散式存儲還有另一個有趣之處:不可變。已存儲的內容不能在原區塊中進行更改,也就是說,修改後的內容會被存儲為新的區塊,但在修訂後,原區塊還能繼續使用,因為 ID 不變。這也意味著在這樣的存儲系統中,相同的檔不能被複製,有效存儲。因此在新的網頁上,每一張唯一的貓咪圖片都只能存在一次。

Kademlia 這樣的協議加上 Merkle 區塊鏈以及 Merkle DAGs 一起讓使用者能夠建立檔層次模型、檔修訂的時間表以及在大規模的對等網路中進行內容共用。還有一些已經利用這些技術建立了滿足使用者需求的分散式存儲的協定,其中一個看起來比較有前景的是 IPFS。

名稱和共用問題

通過以上的技巧,上述很多問題都能得到解決:使用者在與網路相連的設備上獲取分散式的、大量的存儲資料,這幾乎解決了獲取性、可用性、持久性以及內容甄別的問題,同時,由於資料的點對點傳輸,因此不存在存儲伺服器的瓶頸問題。

但未來也需要可擴展的電腦資源,但不難實現:現在的筆記型電腦和電話的數量級比大多數應用程式所需的要大得多,而且電腦通常都可以進行大幅度的記憶體擴展。所以只要能讓每一部設備都為使用者進行必要的工作,那就不會有什麼大問題。

所以現在如果用戶想看 Slack 上面的貓咪照片,就可以從同事那裡獲取,不用再從 Slack 伺服器上下載。但如果用戶想要上傳一張照片,就需要建立新的管道,也就是說,管道已經不是圖片上傳之前的了,這一點才是困難的地方。

最難的部分:即時更新

為維護世界的秩序和自身思想的穩定,人類提出了變化的實體這一概念,也可以將其看作是一種代表事物隨時間推移產生不同價值的身份認定。這是在電腦中為資訊建立模型的一種更自然的方式。一件事情說出之後,說話人不能改變說過的話,聽話人也不能變成沒有聽過的狀態,比如說,某個時候的美國總統不會隨著時間的推移發生變化,這些事情只會被其他相同性質的事情覆蓋。但是,在 Git 的例子中,一條引用能夠在不同時間指向不同的評論,然後覆蓋其當前的價值。隨著時間的推移,信息量的增加,Slack 頻道的定義也會發生變化。

頻道中有很多使用者才是核心問題,所有人都嘗試發佈資訊和改變頻道,有時候還會同時進行,那麼就要有人做決定。

在集中式系統中,例如大多數當前的網頁系統,都有一個中央系統來決定更新事宜和對事件進行序列化,即先到者勝。但在分散式系統中,每個人都是平等的,所以就需要一種確保對序列達成共識的機制。

就當今而言,在真正的分散式系統中,共識是最難解決的問題。它不僅會影響同時升級和即時升級,對資料庫而言尤甚,同時它還會影響 DNS 等其他關鍵服務。在分散式系統中要求使用者以分散的方式登記塊號和系列的 ID 號,這代表每一個用戶都認同各自的用戶名及其含義,否則就會出現不同用戶以相同用戶名查看不同檔的情況。以內容為基礎的定位方法解決了機器的問題,因為一個用戶名只能定點指向匹配的內容,但沒解決人的問題。

處理分散式系統共識機制有幾種主要策略。一個是先選出一個小團體,再由小團體共同推舉領導者,之後就由這個領導者決定所有事情,本質上其實就是一種集中式系統。

還有一種方法是比特幣(Bitcoin)區塊鏈這樣的工作量證明(POW)系統,個人通過解題獲得升級,這種方式很難做到但是容易檢驗,而且如果問題依然存在就可以採取現有的其他措施來解決。還有一些採取權益證明(POS)的方式來減少解題所需的資源。

此外,還有一種解決 CRDT(可交替複製的資料類型)相關問題的方法,完全不涉及到共識問題。最簡單的例子就是遞增計數器,如果所有的升級都只是「加一個」,那只要我們能確定每次更新都只用一次,那順序就無關緊要,但效果相同。

關於共識機制現在還沒有明確的解決方案,但很多人都一直在研究,現在也得出了一些有趣的方法。使用者只需要選擇自己能夠承擔的特定交易,通常取決於目標群體的規模和使用者能夠讓渡的權益——可用性或一致性等,但只要時間合理,似乎多數應用程式都能支援一致性前提下的可用性。

公共檔網頁中的隱私問題

需要特別注意的就是隱私問題。怎麼才能保證將私人資訊存儲在分散式系統中而不洩露?如果能夠隱藏資訊,內容定位存儲是一個好的選擇,因為如果要獲取資源,使用者必須知道內容的 Hash 值。所以本質上可分為三個隱私級別:公開,隱藏和隱私。達到第三個級別的解決方案似乎是加密檔,也就是為內容進行增強式加密並通過不同頻道傳輸的方式進行分享,比如紙面分享、NFC 設備傳輸或者掃描二維碼等。

加密檔可能起初聽起來有風險,畢竟駭客們總能找到漏洞,但事實上比今天採用的內容存儲方式要好,事實上,在實踐可能表現得會更好。企業和政府通常將敏感資訊存儲在私密空間中,但相反,通過加密方式,對能夠查看檔的人數進行保密才能更好地實現保護資訊的目的,通常,如果獲取了查看資料的許可權,就等於擁有了全部資料。

但是如果使用者將私人資料以公開方式存儲,就必須採取保護措施以防別人獲取到。這個想法和那些安全軟體開源讓人們尋找漏洞大體一樣,但知道安全軟體怎麼運行對於破解也沒什麼幫助。

這種獲取控制的一個有趣特性是,一旦授予了某人查看一些資料的許可權,他們將永遠擁有修改資料的許可權。當然,用戶也可以經常變換未來修訂的秘鑰,這也比今天採用的方式好,儘管不太明顯:只要賦予許可權,任何人都能進行拷貝。

這一領域中又去的條韓在於建立一個能夠建立和識別身份並在不斷變化的群體中間分享資料的系統,這個系統需要擁有私人秘鑰和輪換秘鑰的結合,但是還要讓用戶擁有順暢的體驗,這是難點。

從雲到霧

儘管問題很難解決,用戶從雲平臺中遷移出來的未來也還是很令人興奮。首先,從技術方面,對等網路需要大規模改良。內容定址存儲在無可信中央處理系統的前提下提供內容本身的秘鑰識別,同時根據使用者意願,在內容託管平臺永久保留內容, 我們可以看到其相當迅速的發展,甚至是發展中世界的邊緣,遠離資料中心。

未來,資料中心可能變成過去式,消費者設備變得這麼先進和無處不在,以至於電腦力量和存儲幾乎都無用武之地。

對於商業運行網頁應用程式而言,這種變化代表著成本的極大節約和建立可信數碼產品難點的減少。企業將能減少對停機風險遷移的關注,同時增加對用戶價值和惠及所有用戶的關注。使用者還是會需要雲託管伺服器,但這些伺服器只能變成一個「節點」,同時也還會有多樣化的應用程式,在這些應用程式中,有不一樣的「點」,有面對消費者的和後臺的,都是應用程式「群集」的一部分,其中的差別僅在於秘鑰的許可權級別。

對組織和消費者而言還有一個巨大的好處就是消費者資料的處理。無用資料的洩露風險更小,軟體工程團隊的領導者們企業對於消費者的私人資料不應直接共用的問題爭論已久,這種模式似乎更安全能夠防止企業有目的的收集使用者資料。

但沒什麼辦法能夠阻止一些服務的不透明和私人資料的保留。這種應用程式系統似乎對於大規模的電腦和軟體服務而言更方便更自然——一種距離資訊源更近的網路,任何人都能輕易發佈內容和控制內容的發佈以及通過使用者共識而非私人伺服器獲取內容。

Victor 對此很興奮,他想要組建一個小團隊在短時間內利用上述技術研發一個簡單的概念移動應用。目前的成果只能算是 Twitter 的克隆,所以並不滿意,他在網路上發出了號召,希望能有更多人貢獻想法,推進研究。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示