騰訊云基礎產品技術總監沙開波近日出席2015架構師峰會,分享騰訊云網絡架構演變中吸取到的一些經驗教訓、騰訊云網絡的彈性實現、以及VPC自定義網絡的能力和典型應用場景。
以下是現場精彩觀點實錄:公有云用戶對網絡的核心訴求首先介紹的是,公有云用戶對網絡的核心訴求。因為我們每一次網絡架構的優化、演進都是以用戶需求來驅動的,所以在談架構演進之前,我們有必要談一下公有云用戶的網絡需求。在這里總結了三個關鍵詞:彈性、自由、安全。
為什么說彈性?我們發現公有云的用戶對單點的可靠性要求是非常高的,很多用戶的應用非常依賴對單臺主機的可用性。我們需要有一些技術手段來提高主機的可用性, 這里主要指的是主機的熱遷移和冷遷移的能力。
遷移和網絡有什么關系?主機遷移需要對用戶透明,必須確保遷移之后用戶主機的內外網IP地址保持不變,甚至在熱遷移場景下網絡不中斷, 這就是彈性網絡要去解決的問題。
自由主要指的是用戶能夠完全掌控自己的網絡環境, 比如自定義網段、自主劃分子網和配置路由的能力, 公有云面向的客戶類型很多,他們對網絡的需求也是各種各樣的。有些用戶,特別是混合云架構的用戶,他們非常需要自由規劃網絡的能力。
安全,對每個用戶都是非常重要的。這不僅要解決不同用戶之間的隔離,還要提供更多的安全管控手段給到用戶去管控自己的網絡。
騰訊云網絡架構的演進過程騰訊云網絡架構演進1-三層網絡
騰訊云最早期的網絡架構是一個比較簡單的三層網絡架構。這個網絡架構最大的特點是簡單,所有的IP地址都是事先規劃好的,并且靜態綁定到交換機上面。
這個架構最大的問題是內網IP只能在一個交換機下可用,如果將主機遷移到另外一個交換機下,主機原有IP就不能用了;還有IP地址需要事先規劃,這會引入另外一個問題, 地址規劃的多,用不完就會造成IP地址浪費,如果規劃的少, 主機的虛擬比就會受限于IP地址數目。所以,三層網絡不太適合在公有云機房里采用。
騰訊云網絡架構演進2-二層網絡
為了解決IP地址跨交換機遷移的問題,后來騰訊云采用了大二層網絡。 這個網絡架構下交換機主要依賴
騰訊云網絡架構演進3-Overlay網絡
出于對大二層網絡穩定性的疑慮,我們的物理網絡最終還是放棄采用大二層網絡, 退回到三層網絡架構, 然后通過自己設計Overlay的方式來實現虛擬網絡的彈性。
Overlay的核心是分布在所有宿主機上面的虛擬交換機,它是通過一個內核模塊的方式來實現的。宿主機上面運行的所有虛擬機都位于虛擬交換機下的虛擬網絡里面, 虛擬機之間的通信必須要通過各自宿主機上面的虛擬交換機來完成,我們可以看下位于不同宿主機下的兩臺虛擬主機之間的通信過程。
首先,源主機發出來的包,會在源虛擬交換機上進行目的宿主機尋址,即找到目的主機所在的目的宿主機;在源虛擬交換機上會進行Overlay封裝,然后通過物理網絡將Overlay之后的包轉給目的宿主機,目的宿主機上的虛擬交換機進行Overlay解封,通過MAC尋址最終把包轉給目的主機。
要實現這樣的通信方式,這里有兩個核心配置:
虛擬主機IP和宿主機IP的映射表。虛擬主機IP和虛擬主機MAC的映射表。對于虛擬主機的遷移來說,遷移前后只有宿主機地址更改了, 在Overlay網絡下我們只需要更新宿主機的地址。更新之后, 所有虛擬交換機會自動學習到新地址,確保遷移之后能夠正確地把包轉發到對應的虛擬主機上。對于Overlay網絡的控制器來說, 核心是維護虛擬交換機所需要的配置項,我們通過一個分布式集群來集中管理這些配置項, 這個集群性能支持平行擴展,所有虛擬交換機通過分布式拉取方式主動獲取所需配置, 并且實現ms級的配置下發能力。
騰訊云網絡架構演進4-VPC網絡
騰訊云剛開始設計的Overlay網絡主要解決的是IP地址跨交換機遷移的問題, 然后基于Overlay網絡再演進為VPC網絡, 這個演進核心是引入了兩個能力:
名字空間, 用來隔離不同的VPC網絡,每個VPC網絡都有一個唯一標識ID, 這個ID可以認為是名字空間, 每個ID都有自己獨立的地址空間, 從而做到不同VPC之間的地址是可以重疊的,在自己的地址空間范圍里, 用戶還可以隨意劃分子網,在我們的VPC網絡里面,子網只是一個邏輯的抽象;子網路由功能,這個功能核心是虛擬交換機對Overlay包的下一跳地址進行尋址,有兩種類型的路由:1)、Local路由,負責VPC內部兩臺主機之間點對點通信的路由,系統默認不能修改的路由配置;
2)、自定義路由,將特定流量路由到指定網關設備上使用。
比如:主機的外網IP都是部署在一個外網IP漂移的網關集群上, 可以通過這種路由配置, 將外網流量指向外網IP漂移集群, 實現主機外網流量的路由。
還有一種情況: 有可能是用戶想要將VPC網絡跟自己的數據中心里面的網絡打通,可以通過自定義路由的方式將去往數據中心的流量指向VPN網關或者專線網關。
現在騰訊云的VPC網絡已經跑了很多客戶的業務, 像小紅書、大眾點評、富途證券,已經慢慢地將他們的業務遷移到VPC網絡上, 當然現在主要的部署形態還是混合云。
VPC提供多種網絡連接方式,自由擴展網絡
為了滿足VPC在混合云場景下的網絡互聯需求, 騰訊云提供了IPSec VPN和專線兩種方式的網絡連接能力。
其中,IPSec VPN是通過公網加密傳輸,穩定性會受公網影響, VPN管理是用戶在控制臺里自助完成。
而我們的專線服務,比較有特色,它主要是依賴騰訊積累多年的遍布于全國主要城市的一張骨干網絡, 在骨干網上有很多專線接入點, 用戶如果想將自己的網絡通過專線與騰訊云VPC互聯,只需要從自己的數據中心拉一條專線出來到最近專線的接入點,就可以完成與騰訊云上所有VPC的互通,并且一次拉通就可以實現與多地域VPC同時互通的能力。
這種方式帶來的好處是顯而易見的,不僅專線施工周期比一般的會短, 而且用戶成本也更低, 非常有吸引力。
VPC網絡的安全: 安全組&ACL
對于VPC網絡的安全, 除了不同租戶、不同VPC之間的絕對隔離以外, 用戶希望有更多的安全管控手段來保護網絡的安全。VPC提供了兩種不同緯度上的安全管控能力, 安全組和ACL,他們的管理粒度不同。
安全組是在主機緯度上對主機的出入流量進行訪問控制, 它是一個有狀態的控制策略, 而ACL是在子網緯度上的訪問控制手段, 它是無狀態的。
所以, 兩臺子機互訪, 源子機發出去的包會受到他關聯的安全組的出方向策略管控, 而目的主機在收到包之前會受到它關聯的安全組的入方向策略管控, 如果是不同子網間的兩臺子機訪問, 各自還會受他們所在的子網的ACL策略管控。
簡單看,安全組其實可以理解為主機上面用戶自己去配一些防火墻策略,規則,但是這里面我們直接給到用戶的是一個完全自助化管理的能力,而ACL可以看成交換機或者是路由器上的一些ACL規則。
VPC網絡的典型應用場景基于VPC網絡的能力,用戶可以根據實際需求, 構建出一個最適合自己業務場景的網絡, 這是一個典型的業務部署模型, 業務所有模塊都部署在VPC里面,并且通過VPC互聯能力把多個網絡組成一個大網,實現一個可以異地容災的系統架構。
而混合云架構,是目前用戶采用比較多的部署方式, 用戶通過VPN或者專線將自己的數據中心和VPC網絡進行互聯。
什么樣的業務場景會采用這樣的部署方式:
用戶希望把業務遷移到公有云上, 如果要讓整個遷移過程盡量平滑,那么混合云就是一個很好的過渡階段。用戶業務遇到突發式增長情況, 而現有數據中心又滿足不了業務爆發式增長所需的資源,那么可以采用混合云架構,能夠快速將業務部署到公有云,通過公有云快速的資源交付和彈性能力來應對業務增長。通過混合云構建起現有數據中心和VPC互為災備的架構體系, 提升可用性。還有一些特殊行業,比如:銀行、證券、保險行業,對核心業務所在的機房會有合規要求,一些重要的數據和服務必須部署在一個監管非常嚴格的IDC里,而公有云短期是無法滿足這種合規要求的, 在這種情況下,通過混合云的方式,在滿足合規要求的同時, 也能享受到公有云帶來的優質服務。用戶引入混合云,會給用戶原有IT系統帶來更多的復雜性,那么騰訊VPC網絡提供了豐富的API能力,利用API,用戶可以方便地將騰訊云上的網絡、資源方面的管理集成到現有運維系統上,最大程度來降低系統運維的難度。
作者簡介:
沙開波:基礎產品技術總監,2009年加入騰訊, 先后從事公司高性能服務器框架、Web服務器、負載均衡等公共組件, 以及IaaS云計算平臺的研發與管理工作, 在高性能分布式服務、計算&網絡虛擬化、網絡安全隔離等領域有豐富的經驗。