集中式架構VS分布式架構,會是一場“伯羅奔尼撒戰爭”嗎?
歷史上的伯羅奔尼撒戰爭,以斯巴達一方的勝利收場,代價卻是斯巴達不惜犧牲希臘的長遠利益,選擇和宿敵波斯聯盟,最終在戰爭中摧毀了希臘文明的基礎,整個希臘世界開始由盛轉衰。
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%的銀行購買了集中式架構的服務器。特別是多云、混合云等趨勢下,客戶的架構選擇不再像以前那么單一,分布式和集中式架構的應用場景,不再只是行業間的差異,逐步細化到了應用場景上。
比如某銀行在對高穩定性、高安全性有著苛刻的要求,并注重關鍵應用的秒級災備能力,以及強調數據完整性的場景上,集中式架構仍然是最好的選擇;在互聯網金融等需要快速創新的業務中,流量上存在較大的彈性和不確定性,對可擴展性有著明顯的剛需,選擇分布式架構可以說是最正確的結果。
借用浪潮商用機器總經理胡雷鈞的觀點:“未來的選擇一定是多樣化的,每個用戶都可以根據實際需求選擇適合自己的方案?!碑吘箍蛻舻膽迷诟咚僮兓煌瑯I務對安全性和靈活部署有著不同的偏好,只依靠一種架構注定是不現實的。
難題其實留給了大大小小的IT服務商們,客戶需要的不是集中式與分布式架構之間的單項選擇題,需要針對具體的場景制定相應的方案,分布式架構也好,集中式架構也罷,沒有本質上的孰優孰劣,無非是適合什么樣的場景而已。
也就不難給分布式架構和集中式架構長達30年的討論做一個注腳,所有的技術專家都可以有自己的立場,可脫離了場景談優劣,無異于“耍流氓”。
05
歷史上的伯羅奔尼撒戰爭,以斯巴達一方的勝利收場,代價卻是斯巴達不惜犧牲希臘的長遠利益,選擇和宿敵波斯聯盟,最終在戰爭中摧毀了希臘文明的基礎,整個希臘世界開始由盛轉衰。
無論是集中式陣營,還是分布式陣營,無不是穿梭在商業游戲中的聰明人,注定不會只知對抗,不懂平衡,重蹈伯羅奔尼撒戰爭的覆轍。
一個比較樂觀的消息是,幾乎所有公司在選擇架構時,務實和理性都戰勝了主觀上的情感偏好。
同時,集中式架構和分布式架構的“爭奪”,越發像道家太極里的陰陽,一時的漲消并不重要,關鍵是二者處于一種和諧共生的平衡中。
比如浪潮在集中式架構的服務器上推出了分布式的存儲解決方案,金融行業中也出現了分布式數據部署在集中式架構的嘗試。
集中式與分布式不再是替代關系,而是融合關系。何況“軟件定義”正逐漸成為IT領域的主旋律,大量的云計算軟件和云應用可以無差別運行在不同的硬件架構上,也在加速分布式架構和集中式架構的融合。
#專欄作家#
Alter,微信公眾號:Alter聊IT(ID:spnews),微信號imhefei ;人人都是產品經理專欄作家,互聯網觀察者。專注于移動互聯網、智能硬件、電子商務等科技領域。獨立的自媒體人,走在創業的路上。
本文原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
寫的不錯,簡單易懂