概要:在傳統的觀念裏,美團彷佛一直被認爲是家提供吃喝玩樂的團購平臺。但其實,從深刻電影、外賣等領域起,美團就早已再也不是一家團購公司了,打開今天的美團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等通訊手段提取到控制器上,進一步整理和分析後,可以造成可視化的網絡路徑圖,實現更高效的網絡運維管理。
這些就是美團雲網絡架構一路演進的過程,在這個過程當中,美團雲的團隊成員始終秉承着「以最小代價解決最大問題」的思路,將軟件和硬件相結合,經過開源與自研,高效地實現了網絡架構的迭代,成爲了行業標杆,併爲千萬用戶提供更穩定、可靠的基礎設施雲服務。