分散式技術“上位”進行時

naojiti發表於2019-10-27

我們身處資料大爆炸的時期,想必沒人會質疑這一點。網路使用者規模越來越大,由此產生的訪問資料也在指數倍增長,最典型的,每逢大型年度購物節、流量明星出軌、春晚搶紅包等特殊事件,都如同一場伺服器系統效能的“極限挑戰”,某幾家網際網路公司總會被拉出來示眾,成則頂禮膜拜,敗則集體吐槽。

分散式技術“上位”進行時

如何在極限繁忙的情況下,依然能流暢、安全地提供服務,又不過度增加伺服器成本?想要解決這一問題,傳統的伺服器架構就有些力不從心了。

分散式技術,作為一種專門針對海量資料場景的解決方案,就成為了一劑“特效藥”。

在基礎“療效”之外,更關鍵的是,技術本身還埋藏著交給未來的“彩蛋”。

分散式技術為什麼“上位”?

如果關注一下網際網路公司的技術趨勢,會發現大規模或超大規模的分散式應用已經成為主流,而隨著雲端計算逐步向大眾生活滲透,中小規模的分散式應用也在各個領域開始廣泛出現。最為直接的體現就是,今天的開發工程師想要找到一份工作,“熟悉分散式系統”“能對分散式常用技術進行合理應用”等都是常規要求了。

但對於非專業人群來說,恐怕就有不少疑問了,分散式技術為什麼會上位,它是如何執行的,相比傳統系統究竟強在哪裡,又是如何影響我們的“衝浪”體驗的?

分散式技術“上位”進行時

簡單來說,所謂分散式(distributed),就是將不同的服務模組部署在多臺不同的伺服器上,然後通過遠端呼叫協同工作,共同對外提供服務。對於使用者來說,就像是一臺計算機在服務一樣。

我們知道,初代的伺服器架構往往比較簡單,應用程式、資料庫、檔案、程式碼等所有資源都放在一臺伺服器上,也就是單機結構。隨著企業業務量的增多,一臺伺服器已經難以滿足資料處理的需求了,那麼就對單機進行“複製貼上”,就能收穫一個處理能力高出好幾倍的“伺服器叢集”。

分散式技術“上位”進行時

不過,叢集式擴充套件很容易到達物理上限,最直接的反映就是無論怎麼增加節點,整個叢集的效能似乎也沒有被提升多少,這時候,就需要分散式系統登場了。

在實際業務中,分散式系統可以將不同的業務功能對應到一個個獨立的子系統中去,比如針對電商平臺,可以將使用者服務、產品服務、店鋪管理、資料分析等不同的資料處理專案部署在不同的計算機叢集上。這些獨立的叢集可能是在不同的機房,甚至是不同的城市中,有的大型資料中心還會分佈在不同的國家和地區。它們之間通過RPC訊息傳遞進行通訊和協調,再向使用者提供服務。

通過幾種架構的執行邏輯不難發現,分散式系統至少具備三個特點:

首先是能夠實現高併發、低延遲的網路服務需求。面對超大規模的訪問請求,很容易造成網頁開啟很慢、遊戲擁堵卡頓甚至App直接當機的情況。這時候需要多臺伺服器共同高效協作,去處理儘可能多的任務,才能達到相應流量的吞吐量。這就要企業需要將多個伺服器部署在不同的地域,才有可能規避全球使用者可能導致的網路擁堵和延遲問題。換句話說,分散式系統是全球網路業務發展的基礎前提。

另外,分散式系統的可擴充套件效能夠大幅度降低企業的網路成本。由於分散式系統的多臺計算機可以在空間位置上隨意分佈,機器效能也可以獨立執行和隨時變動,這就使得多個獨立服務可以得到針對性地升級,而不是傳統架構下的“大鍋飯”。比如在商城大促期間,只需要針對產品系統、訂單系統等跟下單量級直接相關的節點,其他服務模組維持原有水平,可以有效降低網路使用成本。一些基礎模組也可以為其他新增服務所複用,無需重複開發,又進一步降低了企業的經營風險。可以說,在各行業競爭進入精益時期和白熱化的當下,分散式系統無疑是競爭力的前提。

更關鍵的一點,是分散式系統的高安全性。由於該系統中計算機沒有主/從之分,也就是說所有計算機節點都是對等的,在對外服務時分散式系統都會對資料和服務進行副本處理,從而直接有效地防止了企業關鍵資料丟失無法找回等“慘劇”,也因此成為網路防災的重要保障。

正是出於這些技術特徵,毫不誇張地說,計算機系統正在經歷一場從集中式向分散式過渡的整體變革。

分散式雲端計算:受益人與鼓吹手

如果說分散式系統代表著網路服務的發展方向,那麼雲端計算的社會化,可能是其快速普及的重要推手。

今天,我們在諸多雲服務商的技術架構裡,能夠看到不少分散式技術的身影,比如分散式儲存、分散式資料庫、分散式訊息中介軟體等等。某種程度上,分散式系統在資源池化、硬體故障容錯能力、效能提升等方面的技術優勢,賦予了雲端計算真正觸控服務市場的可能性。

這種影響,主要體現在三個關鍵環節:

一是分散式儲存。雲服務作為智慧化的輸出載體,對資料的儲存和分析是不可或缺的能力之一,而傳統的資料儲存模式往往都有容量大小限制或是空間侷限,雲端需要的可支撐龐大資料的儲存方案恰恰只有分散式能夠實現,比如 Apache Hadoop HDFS。

二是分散式計算。資源池的規模越大,對於資源使用效率,即計算效率的要求也就提出了更高的要求。傳統的叢集結構採用的平行計算往往需要耗費相當長的時間,而分散式計算會將任務拆分成諸多子任務再分配給多臺計算機,這種高效率的計算方式也有效提升了雲服務的整體效能。

三是分散式管理。我們知道,雲服務的核心價值之一,就是能夠幫助客戶隨時獲得IT資源及應用,並且按需付費。這意味著雲廠商的應用和服務,也需要基於可擴張性、靈活性與可靠性來進行設計。因此,能夠將不同服務模組進行分割、複用的分散式框架就顯得非常必要了。

當然,除了以受益人角色不斷與分散式技術產生化學反應之外,雲服務商也成為企業部署分散式系統的最佳選擇。

分散式技術“上位”進行時

之所以大部分企業需要藉助雲廠商的力量,核心原因還是在於分散式系統的複雜性,大大提升了網路運維和呼叫的難度。

對於大中型企業來說,越來越多的服務和業務被切割和部署在不同的網路計算單元上時,服務間的依賴關係也因此變得錯蹤複雜,不僅管理配置的難度變得越來越大,有時候甚至連編寫系統的架構師都不能完整描述應用之間的關係,分不清應用啟動的先後順序,進而引發一系列擴容、呼叫、線路故障等問題。

另外,敏捷開發模式要求工程師不斷更新程式,來滿足新業務、新功能的網路需求。要讓企業自己緊跟IT產業的前沿技術,及時引入最新演算法模型,修正安全bug,並對成千上百個伺服器完成迭代升級,無疑是一個極其龐大且效率低下的工作。

在這種背景下,引入雲服務模式,藉助虛擬伺服器作業系統,即SaaS技術,在雲服務商的統一執行環境下實現部署,就大大降低了需要維護的硬體數量,從而讓分散式系統管理不再消耗企業大量時間和精力。

從這個角度來講,雲端計算和分散式技術捆綁在一起,兩種技術方案相互補益,成就了新資料規模背景下最佳收益比的網路基礎設施。

走入“硬體虛擬化”的美妙時代

前面我們感受到了雲端計算與分散式技術相結合所蘊含的可能性,隨著基礎設施迭代升級的完成,技術如何嚮應用端釋放自己的迷人之處,恐怕才是我等普通人真正關心的焦點。

目前看來,分散式系統與雲端計算結合,首先帶來的就是服務能力的共享。

雲端計算能力結合虛擬化技術,能夠將許多業務端模型抽象成的固定軟體統一起來,進而利用分散式系統進行管理和輸出。

許多原本需要專門開發對應應用才能實現的功能,比如AI運算,通過雲端進行虛擬化之後就能夠變成共享資源。比如Nvidia 與 VMWare 針對 VMWare Cloud on AWS 推出的GPU加速服務,就能夠讓AWS的客戶將各種VMware vSphere 的應用與容器無需變更即可無縫轉移至雲端,實現AI運算分析。

分散式技術“上位”進行時

除此之外,終端能力也可以被虛擬化到雲端,再通過分散式技術釋放給其他硬體。

舉個例子,智慧音響的語音功能、智慧手機的視訊功能、無人機的實時拍攝功能、膝上型電腦的多功能操作,這些原本各自獨立的終端能力通過雲端虛擬化之後,再借助分散式系統進行呼叫,就能夠實現終端之間不同能力的靈活組裝。

比如手機來電可以通過車載音響來接聽,無人機畫面可以實時通過視訊通話直播,手機與電腦無縫傳輸……對於使用者來說,不再需要浪費精力去考慮某個產品的效能,只需要看當下場景需要什麼硬體能力發出呼叫指令就好。同時,分散式系統的分工協同呼叫,能將硬體裝置之間通訊的功耗降到最低。

從為不同場景設計不同硬體,到不同硬體主動適配不同場景,AIoT智慧互聯後可能面臨的跨終端體驗割裂問題,正在被分散式技術消弭於無形之中。

分散式技術“上位”進行時

同時,分散式系統也讓不同機器之間的安全通訊成為可能,從而進一步推動萬物智聯的到來。

我們知道,如果攻擊者利用漏洞獲取對整個主機的存取權,那麼在很長一段時間內就可以攻擊主機上執行的其他每個裝置,從而危害整個系統的安全。由於這種攻擊方式很難被標準的IDS/IPS檢測到,正在變得越來越流行。

試想一下,如果在車聯網、工業物聯等場景中發生遷移式攻擊,亦或是黑客通過空調/咖啡機訪問家中任何一個聯網裝置,這將會引發怎樣可怕的連鎖反應?

因此,不少雲服務商和硬體廠商都已經開始著手將分散式技術引入安全服務。一方面分散式系統各個網路節點之間之間通訊都需要驗證並批准,能夠有效保護和控制複雜裝置網路,在惡意軟體進行控制之前實現檢測和隔離;與此同時,分散式網路的“副本”模式,也能夠很好地保證資料被複制並儲存在每個裝置中,避免因黑客入侵而發生無可挽回的損失。

今天,我們看到萬物智聯已經在AI、5G、雲端計算等基礎設施的共同鋪陳下,展示出了越來越清晰的未來圖景。

如何讓其變得可靠、可用、可信,還需要像分散式技術這樣的助攻攙扶下,邁出實用化的關鍵一步。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561483/viewspace-2661581/,如需轉載,請註明出處,否則將追究法律責任。

相關文章