本文轉(zhuǎn)載自微信公眾號“ 鵝廠網(wǎng)事”(ID:tencent_network),作者:黃翔。
鵝廠是一個業(yè)務類型非常豐富的互聯(lián)網(wǎng)公司,涵蓋了大型社交流量平臺(微信/QQ)、在線游戲、公有云、媒體(新聞/視頻)、移動應用、開放平臺、互聯(lián)網(wǎng)金融等,不同類型的業(yè)務都有著自己的技術(shù)應用特點、業(yè)績目標、成本考量體系,從而產(chǎn)生了對后臺技術(shù)支撐能力的不同訴求。網(wǎng)絡作為基礎架構(gòu)中的重要一環(huán),也面臨著這些海量業(yè)務運營帶來的種種挑戰(zhàn)。好在鵝廠是一個專業(yè)技術(shù)能力較強、內(nèi)部合作順暢的生態(tài)系統(tǒng),將“不斷提升用戶體驗”作為統(tǒng)一的技術(shù)目標,很多事情就可以分布式合作去完成,基于這一特點,作為鵝廠基礎網(wǎng)絡平臺的架構(gòu)師也深感幸福,因為可以更收斂、更聚焦的去解決一些有共性的重點問題——標準化的基礎網(wǎng)絡平臺。
成都創(chuàng)新互聯(lián)主營包頭網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶APP軟件開發(fā),包頭h5微信平臺小程序開發(fā)搭建,包頭網(wǎng)站營銷推廣歡迎包頭等地區(qū)企業(yè)咨詢
怎么搭建這個龐大的基礎網(wǎng)絡平臺本身是一個非常復雜的議題,網(wǎng)絡技術(shù)本身在這其中可能只占據(jù)不到20%的分量,為了讓網(wǎng)絡規(guī)劃、建設、運營形成一個健康的體系,并不斷提升業(yè)務系統(tǒng)面向用戶的體驗,需要考慮非常多的問題:包括網(wǎng)絡技術(shù)選型、公司資源發(fā)放趨勢、端到端的運營體系、網(wǎng)絡技術(shù)發(fā)展趨勢、硬件供應鏈管理、綜合成本把控、迭代與穩(wěn)定運營之間的Trade-off、風火水電、國內(nèi)/國際通信環(huán)境等等因素,而這其中每一項幾乎都可以寫幾本書來講了。本文則聚焦于網(wǎng)絡本身,筆者爭取用通俗易懂的描述,簡單的分享一下鵝廠構(gòu)建基礎網(wǎng)絡平臺的思路。
先看一張鵝廠基礎網(wǎng)絡平臺的整體架構(gòu)圖(如下),網(wǎng)絡之所以會演進到今天這個樣子,主要是因為鵝廠網(wǎng)絡的價值主體是不斷構(gòu)建和優(yōu)化的兩個能力——“連接服務與服務的能力”與“連接服務與用戶的能力”,網(wǎng)絡架構(gòu)的發(fā)展必須圍繞著兩個能力來演進。同時,再根據(jù)上層業(yè)務特點(離線/在線)、地理資源豐富程度(地/電)、ISP網(wǎng)絡布局、災備要求、綜合成本構(gòu)成等因素,將整體基礎網(wǎng)絡平臺分為三大塊:
數(shù)據(jù)中心網(wǎng)絡聚焦于“連接服務與服務的能力”,在整個網(wǎng)絡投資板塊占據(jù)很高分量,通過多年的積累,數(shù)據(jù)中心網(wǎng)絡已經(jīng)形成幾萬網(wǎng)元的體量。面對如此體量的網(wǎng)絡,一定是需要有一套嚴密的構(gòu)建體系來支撐的,包括設計、建設、運營、供應鏈管理等環(huán)節(jié),因為隨便一個錯誤意味著不可想象的影響范圍和返工量。按照常理來看,數(shù)據(jù)中心網(wǎng)絡是離業(yè)務最近的網(wǎng)絡,而如此大的體量應該是運營壓力最大的部分,其實這個問題在鵝廠并沒有想象的那么嚴重,前文提到過,鵝廠是一個專業(yè)能力較強、內(nèi)部合作順暢的生態(tài)系統(tǒng),經(jīng)過了多年的磨合,上層業(yè)務和基礎網(wǎng)絡形成了很好的合作默契,業(yè)務系統(tǒng)架構(gòu)(尤其是平臺級業(yè)務)的健壯性、容災設計、調(diào)度能力達到了非常高的水平,使得基礎網(wǎng)絡平臺的架構(gòu)師可以用標準化、健壯性好的技術(shù)來滿足幾乎絕大部分業(yè)務對數(shù)據(jù)中心網(wǎng)絡的要求,從而可以有更多精力集中在數(shù)據(jù)中心網(wǎng)絡相關更底層、更專業(yè)領域內(nèi)深耕細作。
關于鵝廠數(shù)據(jù)中心網(wǎng)絡的玩法,或者說要運轉(zhuǎn)數(shù)據(jù)中心網(wǎng)絡需要具備什么能力,將這些年的經(jīng)驗和思路可以稍作總結(jié)如下:
· 數(shù)據(jù)中心網(wǎng)絡與基建環(huán)境(Campus/Building)深度結(jié)合進行整體設計和交付,采用多級CLOS方案進行Campus-level/Building-level的整體端到端設計,包括設備功耗規(guī)劃、設備上架布局、布線規(guī)劃、物理故障域規(guī)劃等方面,以達到綜合架構(gòu)、建設、成本、維護上的最優(yōu)解。要從方法論高度對數(shù)據(jù)中心組網(wǎng)的CLOS結(jié)構(gòu)有深入研究(上圖是Sigcomm論文中G家的數(shù)據(jù)中心網(wǎng)絡的邏輯圖),這個議題其實沒有想象的那么簡單,是一整套綜合考慮交換機成本、光成本、風火水電環(huán)境、網(wǎng)絡技術(shù)等一些列問題的方法論體系,關于CLOS網(wǎng)絡怎么搭建,鵝廠架構(gòu)師甚至總結(jié)出了一整套公式算法,后續(xù)會開設專題進行探討。
· 要對交換網(wǎng)絡體系架構(gòu)有較深入的理解,這是網(wǎng)絡架構(gòu)設計最基礎的技術(shù)儲備部分,無論是自研交換機還是商用交換機,都對技術(shù)開發(fā)、測試能力、基礎技術(shù)的掌握能力有較高的要求,這里面涉及的點包括交換芯片、光部件、系統(tǒng)協(xié)議棧、對SDK使用的積累等部分。
· 對行業(yè)現(xiàn)狀和趨勢的整體分析能力,對行業(yè)供應鏈的整體把控能力,并且可以針對行業(yè)環(huán)境的變化具備敏捷的適應能力。比如隨著服務器接入速率的不斷提高,在數(shù)據(jù)中心網(wǎng)絡總成本中,光的比重越來越高,要能提前洞察到這些趨勢和變化,并結(jié)合自身的情況調(diào)整戰(zhàn)略和架構(gòu)。
· 海量標準化的數(shù)據(jù)中心網(wǎng)絡生產(chǎn)已經(jīng)成為貫穿全年的常規(guī)工作,需要有一整套貫穿架構(gòu)設計、建設、運營、擴容、資產(chǎn)、變更、退役等生命周期線上自動化管理工具系統(tǒng),才能保證IDC生產(chǎn)業(yè)務的健康運轉(zhuǎn),鵝廠在2014年重構(gòu)了一整套這樣的工具系統(tǒng),并不斷優(yōu)化迭代,從架構(gòu)設計到機房退役,都可以在線上完成。
· 運營工具平臺需要從多維度對數(shù)據(jù)中心網(wǎng)絡進行立體監(jiān)控,包含了白盒監(jiān)控方法,比如針對網(wǎng)元本身的告警管理與收斂;黑盒監(jiān)控方案,比如Full-Mesh的Probe反映網(wǎng)絡健康狀況;還包括與上層業(yè)務之間的映射和互相聯(lián)動,比如鵝廠最大的流量平臺微信有大量的服務器和一整套網(wǎng)絡質(zhì)量監(jiān)控系統(tǒng),與網(wǎng)絡平臺合作一同快速發(fā)現(xiàn)故障并聯(lián)動操作隔離。
· 對SDN方法論的正確使用,是需要根據(jù)場景來構(gòu)建SDN體系的工作內(nèi)容和效用,SDN在數(shù)據(jù)中心網(wǎng)絡更多的是針對大規(guī)模網(wǎng)絡的Routing適應性問題、集中鏈路狀態(tài)維護、擁塞管理、故障屏蔽等方面發(fā)力,非常有針對性的解決問題,而不是SDN for ALL。
邊緣網(wǎng)絡(海外)
邊緣網(wǎng)絡(Edge)聚焦于“連接服務與用戶的能力”,其主要任務就是能將鵝廠的服務以最短的路徑、最好的質(zhì)量送到全球各地用戶的手上。國內(nèi)的邊緣網(wǎng)絡普遍以靜態(tài)對接ISP的形式存在,海外則以BGP對接為主,本章節(jié)主要對鵝廠海外的邊緣網(wǎng)絡架構(gòu)進行介紹。
海外ISP數(shù)量眾多,導致全球Internet是一個非常復雜的網(wǎng)絡環(huán)境,如果鵝廠所有的服務都是從海外的Data Center直接送給當?shù)氐膸讉€大ISP從而觸達全球每一位用戶的話,是非常難做到給各地用戶都提供非常好的網(wǎng)絡體驗的。鵝廠花了大力氣來解決這個問題:
· 鵝廠部署了很多資源來獲取全球用戶觸達鵝廠各地服務的探測和質(zhì)量數(shù)據(jù),作為業(yè)務開展和網(wǎng)絡加速的依據(jù),從而可以制定出有針對性的架構(gòu)方案和建設計劃。
· 邊緣網(wǎng)絡用于連接各個ISP,這個連接我們稱之為“出口”,出口的類型我們從架構(gòu)上分為兩種:基于Region的主出口Edge,和用于區(qū)域網(wǎng)絡加速的Edge-POP。
· Edge作為基于Region的主出口往往靠近Data Center,連接了大量的ISP,作為該Region的缺省出口。
· Edge-POP作為區(qū)域加速的覆蓋點,其規(guī)劃和建設的節(jié)奏是綜合眾多依據(jù)來考慮的,包括當?shù)鼐W(wǎng)民數(shù)量、上層業(yè)務規(guī)劃、覆蓋質(zhì)量、當?shù)赝ㄐ怒h(huán)境、綜合成本等因素。
· 所有的Edge和Edge-POP可以看成一整個資源池,承載于DCI網(wǎng)絡上面。
邊緣網(wǎng)絡在技術(shù)上也會遇到很多挑戰(zhàn),即多出口管理能力、流量調(diào)度能力、故障恢復能力等。在很早的時候,管理多出口和調(diào)度流量還使用的是傳統(tǒng)的網(wǎng)絡手段,經(jīng)常會因為某一個出口的質(zhì)量惡化,鵝廠網(wǎng)絡工程師需要手工登錄到網(wǎng)絡設備上用腳本去調(diào)整路由策略,以牽引流量去往質(zhì)量更好的出口,隨著出口數(shù)量的不斷增加,不管是在網(wǎng)絡規(guī)劃方面還是手工優(yōu)化流量方面,都變的越來越復雜和力不從心。舉一個簡單的例子,當只有兩個出口的時候,規(guī)劃和優(yōu)化都非常簡單,要么雙活要么主備,誰出問題就關掉誰,動態(tài)路由協(xié)議會自動收斂,看起來非常簡單,但試想當出口的數(shù)量有幾百個甚至上千個的時候,如何規(guī)劃這些出口的使用規(guī)則?正常情況下每個出口走哪些服務或者用戶的流量?故障或者質(zhì)量惡化情況下這些出口之間的備份關系如何?還要結(jié)合帶寬、成本、互聯(lián)ISP網(wǎng)絡內(nèi)部負載情況等因素來進行綜合考慮和設計,這個就變成了非常復雜的議題了,曾幾何時,鵝廠的出口網(wǎng)絡設備上有著幾千行的路由策略命令,有的跟規(guī)劃有關,有的跟優(yōu)化有關,有的跟處理故障有關,網(wǎng)絡運營變的越來越復雜,而且出口的數(shù)量還在迅猛增長。
幾年前,我們就意識到如果不重構(gòu)這一塊的設計,遲早有一天會玩不下去,正當SDN的浪潮席卷而來,我們借鑒了SDN的思路,并花了不短的時間來構(gòu)建這一塊的能力,形成鵝廠網(wǎng)絡的一個非常重要的競爭力,這個能力的核心就是多出口的集中控制,我們內(nèi)部稱之為 “用上帝視角來選擇出口和調(diào)度流量”。簡單的來說,我們將所有出口的帶寬、路由、流量、質(zhì)量、成本、IP與AS對應關系等信息采集或輸入至中央控制系統(tǒng)中,再開發(fā)出一套符合我們業(yè)務要求的算法,實現(xiàn)集中計算,保證各ISP、各地的用戶都能以當下的基礎設施條件下,以最好的網(wǎng)絡質(zhì)量訪來問鵝廠的服務,計算完成后再將執(zhí)行策略下發(fā)到轉(zhuǎn)發(fā)設備從而牽引流量落地。目前,這一整套體系已經(jīng)在現(xiàn)網(wǎng)落地,同時,我們還在這個平臺上構(gòu)建了一套服務層,讓上層業(yè)務可以自行開發(fā)APP使用這套集中控制系統(tǒng)來實現(xiàn)自己的需求,比如在DDOS就近清洗與一鍵封堵方面、公有云客戶流量自動切換出口方面、平臺級業(yè)務區(qū)域質(zhì)量優(yōu)化方面等。
DCI廣域網(wǎng)絡