【編者按】在軟件體系結(jié)構(gòu)上,分散和集中的使用一直存在著爭議。同時,隨著網(wǎng)絡(luò)帶寬、硬件成本、內(nèi)存的容量變大,分散式似乎大有可為。然而,從創(chuàng)新不斷的Google身上,我們似乎看到了一些別的東西。下面我們一起看HighScalability創(chuàng)始人TodHoff的報道,以下為原文:
在軟件體系結(jié)構(gòu)趨勢中,分散式服務(wù)的理念與集中式服務(wù)帶來的能力及實用性之間一直存在分歧。然而現(xiàn)在看來,集中服務(wù),至少在管理和控制平面層更勝一籌。Google不僅贊同這種模式(他們一直以來都是這種模式的狂熱采納者),還在你意想不到的地方投入使用。
這里摘抄Timothy Morgan一篇非常棒的博文――《谷歌掀開“仙女座(Andromeda)”虛擬網(wǎng)絡(luò)的神秘面紗》,其中還引用了Google杰出的工程師和網(wǎng)絡(luò)技術(shù)負責(zé)人Armin Vahdat的話:
“像Google創(chuàng)建的其他多數(shù)服務(wù)一樣,Andromeda網(wǎng)絡(luò)采用的是集中控制。順便提一下, GFS整個數(shù)據(jù)處理平臺(Hadoop啟發(fā)系統(tǒng)),BigTable(為市面上大量NoSQL模仿),甚至B4WAN網(wǎng)絡(luò)及Spanner這樣尚未被模仿的系統(tǒng)都使用集中控制。
我們可以看到,一個帶有P2P數(shù)據(jù)平面且邏輯集中的分級控制層服務(wù)完勝全分散式服務(wù)。Vahdat在他的keynote中寫道,“這一切都沖擊著傳統(tǒng)的思想,”他繼續(xù)說道:“除了上述項目,所有人都會對Google早在2002建立的大型存儲系統(tǒng)GFS而感到震撼。對于這個設(shè)計模式,我們是非常有信心的。我們通過審慎利用集權(quán)而不是以對等且分散的管理方式,從根本上建立一個更高效的系統(tǒng)。”
文章的背景是谷歌的令人印象深刻的自主研發(fā)SDN系統(tǒng),它使用了集中控制而不是互聯(lián)網(wǎng)的Autonomous System,其將互聯(lián)網(wǎng)看作一座孤立的島嶼,通過路由協(xié)議與“外界”聯(lián)系。GrregFerro解釋道,SDN完全改變了傳統(tǒng)的模式:
SDN和傳統(tǒng)網(wǎng)絡(luò)之間的主要區(qū)別在于:SDN是基于控制器的網(wǎng)絡(luò)模型。軟件定義網(wǎng)絡(luò)的集中控制器涵蓋了整個網(wǎng)絡(luò)端到端的視圖,它將所有的網(wǎng)絡(luò)路徑和設(shè)備能力信息保存在一個應(yīng)用程序中。因此,控制器可以基于源地址和目的地址計算它們之間的路徑;針對不同流量類型決定不同的網(wǎng)絡(luò)路徑;并快速響應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境。
除了提供這些特性之外,該控制器還可作為一個可配置節(jié)點。SDN最有價值的一方面就是:它可以通過這個單一配置節(jié)點控制整個網(wǎng)絡(luò)并編程以實現(xiàn)自動化。
所以,集中控制器知道并能看到一切,它可直接編程實現(xiàn)硬連線的路由。以前,當發(fā)現(xiàn)錯誤后帶來的BGP收斂時間會損耗性能。現(xiàn)在,您硬件上有了SDN,那么故障響應(yīng)會非常迅速,因為集中控制器將會按照會預(yù)先計算出的可替代路由來編碼路由。這也是當下云系統(tǒng)能具有高可用性、低延時連接,甚至跨越廣域網(wǎng)的一個主要原因。
那么,這是否就意味著該控制器是一個單一的過程呢?也不盡然。它只是在邏輯上集中,同樣可以像任何的典型服務(wù)體系結(jié)構(gòu)一樣,在眾多的機器中(物理上)實現(xiàn)可分布式。這就是它擴展的方式。除下規(guī)模達到了非常大的程度,而想要采用完全分散式的架構(gòu)顯然是不明智的(即使在這個硬件便宜,內(nèi)存和網(wǎng)絡(luò)帶寬飛速發(fā)展的時代)。
就互聯(lián)網(wǎng)規(guī)模而言,邏輯和物理上分散式的 Autonomous System 模型仍然有所作為,它有良好的擴展性,雖然以極高的協(xié)調(diào)成本和緩慢的響應(yīng)為代價。然而,在過去,這是可行的,但對于今天的網(wǎng)絡(luò)需求,已經(jīng)不再有優(yōu)勢。
谷歌玩的不只是互聯(lián)網(wǎng),而是具有特定需求的特殊網(wǎng)絡(luò)合集。那么,他們?yōu)槭裁磿ν耆煌男枨笫褂靡粋€通用的技術(shù)?
集中式贏在其構(gòu)造出的產(chǎn)品廣受歡迎
電子郵件和NNTP,都是分散式服務(wù)的代表,但是已經(jīng)讓位給了集中式服務(wù),如Twitter,F(xiàn)acebook,G+和WhatsApp等推送服務(wù)。
集中化使得很多事情變得更加容易,例如搜索。如果你想要一個非常棒的搜索,那么你就需要在一個地方得到所有的數(shù)據(jù),這就是為什么谷歌抓取網(wǎng)頁并存儲起來的原因。集中化最大優(yōu)點就是保持一致性,例如追蹤清單、關(guān)聯(lián)、A / B測試、頻繁推送、反復(fù)設(shè)計、欺詐檢測、DDoS攻擊防護、深度學(xué)習(xí),以及創(chuàng)建具有高附加值的任何類型功能。
另外,如果你將一個不在控制下的遠程實體作為產(chǎn)品的一個重要組成部分,必會導(dǎo)致一個長延遲和失敗的用戶體驗,這并不是你在服務(wù)中想得到的東西,端到端控制才是創(chuàng)造良好用戶體驗的關(guān)鍵。因此,特性或可擴展性上全分散式架構(gòu)毫無優(yōu)勢。
全分散式有時也是一種政治選擇
例如,使用分散或 federated的方式創(chuàng)建Twitter,雖然這在技術(shù)上是可行的,卻沒有被普遍采用。原因很簡單,集中式有效且能達到用戶的要求,這個是最主要的原因。次要原因,如安全、擁有自己的數(shù)據(jù)、應(yīng)變能力、言論自由等,雖然對于有些公司來說比較重要,但是通常情況下對許多公司都沒有影響。
Doc Searls在像“逃出集中式的黑洞”這樣的文章中提到一個分散式涉到人權(quán)和個人主權(quán)問題的例子,干預(yù)1個由大型匿名公司控制的全分散式且P2P加密的聊天系統(tǒng)要比1個集中式服務(wù)難得多。
那么開發(fā)者究竟該如何選擇
如果是出于個人主權(quán)的考慮,或者是基于網(wǎng)絡(luò)或跨地理位置,或者必須自主運行的,那么federated將會是你最好的選擇。
如果您的系統(tǒng)非常小,那么完全集中式架構(gòu)還是相當有吸引力的。
同時,對于處于廣大中間地帶的朋友們,谷歌已經(jīng)證明:結(jié)合分布式數(shù)據(jù)并集中管理和控制基本已成為現(xiàn)在的規(guī)范架構(gòu)。不要試圖使一切工作都分布式,構(gòu)建難度會讓你望而卻步。
原文連接: Google Finds: Centralized Control, Distributed Data Architectures Work Better than Fully Decentralized Architectures(翻譯/陶星 責(zé)編/仲浩 )
以“ 云計算大數(shù)據(jù) 推動智慧中國 ”為主題的 第六屆中國云計算大會 將于5月20-23日在北京國家會議中心隆重舉辦。產(chǎn)業(yè)觀察、技術(shù)培訓(xùn)、主題論壇、行業(yè)研討,內(nèi)容豐富,干貨十足。票價優(yōu)惠,馬上 報名 !