1. 程式人生 > 其它 >揚長避短:區塊鏈賦能未來IT基礎架構

揚長避短:區塊鏈賦能未來IT基礎架構

區塊鏈不等於比特幣,比特幣也不等於區塊鏈;有將它奉為圭臬,也有人將視如敝屣。可能從來沒有一種技術能像區塊鏈這樣帶有如此的大爭議。它真的一無是處嗎?或者它應用範圍有限?你一定想不到區塊鏈技術還可能用在未來的IoT,甚至是自動駕駛汽車上面吧。今天我們就來談談區塊鏈技術的那些“奇思妙用”,感謝Dell EMC中國研發中心技術大咖們的傾情貢獻。

作者:Dell EMC中國研發中心 吳鵬飛


“There is nothing either good or bad, but thinking makes it so.”Hamlet: Act 2 Scene 2

很少有一項技術能像區塊鏈這般,有著如此顯著的優勢與缺陷

:去中心化、資料永久儲存與防篡改,這些難以置信的優點,加上一度火熱的比特幣,曾讓不少人以為技術的烏托邦已經到來;然而,效能低下、對計算、儲存及網路資源的海量消耗,又讓許多人對它嗤之以鼻。

我們知道,由於CAP原理的存在,人們在設計分散式系統時不得不在多個期望的特性中做出妥協。本文試圖以混合雲、多雲為例,探討在設計未來IT基礎設施架構時,可能面臨的艱難抉擇;以及如何利用區塊鏈,揚長避短,並使其在基礎設施架構中扮演重要角色。以此為基點,展望未來區塊鏈在IoT、車聯網、自動駕駛等新興領域的應用。

現狀

在傳統的IT基礎設施架構下,使用者擁有並維護一個私有的資料中心。

如果使用者對資料和服務的可靠性、可用性有較高要求,通常的解決方案是建立多個異地資料中心,互為備份。

然而,這種方案的一次性投入較高,且對運維提出了苛刻要求。

雲!

雲端計算的興起,給使用者提供了多一種選擇。

使用者可以在不對現有資料和業務進行遷移的情況下,把容錯和災備的資料與服務部署在公有云上。

這種做法的好處顯而易見:雲資源可以按需使用,無需巨大的一次性成本投入。

然而,在此種設定下,使用者資料需要在企業私有環境與公有云環境之間進行遷移。

使用者對資料的安全性和完整性的擔憂也隨之產生。

資料校驗

一種直觀的解決方案是:在使用者私有環境下部署資料校驗服務,維護一組元資料,據此對公有云上資料進行校驗,以便及時發現錯誤並進行恢復。

不過等一下,我們需要在現有的IT架構中引入公有云,難道不是因為使用者私有環境有失效風險嗎?如果這裡的資料校驗服務也失效了怎麼辦?可能發生的情況包括元資料錯誤、丟失,甚至機房掉電等。

雲:再來一份!

沒問題!我們可以在雲上部署一個數據校驗服務的備份!

一個困境:引入雲是為了應對私有資料中心失效的問題,但又帶來了對雲上資料正確性和完整性的擔憂;資料校驗服務可以幫助使用者驗證資料的正確性,卻又面臨失效風險;雖然我們可以把資料校驗服務在雲上進行備份,卻又再次面臨元資料的正確性和完整性問題!

兜兜轉轉,我們又回到了原點。

不妨看看區塊鏈

區塊鏈具有顯著的優點:

  • 資料永久儲存
  • 防篡改

這不正是我們資料校驗服務需要的特性麼!

那我們不妨探索下,嘗試把元資料放在區塊鏈上

  • 通過共識演算法,私有資料中心可以和公有云達成共識,保證區塊鏈上的資料正確性
  • 雖然共識演算法只能保證最新一個區塊的正確,但通過雜湊鏈,區塊鏈上所有歷史資料的正確性均可以得到保證

看起來還不錯,可區塊鏈不還有很多缺點嗎?它們會成為我們的絆腳石嗎?

區塊鏈的缺點

不妨針對區塊鏈的缺點逐一分析:

☞浪費儲存空間,所有節點需要儲存完整的歷史記錄副本

▶私有鏈需要的節點個數有限,此外,元資料多重備份提高了資料安全性和可用性。

☞共識演算法消耗大量計算資源

▶ 私有鏈的共識演算法有多種選擇,以應對不同的環境。當所有節點都可信,只是有資料出錯、丟失風險時,甚至可以使用Raft作為共識演算法(例如,使用zookeeper)。但當我們不信任賣二手手遊地圖雲節點時,也可以使用PBFT共識演算法,或者VMWare的安全專家們提出的SBFT演算法。由於私有鏈節點個數不多,PBFT/SBFT對資源的佔用也不會很大。

▶ u SBFT: a Scalable Decentralized Trust Infrastructure for Blockchains,

區塊鏈效能較差。

▶ 我們知道,比特幣效能的理論上限在 6-7 TPS(transaction per second)。

▶ 但是區塊鏈在當前場景下只用於記錄校驗資料,TPS的要求非常低,zookeeper或者PBFT/SBFT作為共識演算法完全可以滿足要求。

結論:Cool!區塊鏈在當前應用場景下,優點異常突出;同時,有些缺點甚至還能轉換為優勢!

多雲

於是上述結構也可以很輕鬆的擴充套件到多雲。

在多雲環境下,我們甚至能隔離雲節點對區塊鏈上雲資料的訪問。

比如:

  • 針對每一個公有云,我們都部署一個獨立的區塊鏈。這些區塊鏈在客戶私有環境下設有節點。然而,公有云A資料對應的區塊鏈節點卻只部署在公有云B上,從而實現資料隔離。如右圖所示。
  • 另一種技術方案是,區塊鏈上不儲存任何元資料,而只保留雲資料的雜湊,以作審計。真正的元資料在鏈下另作儲存,並廣播給指定的雲節點:相應的,我們可以只把公有云A的雲資料廣播給公有云B。

展望

IoT

IoT環境下,資料和計算節點可能由相互間缺乏信任的不同組織機構控制,但大家依然有資料交換的需求;和之前的多雲場景類似,區塊鏈可以在這樣的環境下起到“資料審計”的作用,從而成為黏合IoT資料孤島的“膠水”!

車聯網

  • 在車聯網和自動駕駛世界,無障礙的資料互動顯得格外重要:你無法決定行駛在你周圍的車輛是不是與你的座駕來自同一製造商,因此車輛間通訊依然面臨缺乏信任的問題。而區塊鏈可以作為一個虛擬的中心服務(雖然它本質上是去中心化的)存在:所有的車輛從區塊鏈獲取核心車聯網控制策略,無論這些車輛是否屬於同一品牌;
  • 車企可以在自身的區塊鏈節點上配置不同的策略審批准則。任何車企均可以嘗試釋出新的車聯網控制策略,這種策略會在全網生效,包括那些不同品牌的車輛。但新策略只有獲得所有網內車企批准才會在區塊鏈上生效,從而提供給所有聯網的車輛使用;
  • 不同車輛通過從自己信任的區塊鏈節點獲取(事實上相同的)車聯網控制策略,從而實現車輛間順暢的點對點互動。

結語

世上之事物本無善惡之分,思想使然(哈姆雷特2.2)。區塊鏈作為天使與惡魔結合的典型,如果能在正確的時間、正確的位置被正確的使用,依然有爆發出巨大能量的潛力,並編織IT基礎設施架構的未來。

致謝

本文寫作過程中深受與Lyne Lin和Alaric Chen討論的啟發。