寫在前面:9 月 8 日,InfoQ邀請了阿里巴巴集團研究員、阿里雲智慧雲網絡產品線總經理祝順民(花名江鶴)做客直播間。本文整理自直播內容,獲InfoQ授權轉載。
如果說雲計算是現代 IT 架構中的基礎設施,那麼雲網絡就是雲計算的基礎設施,它決定了雲將以什麼樣的效能指標連線各類 IT 業務。那麼,雲網絡在建設的過程中,有哪些技術上的關鍵和難點?雲網邊端一體化程序,為雲網絡帶來了哪些挑戰?越來越成熟的 5G 商用,會為雲網絡帶來哪些機遇?跟隨大咖帶你“看穿”雲網絡的前世今生,自底向上,理解雲網絡這一現代 IT 架構中,最重要的基礎設施。
InfoQ:江鶴老師,應該說您是見證了整個阿里雲網絡從無到有,一直到現在發展成為整個雲計算服務的基礎設施的過程,對於這個過程,江鶴老師有什麼樣的體會呢?請您跟大家聊聊。
江鶴:我覺得作為一個技術從業者能夠經歷整個雲計算快速發展的過程是非常榮幸的。
對於雲計算網路,我也是經歷了從一個單一的網路慢慢發展成現在的雲網絡。在這十多年的過程中,現在回頭看,覺得它很快就發展成這樣了,但是回想一下當時的情況,是無法想象十年之後能變成現在這個樣子的。
阿里雲網絡是如何誕生的
InfoQ:首先咱們來聊一下整個雲網絡,江鶴老師能不能幫我們介紹一下阿里落實雲網絡它的整個發展的關鍵節點?
江鶴:在這裡我給大家介紹阿里雲洛神雲網絡這個系統,如果介紹整個洛神系統的經歷的話,要回到大概十幾年前的一個狀態了。
阿里雲第一天構建我們雲計算的時候,網路這一層還是非常傳統的:去買外面廠商的網路裝置、交換機、路由器、負載均衡裝置去搭起來,然後去用。
大家都知道網路是在一九七幾年開始慢慢發展的,對吧?但到了 2010 年前後,網路技術還是在原來的技術軌道中往前走。雲技術發展的一個最關鍵的地方就是我們把大量的伺服器集中在了一個機房裡面,其實絕大部分的使用者,在原來的 IT 系統中是不會需要一個機房裡面有這麼大量的伺服器的。
因為阿里雲的快速發展,也導致我們遇到一個問題。就是用傳統的網路裝置和網路架構的方案,已經無法支撐計算儲存的發展。這個時候,我們就去聯絡裝置廠商,去問有沒有更大規模的網路裝置,能夠承載的 IP 數量,橫向擴充套件路由表的數量。但從當時的晶片的發展來看,它最大的晶片都滿足不了我們當時的需求。所以我們也在想解決辦法。當然國外也有廠商在做雲計算,在做公有云,但找不到任何文章來描述他們是怎麼搭建起來的,這種情況下只能去摸索,根據我們的場景和問題以及終端使用者的需求,來思考。
當然技術原理很多都是相通的,最終構建出的解決方案在阿里雲是比較場景化的,所以這可以說是洛神系統的第一階段,我們現在叫他洛神 1.0,在這裡實現了一個很大的跨越,即從一個原來最傳統的經典網路,跨越到了一個虛擬網路,解決了在阿里雲上使用者和使用者之間的安全隔離問題。
第一代用網路虛擬化技術,用軟體定義的網路來解決最基礎的安全隔離,但這還不夠。因為我們又發現阿里雲上的單個使用者擁有虛擬機器的體量和儲存體量其實是在快速增長的。所以這時,需要網路架構和網路管理,這也促使我們把網路變成一個產品,而且這個網路是可以自己規劃、定義的。這實際上是我們的第二個階段。
第三個階段我們發現單個使用者更大了,這時候他們多個地域之間的虛擬機器是需要聯通的,如果聯通都是走公網的話,安全效能肯定得不到保障,所以我們在這個基礎之上延伸出了一個全球跨地域的網路,就是把廣域網虛擬化。
當走到上一階段,使用者體量和單個使用者的規模更大了,我們又碰到了效能的問題性,以前是軟體定義網路,包括網路裝置等都是用軟體自己去研發出來的,但是大到一定程度,還是用軟體 CPU 的摩爾定律,就約束了能達到的程度,所以我們去構建硬體晶片裡面的業務邏輯來研發自己的網路裝置,這也是我們最新的一個階段。
InfoQ:江鶴老師,我們瞭解到十年前虛擬化的方案好像也不是很多,那咱們在最開始做虛擬化的時候有什麼可參考的案例嗎?
江鶴:你講的其實是一個非常關鍵的點,那個時候業界在整個虛擬化技術上分為兩大派。其中的一派是國外的公有云廠商,另一派其實以 Open Stack 為代表的這一派,當時對於 Open Stack 來說,還沒有這麼完整的網路虛擬化這一層,它更多的關注計算的虛擬化。
然後講到國外的雲廠商,我們在公開的材料上幾乎看不見他們,他們沒有實踐過程,沒有實踐方案,沒有實踐技術原理方面的解讀,能看到的只有產品,所以說在當時可參考的是非常少的。我記得非常清楚的是頻寬的資料。我舉幾個關鍵的例子,第一個例子說天貓淘寶業務。一個地域裡面一張虛擬的網路,它現在要求至少都是 100 多萬臺虛擬機器的規模,開始其實只能支撐 30 萬臺,但現在我們已經可以完全滿足了。第二個資料以去年雙十一為例。去年雙十一我們給單個客戶提供的最大混合雲是 32 個 T,這都是很大的挑戰。第三個資料就是公網。去年疫情期間,學校開學前,我們在一兩天之內給釘釘準備了 1 個 T 的公網頻寬,這也是規模比較大的資料。
InfoQ:東南亞的網路環境很複雜,那麼江鶴老師在東南亞的網路建設過程中有什麼體會?
江鶴:就像你講到,其實東南亞很多國家,它們的網路發展階段是不一樣的。比如說整個東南亞發展階段最好的是新加坡,但人口最多的是印度尼西亞。所以從目前來看,新加坡是東南亞的一個核心,很多流量交換都會透過新加坡,它的網路情況最好,而印度尼西亞流量最大。所以現在像國內的一些企業,如果想去東南亞發展業務,可以先在新加坡阿里雲的機房裡面開始構建你的業務。
所以對一些大型公司來說,當他們的業務大到一定程度後,比如說印度尼西亞的使用者對延時要求比較高的時候,會慢慢的把業務轉移到馬來西亞這些地方去。
InfoQ:在整個阿里雲網絡發展的節點中,有什麼節點是江鶴老師印象最深刻的?比如雙十一算不算個嚴峻挑戰?
江鶴:說實話雙十一對我們來說還好,因為作為一個技術人員加入到阿里之後,每年都會做雙十一,而且大家都知道雙十一的流量一直在往上漲,所以會提前準備好也沒有那麼突發性。
但是阿里雲的客戶對我們業務的突發性要求就更高。還是舉個例子,我印象很深的一次是有一次我們發現了一個潛在的 bug,因為擔心這個 bug 可能會產生大故障,所以我們在一個晚上把阿里雲所有地域的負載均衡全部做了版本升級。
InfoQ:當時有沒有考慮先灰度測試一下?
江鶴:沒有。因為是我們基本上是一個非常穩定的版本,可以說只需要改動一行程式碼,所以是非常有信心的。
雲計算最核心的是穩定的服務。從做阿里雲這十幾年的經歷來看,除了技術和產品做得好之外,我們最有心得的是如何保障這麼大規模的一個雲計算基礎設施是穩定的,包括從我們內部看網路,故障也是非常少。所以穩定的服務是公有云廠商最核心的一個能力,同時也是最見功底的一個能力。
InfoQ:從什麼時候起,江鶴老師覺得故障或者 bug 率開始降低了呢?
江鶴:在 2017 年之前我們的發展其實非常快,在現在看來故障還是不少的。在 2017 年之後,我們意識到穩定性是最重要的一件事。
再舉一個例子,我們有一個客戶在阿里雲上面,他的 APP 是非常知名的,有一次發生一個故障影響了 APP,我回家之後,家人就問這個 APP 為什麼今天不能用,跟你們有沒有關係?從那時候我就意識到阿里雲不僅僅只是做一個產品,我們應該確保的是一個服務的延續性。這關乎到咱們老百姓的生活和上網體驗,也有了超脫於產品之外的使命感與責任感。
雲網邊端一體化與雲網絡建設方法
InfoQ:接下來想跟江鶴老師聊聊大家很關注的概念:雲網邊端一體化,能不能給我們簡單介紹下?再者,這對雲網絡來說,有什麼新的挑戰嗎?
江鶴:這個詞確實很大,我分享一下我個人的一些見解。
首先來說雲和網的關係。雲是內容,網是連線是通道,但網的發展其實是促進了雲的發展。我們回顧一下,過去十幾年,從 2G 到 3G 到 4G 到現在的 5G 其實是網路通訊能力的提升促進的內容的發展。再延伸一下,今天網的能力又進一步提升了。我們國家運營商的網路從 4G 升級到 5G 有三個非常關鍵的特徵:海量裝置、高吞吐,低延時。當影片甚至互動式影片內容產生的時候,對延時的敏感度就會非常高,以中國為例,幾個大區的 region,離有些省份距離還是挺遠的,那有沒有可能往下降一層,降到是省級別,甚至市級別,甚至再往下降,這也就是說內容需要下沉,也意味著需要有更多的機房來承載業務內容和包括提供內容的這些應用,這其實就是邊緣的發展,而這個端一定是配合的。
從技術角度來看,也提出更多的要求,假設一個應用在國內只部署一個 region 就可以了,應用的價格會比較簡單,但是如果要在全國三十幾個省市部署,具體怎麼做?應用和應用之間的訪問怎麼去定義,那就會變成一個很複雜的事情,而所有複雜的事情都會出問題。這也對網路技術,儲存技術,包括對應用層的中介軟體訊息都提出了很高的要求。所以大的背景是網路技術的發展,帶動了雲的發展,帶動了應用的發展,最終還是回到使用者的體驗。
InfoQ:在讓網路變得簡潔這方面,有什麼具體的方向嗎?
江鶴:有。因為今天阿里雲的物理伺服器的規模非常大,當規模發展到這種程度的時候,伺服器的損壞是必然的,所以我們的計算團隊投入了非常大的資源去研究如何提升伺服器以及如何降低宕機率。
我們會有一個歷史的統計,就是每天會發生多少臺伺服器壞掉,這幾年我們在伺服器的質量,包括其他方面做了一些工作,宕機率其實降低了很多,但是從網路裝置上來講,它一定也會斷也會壞掉。
第一,讓使用更簡單,從網路鏈路上來講,光纖一定會壞,尤其光到電的轉換,這個過程多少也會出問題,但是如何做到能讓阿里雲的使用者感知不到,這就是軟體硬體聯通協同起來做的;
第二,讓運維更簡單,大量的伺服器和網路裝置,如果全部是靠人去運維去管理的話,開銷會非常大。所以如何提升每個人能掌控管理的伺服器數量和網路裝置的數量,也是我們不停追求的一個東西。
InfoQ:咱們是透過什麼方式來降低人力成本的?
江鶴:我可以簡單介紹一下。我們現在在網路裝置方面:第一,交換機都是自己研發的。整個交換機裡面一些物理硬體,都是自己設計的;第二,我們把所有網路裝置都加了類似一個探針一樣的東西,把很多資料給提出來,就可以監視其執行狀況。以前黑盒的時候,對它的監視其實就是 work 不 work,但是現在我們都會開啟到埠級別。安全規則級別不同維度的資料都採集出來,然後再把所有資料集中在一起去做資料分析。
關於資料分析的目的,第一,我們希望在問題發故障發生之前,提前能夠預測到可能要發生故障;第二個在故障發生的時候,我們能夠知道發生了什麼故障,原因是什麼;第三點,如果已知的故障,我們都是儘量要去解決掉。
InfoQ:江鶴老師覺得在整個發展過程中哪一類指標提升最大,現在仍然非常關注的。
江鶴:其實我最關注的三個數是 1、5、10,這是什麼意思?
第一,如果發生故障,我們最遲 1 分鐘之內要知道故障已經發生;第二,故障已經發生 5 分鐘,要有基本的判斷,故障影響範圍有多大;第三,10 分鐘要把故障給恢復。不管你是去做 fix,還是去做容災切換,要在 10 分鐘之後讓使用者感受不到故障的存在。其實阿里雲保證保障服務的延續可用是我們最關鍵的一個能力要求,所以幾乎所有的產品團隊都在追求這一點。從實現上來講,也會有各種各樣的方法:第一,比如我剛才提到的資料分析和資料的應用的能力。第二,會存在一些冗餘的設計。
InfoQ:疫情出現後,有很多不依賴公有云的、端到端的網路加速服務都出現了,江鶴老師覺得它們之間的聯絡和區別是什麼,它們是否有一些共通的能力?
江鶴:因為疫情,把人和人的交流轉為線上。大家在互動的時候,看影片還是會感受到有一些卡頓。在這個時候其實最關鍵的是網路的幾個指標:時延、頻寬、丟包率。
因為網路它一定會存在丟包,在原來的網路基礎之上,如何降低丟包率,我們追求的另外一個維度。如何在一個網際網路之上的兩個端的中間用一個加速網路,這裡面帶來幾個技術的研究點:第一,最後一公里 over Internet 的時候,它一定會存在丟包,如何去解決;第二,雖然中間,但是這個網路會存在一個排程問題;第三,即使是一根鏈路,它也有多冗餘,如何去選擇。所以在網路層面現在的加速,就是在原有基礎網路之上再做一層軟體定義的加速網路,我們也看到最近有很多業界的廠商在做這個問題,但最終都是去解決網路連線的速率問題和時延問題。
InfoQ:我聽說江鶴老師出了一本新書,叫《雲網絡:數字經濟的連線》,能不能再給我們介紹一下為什麼會出這樣的一本書,然後這本書主要是在講什麼樣的內容。
江鶴:這本書其實叫雲網絡,關於為什麼出這本書,其實是有幾個想法。
第一,我們覺得現在的網路跟以前不一樣。當我們和一些做傳統網路的技術人員聊的時候,會發現有時候對話對不上,雖然最終都是網路,但是我們去構建的這張網路的方式和把網路以服務的形式提供出來的形態它是不一樣的;第二,我們提供給使用者的網路形態發生了很大變化之後,還是有很多的技術人員對雲上網路的概念並不理解;第三,我們看到國內整個業界從事這一塊的技術人員還是非常少的,真正做雲的廠商也沒那麼多。基於這幾個出發點,我們想要把我們的理念、做網路技術的方式和設計網路產品化的概念,去寫出來並和業界更多的人去交流,也讓更多的人能夠接觸到。
InfoQ:疫情這兩年繞不開的一個話題,就是企業數字化轉型。隨著數字化轉型,流量的挑戰也會越來越大,那麼在您看來,雲網絡應該如何做好技術儲備,應對這種挑戰?
江鶴:確實我們能感受到傳統領域裡面的數字化是在快速發展的,數字化轉型最終一定是資料化,同時也對網路提出更大的一個要求。
從整體來看,我還是認為網路是基礎設施,網路一定是為應用上層業務服務的,那我覺得網路一定要變得越來越簡單,讓上層感知不到網路。另外,從技術願景角度來說,希望端到端之間的連線,是可以隨意彈性的且又成本是低廉的。所以技術的發展一定是為終端使用者的體驗提供能力,但是又讓使用者感知不到你的存在,阿里雲作為一個雲廠商所追求的理念,就是這樣的。
InfoQ:對阿里雲來說負載均衡肯定是一個值得追求的,那在這方面咱們做了什麼工作嗎?
江鶴:負載均衡這方面,我們其實做了很多工作。在 2011 年之前,我們的負載均衡分為兩類。第一類是買的國外的負載均衡裝置。第二類就是我們當時在嘗試有沒有可能用一個開源的 iOS 能夠去搭建負載均衡。所以從 2011 年開始我們就基於 iOS 去研發了一個新的版本的 iOS,當時我們把它開源到了官方網站上,做了它之後,大概花了一年到兩年左右的時間,我們把整個阿里巴巴集團全部換成了自己的負載均衡。
而且我們沒有止步在上面,那個時候負載均衡其實都是基於 Linux kernel 的,我們又自己做了一個網路協議棧,把整個 iOS 基本上重寫了一遍,這樣基於我們自己的一個網路協議的新的 iOS 做起來之後,相比原來同一臺物理的硬體伺服器,效能提升了幾十倍。當然目前我們仍未停止,近幾年研發了一款基於 FPA 的加速晶片,把一個純軟的負載均衡變成一個軟硬結合的,因為使用者需求非常大,所以也鞭策我們一直在效能的道路上追求下去。