美團云的網絡架構演進之路

GreSellar 8年前發布 | 40K 次閱讀 美團網 軟件架構

來自: http://www.infoq.com/cn/articles/evolution-of-meituan-cloud-network-architecture

在傳統的觀念里,美團似乎一直被認為是家提供吃喝玩樂的團購平臺。但其實,從深入電影、外賣等領域起,美團就早已不再是一家團購公司了,打開今天的美團APP:電影、外賣、機票、酒店、上門、甚至周邊游等多重垂直業務均被囊括其中。

2015年年底,美團與大眾點評宣布合并,合并后新美大的年活躍用戶量達到1.7億,高速增長的業務壓力和巨額交易量的背后,是美團云提供的技術支持,讓其保持著平穩運營。

作為領先的O2O電商云和大數據解決方案提供商,美團云在2015年入選了“TOP100年度技術創新案例”。 而今天我們要分享的,則是 美團云的網絡架構從最初到現在,是如何一路演進而來的,在這個過程中,又產生了有哪些產品和哪些思考。

做云是水到渠成的事

總有人會問美團為什么要做云?做好電商才是美團該走的路。其實不然,亞馬遜、阿里都是從電商起家的,而他們兩家分別是國外、國內體量最大的,所以,大規模的電商網站具有把云做好的天然優勢:

一方面, 云的核心技術一定是由規模驅動的,大規模的電商在這方面有更深的積累 。因為電商的特點除了流量大,其流量峰值波動也非常大,比如一些特殊的節日,用戶訪問量的峰值就會很高,所以電商在資源的彈性調度方面有更多的經驗。2012年,美團始逐步創建自己的私有云平臺,2013年5月正式對外推出公有云服務。2015年更是擴建了新的數據中心,并推出了更多的組件服務。

另一方面, 美團擁有的大數據相關實施經驗 ,使得美團云能夠對外提供更有針對性的大數據融合解決方案。

從技術角度來講,美團網是一家完全云化的電商平臺,規模體量居國內最大。目前美團的交易量僅次于阿里集團,只不過,阿里巴巴的電商業務絕大部分并未完全跑在阿里云上,而美團網所有的業務和交易,從2013年開始就完全跑在美團云上。

這個過程中,美團云在虛擬化、運維等方面積累了相當多的技術經驗。同時, 美團云對外輸出的不僅是底層IaaS的云服務,更有大數據解決方案 。因此,美團做云是一件水到渠成的事,美團云希望成為美團網技術積累對外輸出的窗口,為更多的創業者、中小企業包括正在進行”互聯網+”的傳統企業提供基礎設施云服務,解決大家在技術方面的后顧之憂,而能夠專心業務發展。

從私有云到公有云

美團網早期架構是從私有云做起的。 目標是,資源云化和快速交付。值得一提的是,美團云從一開始就沒有完全選用OpenStack,而是決定自研云平臺 。原因在于當時OpenStack并不成熟,只有個別組件比如glance、keystone是合適的,所以在虛擬化、網絡層,美團云進行了自主研發。

現在看來,這樣做是對的。因為OpenStack偏向私有云,如果當初完全基于OpenStack,現在做公有云將比較困難。但美團云選擇自研云平臺,結合自身業務,所以現如今能夠平穩地支撐著所有業務。

當處于私有云的階段時,主要的事情是把資源動態管理起來,對訪問控制和資源隔離沒有做太多要求。最初,美團云主要通過賬號登陸管理、日志進行事后審計。私有云之后,推出的是辦公云。辦公云主要針對研發、測試人員,進行內部的測試使用。在這個階段,美團云已經開始為公有云做準備,建立了賬號體系、計費系統等這些功能。

辦公云的存在,在現在看來有一個很大的好處,就是每一個上線公有云的功能都會先在辦公云上線,保證每一個功能的迭代都是穩定可靠的。也就是說,辦公云實際提供了一個真實的線上測試環境。辦公云之后,美團云對外推出了公有云服務。

早期的公有云和辦公云的架構大體類似,擁有更用戶友好、更完善的計費和消息系統、開放API等。其中,公有云最早的底層網絡特點有幾個,一是網絡都是千兆網絡,對軟件性能要求不高。二是底層采用VLAN大二層,通過OVS控制器對用戶進行隔離。由于早期流量不是太大,千兆的流量用OVS來控制尚可,控制器性能不夠的情況尚且不多。但隨著用戶數量的增多,以及使用量的變大,后續開始出現問題。這也恰恰促成了美團云進入全新的網絡升級時代。

從微觀角度來講,早期的公有云存在一些問題。首先,在穩定性上,內外網都是一根網線單上連一個交換機,一個地方出問題整個網絡就會出問題。其次,外網、內網、管理網都是一根網線,這是在沒有冗余的情況下,如果要做冗余的話,就要變成六根網線,成本太高昂。其三,千兆網絡漸漸開始不能滿足用戶需求。還有一些隱藏問題,比如當時所有的用戶都是在交換機的一個vlan網絡下面。

理論上來說,這樣是可行的。 但實際上,交換機對VLAN的支持能力限制了網絡規模的擴展,用戶數量受到限制 。再比如軟件隔離占用宿主機計算資源,可能會出現響應不了或者搶占用戶cpu的情況。同時,在這個網絡下想實現用戶自定義網絡(vpc)就非常困難,靈活性低。

因此,在經過了不斷地改進后,美團新的公有云網絡架構在物理鏈路、主機網絡、網關、控制器四個緯度上全面升級,大大提高了整體網絡性能。

四個緯度上的性能釋放

首先,從物理鏈路來看,性能方面,美團云實現了萬兆互聯;其次,在核心上實現了雙機冗余,不會因為某個物理環節問題,導致網絡不能啟動;第三,采用了TOR交換機堆疊,雙40G上聯,隨著日后網絡流量的增加,可以再擴展。此外, 在網線的選擇上,美團云還采用了10G Base-T的電口萬兆網絡,這個技術比較新,很多交換機廠商都還沒有這樣的設備 。但是它的成本較低,運維起來也會更方便。另外,在機房建設的過程中,美團云還使用了一些目前業界領先的技術,比如核心機柜封閉冷通道、預端接,對成本的節省都是百萬級的。

機房出口挖斷了怎么辦?同城多個互聯網數據中心(IDC)之間,通過邊界網關協議(BGP)來進行備份和冗余。當有一個機房的網絡斷掉的時候,會通過邊界網關協議的流量自動轉移到另一個機房。

但是底層的物理鏈路是萬兆,不代表上層能把萬兆利用起來。我們花了更多的精力,解決如何把萬兆網絡利用起來的問題。一部分是網關,就是整個網絡出口的部分,比如DPDK技術。DPDK技術目前是被主流使用的技術方案,對釋放網絡性能有較大幫助。另一種,預留1-2個處理器(core)接受數據,一個處理器根據自己的邏輯負責處理控制信息,1-2個處理器負責收包,其余處理業務,自己處理數據分發。

在實際使用中,美團云根據兩種模型的優勢,分別都有選擇。在浮動IP網關、負載均衡網關、 DDoS清洗設備三個部分,實現了全面的DPDK化,同時在四層網絡上,能夠并發1000w連接情況下新建連接100w/s。

“以最小代價解決最大問題”

當網關不是瓶頸的時候,流量就能夠自由通到主機上,所以接下來就是通過主機網絡釋放性能。美團云最早使用的OVS V1.1版本,在千兆網絡下可行,但萬兆網絡下性能遠遠不夠。升級到V2.3后平臺后,Megaflow對高并發情況下性能有數量級的提升,創建能夠滿足要求。

但另一個問題出現了,在單流的情況下,對萬兆網卡的利用率僅為50%。隨后在升級到V2.4,支持DPDK版本后, 美團云進一步提升了單流轉發性能 。在新版本的OVS下,只要10%的計算資源就可以提供萬兆的網絡能力,網絡數據處理不影響用戶計算資源。這樣一來,就解決了宿主機的物理網絡瓶頸。

而在控制層面,有兩個選擇,一個是傳統工具eptables/iptables,二是OVS的方案。所謂OVS的控制方式,是配置流表,交由控制器處理。控制器決定是否放行,動態地下發對應流表,在OVS控制器對數據包進行過濾和處理過程中,美團云開發了軟件層面的解決方案。針對單播,通過對SYN包檢查,下發流表,并對每個不匹配的UDP包進行檢查。

需要注意的是,由于發送端較難控制,而接收端對每個包處理,容易造成控制器隊列積壓。因此,美團云采用下發臨時流表的方式解決積壓問題,或者通過設置限流閾值,進行快速恢復。

但是軟件層面的解決方案無法根本解決積壓的問題, 因此下一階段的迭代就是在硬件層面進行隔離,通過VXLAN對用戶進行隔離 。說到選擇VXLAN,就要提到對SDN方案選用的一些思考:在底層的萬兆物理鏈路之上,美團云選用了Overlay的網絡架構。

簡單來說, Overlay的架構彈性靈活,業務與物理鏈接和端口分離,這就意味著網絡不再受限于物理上的連接和端口數量,可以按照資源池的概念來分配網絡資源 。而Underlay作為整個SDN框架的基礎,充分吸取和延續了過去長期積累的物理網絡優勢,穩定可擴展。一方面ARP/OSFP/BGP 仍然值得信任,另一方面相關領域的運維專業人才相對儲備也較多。在參考了業界最新的實踐經驗后,美團云選用了VXLAN的解決方案。

要做就做行業標桿

上述是在物理鏈路、主機網絡、網關、控制器方面釋放性能上,美團云所做的嘗試。再上層就是讓用戶可以靈活地自定義自己的網絡。為了應對靈活性的挑戰,美團進行了相應的處理,比如分布式的 DNS。

在傳統網絡下,一般使用默認的DNS服務器地址,并通過源IP區分用戶。但是在用戶定義網絡(vpc)的情況下,用戶的地址是可以重復的。所以用戶識別方面, 需要將VXLANID的用戶信息嵌入DNS數據包 。另外在用戶網絡中,DNS服務器的地址也是自定義的,所以實際的DNS服務需要使用Underlay地址,這里面就需要做地址的轉換和映射。

總體而言,新公有云的網絡結構全面升級為萬兆網絡層面,管理網做Bonding,用戶的內網外網overlay在管理網。VPC層面,通過VXLAN隔離用戶,并實現自定義的網絡。最后對外提供豐富的產品功能,比如浮動IP/負載均衡,對象存儲/塊存儲,RDS/Redis等。

未來,運維自動化的程度會進一步提高。通過openflow或者netconf等通信手段提取到控制器上,進一步整理和分析后,能夠形成可視化的網絡路徑圖,實現更高效的網絡運維管理。

這些就是 美團云網絡架構一路演進的過程 ,在這個過程中,美團云的團隊成員始終秉承著“以最小代價解決最大問題”的思路,將軟件和硬件相結合,通過開源與自研,高效地實現了網絡架構的迭代,成為了行業標桿,并為千萬用戶提供更穩定、可靠的基礎設施云服務。

更多關于美團云網絡架構的交流,歡迎掃描以下二維碼或者加群主微信(微信號greenguolei)進行交流。

</div>

 本文由用戶 GreSellar 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!