集中式和分布式架構的「伯羅奔尼撒戰爭」

2019-12-05     Alter聊IT

01

1964年,吉恩·阿姆達爾的團隊耗費了50億美金後,終於研製出了世界上第一台採用集成電路工藝的計算機IBM360。

因為IBM360的出現,吉恩·阿姆達爾被冠以商用大型機最早的「建築師」、有史以來最偉大的計算機設計師等一連串的頭銜,IBM也憑藉比原子彈造價高2.5倍的投入,奠定了計算機帝國的半壁江山。

可如此高昂的研發成本也留下了一個棘手問題,只有國防、金融、交通、能源等國家支柱產業才能承擔起大型機的費用,普通企業幾乎無法染指。好在有學者提出了「效用計算」的概念:家家戶戶都可以使用電燈,卻不需要各家各戶都配置並維護一台發電機,是否可以用同樣的方式提供計算服務呢?集中式架構的理念應運而生。

但到了20世紀80年代,計算機架構卻也開始向兩個方向發展:以X86為架構的面向個人的PC和以RISC為架構面向企業的UNIX伺服器。在成本天平的制約下,不少企業改用小型機及PC來搭建系統架構,分布式架構的思想逐漸開始生根萌芽。

單從時間上看,有關分布式架構與集中式架構孰優孰劣的討論已經持續了30年左右的時間,幾乎等同於伯羅奔尼撒戰爭的時長,集中式架構和分布式架構分別扮演了雅典城邦和斯巴達的角色。

02

先來花一點時間回憶下,什麼是集中式架構,以及什麼是分布式架構?

集中式架構可以理解為將所需要的伺服器資源集中在少數幾台伺服器上,可以理解為「中央集權式」的部署。而分布式架構的思想根基是根據業務功能、模塊設計或者行政機構的不同,採用相對分散的中小型伺服器。

集中式架構的「代表人物」就是採用Power架構的浪潮K1 Power系列高端伺服器,最大特點在於部署結構簡單、高效運營。集中式系統往往基於底層性能卓越的伺服器,終端或客戶端機器僅僅負責數據的錄入和輸出,無需考慮如何對服務進行多個節點的部署,也就不用考慮多個節點之間的分布式協作問題。

然而由於歷史上的種種原因,集中式架構多用於傳統的銀行、電信、交通、醫療等行業,作業系統、中間件、資料庫等「基礎軟體」多為閉源商用系統,「穩定、安全」幾乎是集中式架構的代名詞。

分布式架構則被Google、Amazon、Facebook、阿里巴巴、騰訊等網際網路公司所推崇,往往採用性價比更高的X86伺服器、分布式資料庫和大量的內存快閃記憶體,既沒有控制整個系統的「主機」,也沒有被控制的「從機」,分布式系統的所有節點都是對等的,並且可以在空間部署上進行隨意分布,可以是不同的機房,甚至是不同的城市。

由於分布式架構下的單台伺服器處理能力有限,資料庫層和應用層主要依賴橫向擴充,導致資料庫伺服器必須使用並行版資料庫軟體,應用系統必須基於並行數據訪問方式進行開發,早期確實遇到了不少技術上的瓶頸。

不過從聲量上來看,隨著網際網路巨頭們影響力的與日俱增,分布式陣營在話語權上逐漸勝過集中式架構,以至於不少論壇上出現了往分布式架構一邊倒的現象。

03

至於分布式架構是否優於集中式架構,仍然存在很大的爭議。

正如許多人多認可的:集中式架構的優勢在於可靠性、一致性和穩定性,缺點在於不適用於非結構化數據,特別是在支撐力有限的前提下,但對頂層設計的要求偏高;分布式架構長於彈性、擴展性和敏捷性,又在並發性、全局時鐘、故障處理等方面存在先天不足。

只是這些優點和缺點的比較,多半還在站在技術的角度上,如果站在客戶需求的立場上,或許可以得到不一樣的答案。

譬如在可擴展性方面,分布式架構看似有著無可比擬的優勢,但在實際應用中,鑒於並行資料庫的軟體使用難度和維度費用較高,橫向擴充方式的實現相對困難許多。反倒是集中式架構由於單台伺服器有著較好的可擴充能力,可採用增加硬體和配件的縱向方式提升處理能力,資料庫和應用軟體不需要進行調整,實現起來反而相對容易。

又譬如在投資成本方面,集中式架構的前期採購價格偏高,給人留下了高成本的印象,分布式架構則勝在成本優勢。簡單算一筆經濟帳的話,分布式架構的硬體採購成本偏低,與之對應的軟體成本、運維成本乃至機房建設成本,都可能隨著機器數量線性增長,到達某個臨界點後,分布式架構的成本可能會高於集中式。

當然,分布式架構還有另一重被看好的因素,即安全性。封閉的體系和國外巨頭壟斷的市場現狀,較於有自主智慧財產權的分布式架構,似乎在控制能力上稍顯吃力。

而浪潮K1等國產高端伺服器的出現,已然在某種程度上改變了這一局面,比如浪潮商用機器針對K1 Power伺服器進行了全新的設計,從固件的開發、KUX作業系統到AIX、Linux的兼容,Power的整個生態系統正在從封閉走向開放。在這樣的局面下,諸如集中式架構的安全疑問自然不攻自破。

或許應該拋棄一些固有的偏見,以客觀的態度認識IT架構。

04

事實也是如此,分布式架構和集中式架構的討論,正逐漸從商業話題轉變為純粹的技術性問題。或許在企業的立場上,集中式和分布式架構從來都不是非此即彼的選擇,而是擇其善者而選之。

諸如谷歌、阿里等面對大量非結構化數據的網際網路巨頭,自然成了分布式架構的重視擁躉,阿里甚至在2009年掀起了一場」去IOE」運動。但對於製造業、金融業等需要敏捷開發的行業,集中式架構的適用性要優於分布式架構,用一台機器集中解決IT問題,在空間成本、運營、管理、軟體許可成本等方面優勢的優勢不無明顯。

一個直觀的案例,在全球銀行百強的採購名單中,2019年依然有92%的銀行購買了集中式架構的伺服器。特別是多雲、混合雲等趨勢下,客戶的架構選擇不再像以前那麼單一,分布式和集中式架構的應用場景,不再只是行業間的差異,逐步細化到了應用場景上。

比如某銀行在對高穩定性、高安全性有著苛刻的要求,並注重關鍵應用的秒級災備能力,以及強調數據完整性的場景上,集中式架構仍然是最好的選擇;在網際網路金融等需要快速創新的業務中,流量上存在較大的彈性和不確定性,對可擴展性有著明顯的剛需,選擇分布式架構可以說是最正確的結果。

招商銀行與浪潮商用機器的合作就是個例子。招商銀行選擇了集中式和分布式融合的的IT基礎架構,以業務和IT的適用性選擇平台,比如招商銀行的核心系統跑在浪潮Power伺服器上,信用卡業務基於X86系統。如此選擇的好處不無明顯,既能滿足成熟業務高效、穩定、安全運行的要求,同時支持新業務的創新,還能保護已有投資的延續性。

借用浪潮商用機器總經理胡雷鈞的觀點:「未來的選擇一定是多樣化的,每個用戶都可以根據實際需求選擇適合自己的方案。」畢竟客戶的應用在高速變化,不同業務對安全性和靈活部署有著不同的偏好,只依靠一種架構註定是不現實的。

難題其實留給了大大小小的IT服務商們,客戶需要的不是集中式與分布式架構之間的單項選擇題,需要針對具體的場景制定相應的方案,分布式架構也好,集中式架構也罷,沒有本質上的孰優孰劣,無非是適合什麼樣的場景而已。

也就不難給分布式架構和集中式架構長達30年的討論做一個註腳,所有的技術專家都可以有自己的立場,可脫離了場景談優劣,無異於「耍流氓」。

05

歷史上的伯羅奔尼撒戰爭,以斯巴達一方的勝利收場,代價卻是斯巴達不惜犧牲希臘的長遠利益,選擇和宿敵波斯聯盟,最終在戰爭中摧毀了希臘文明的基礎,整個希臘世界開始由盛轉衰。

無論是集中式陣營,還是分布式陣營,無不是穿梭在商業遊戲中的聰明人,註定不會只知對抗,不懂平衡,重蹈伯羅奔尼撒戰爭的覆轍。一個比較樂觀的消息是,幾乎所有公司在選擇架構時,務實和理性都戰勝了主觀上的情感偏好。

同時集中式架構和分布式架構的「爭奪」,越發像道家太極里的陰陽,一時的漲消並不重要,關鍵是二者處於一種和諧共生的平衡中。比如浪潮在集中式架構的伺服器上推出了分布式的存儲解決方案,金融行業中也出現了分布式數據部署在集中式架構的嘗試。

集中式與分布式不再是替代關係,而是融合關係。何況「軟體定義」正逐漸成為IT領域的主旋律,大量的雲計算軟體和雲應用可以無差別運行在不同的硬體架構上,也在加速分布式架構和集中式架構的融合。

文章來源: https://twgreatdaily.com/WU5X3G4BMH2_cNUg-kFM.html