譚婧
別怪我沒提醒,云計算的虛擬化,和前幾代虛擬化,大為不同。
前幾代產(chǎn)品與DPU隔著一條深不見底的天塹,跳過去,就是通天大道。
問題來了,怎么跳?
從2012年開始,亞馬遜云團隊,尤其是EC2虛擬化就開始思考:
那個叫做Hypervisor的“超級管理員”,得膽子再大一點,能力再強一點。那么問題來了,世間能做出比純軟件架構(gòu)更好的超級管理程序嗎?
這是我能找到的,安東尼在外媒采訪中談到的,亞馬遜云關(guān)于DPU思想萌芽最早的時間點。
但那個時候還沒有Nitro的影子。
后來,把Nitro System曝光于公眾面前的,是一次知名的收購案。
被收購的公司叫做Annapurna Labs,也就是安娜普爾納峰實驗室,公司在以色列和美國都設(shè)有研發(fā)中心。
登山愛好者,瞅這個名字很眼熟。
巧了,喜馬拉雅山最高十峰之一,安娜普爾納峰。
角峰銳利,山體挺拔,線條凌厲,冰雪覆蓋,云海猛烈翻滾,在向全世界的登山者搔首弄姿:“你過來呀~”
又巧了,公司兩位創(chuàng)始人Billy和Nafea也是登山愛好者,以攀登此峰為榮。雖未抵達,但心已至,他們將角峰設(shè)計成LOGO,印在了封裝好的芯片上。
登山是個人英雄主義,DPU是團隊實干集體主義。
安娜普爾納峰實驗室對于亞馬遜云來說,就是上天恩賜的禮物。國內(nèi)云廠商一開始有這個好買賣,半夜睡覺都笑醒。
收購這件事情,光有鈔票不行,好的“收購目標”極其罕見。
這家“登山愛好者”公司,除了登山,還有幾個絕:”其一,Graviton芯片,云廠商第一顆Arm芯片;其二,是一種虛擬機抄近路小能手的技術(shù),ENA。
這種技術(shù)講究的是四兩撥千斤,使得虛擬機繞過軟件(內(nèi)核和用戶空間網(wǎng)絡(luò)處理程序),直接操作硬件(網(wǎng)卡),如此這般,提升了網(wǎng)絡(luò)效率。
昔日寂寂無名的ENA,成為亞馬遜云網(wǎng)絡(luò)虛擬化的關(guān)鍵技術(shù),日后是大名鼎鼎的Nitro的一部分。
2015年,收購價3.5億美元。別看當時花了多少,要看日后省了多少。這是一場幾乎完美的收購,每年都為亞馬遜節(jié)省大把美金。
因為DPU的特長之一就是很能打,打敗虛擬化損耗,不在話下。損耗少了,當然省錢。
安娜普爾納峰實驗室開發(fā)的這張卡,不僅卸載了VPC網(wǎng)絡(luò)功能,還卸載了EBS 存儲網(wǎng)絡(luò)功能。
這就是前文提到的,“任務(wù)卸載”技術(shù)。
據(jù)網(wǎng)飛公司技術(shù)高管(Brendan Gregg)的說法,Nitro的性能損耗非常?。ú坏?%),Nitro的虛擬化性能接近裸設(shè)備。
亞馬遜的文化里,有單向門和雙向門決策的說法:“單向門”的任務(wù),像電影《魷魚游戲》,大抵是干活時被人用槍指著腦袋。只要任務(wù)失敗,就“嘣”一槍。
“雙向門”就是這個場景用得不好,搬到別的地方,說不定還能用上。
DPU是專用的,“專用”意味著,拿到別處“沒用”。
Nitro 系統(tǒng)開發(fā)的時候,槍和腦袋的距離,幾毫米。
研發(fā)團隊在描述艱難的開發(fā)歲月的時候,像個文科生,一口氣用了四個形容詞。他們說:“這次我們做決定,有條不紊,謹慎,緩慢,深思熟慮?!?/p>
這不是普通的任務(wù),其要求已經(jīng)超出了傳統(tǒng)虛擬化技術(shù)的能力。因為打破傳統(tǒng),就是浴火重生。
研發(fā)團隊在技術(shù)博客里寫下:“只有創(chuàng)新才行,但我們沒有急著拍腦袋。整個探索的旅程歷經(jīng)五年,仔細、反復(fù)試驗,每一步都很小心,驗證我們前進的方向是正確的?!?/p>
喜大普奔的2013 年,亞馬遜云研發(fā)團隊推出了第一款Nitro 卸載卡(C3 實例類型),將網(wǎng)絡(luò)進程卸載到硬件中。
馬不停蹄的2014 年,將 EBS 存儲卸載到硬件中(C4 實例類型),這次研發(fā)團隊首次與一家名為安娜普爾納峰實驗室的公司合作。
Nitro研發(fā)團隊談到了研發(fā)的時間節(jié)點:“2017 年,我們卸載了最后的組件,包括控制面和剩余的 I/O,我們引入了一個新的管理程序,具有 C5 實例類型的完整Nitro系統(tǒng)。”
代碼長什么樣子,如今已經(jīng)記不清了,但工程師依然記著當時的心情:“這是投入的揮金如土,是身心的殫精竭慮,是承諾的使命必達,是不可思議的時刻。當Nitro 系統(tǒng)推出時,五年辛勤,此生難得?!?/p>
Nitro給亞馬遜云帶來什么?
Nitro的迭代推動亞馬遜云最核心的EC2產(chǎn)品家族不斷往更大、更快、更安全、更穩(wěn)定、更多類型、更高性價比方向演進。
Nitro 系統(tǒng)讓亞馬遜云有能力提供 100 Gbps 增強型以太網(wǎng)網(wǎng)絡(luò)的云,支持更高吞吐量或受網(wǎng)絡(luò)限制的工作負載(如 HPC 應(yīng)用程序)。
借助 Nitro 系統(tǒng),將虛擬化功能卸載到專用硬件上,將 EC2 的架構(gòu)分解為更小的塊。這些塊以多種不同的方式組裝,能夠靈活地設(shè)計和快速交付 EC2 實例,并提供越來越多的計算、存儲、內(nèi)存和網(wǎng)絡(luò)選項。
亞馬遜云 CTO 沃納·威格爾(Werner Vogels)曾經(jīng)說過,“在亞馬遜云,90%到95%的新項目,都是來自于客戶給我們的反饋,剩下的5%也是從客戶角度出發(fā)所做的創(chuàng)新嘗試?!?/p>
而Nitro 系統(tǒng)正是這種項目之一,它誕生于2013年,成熟于2017年,到現(xiàn)在還在不斷進化中,2021年已經(jīng)迭代到第五代。
最重要的一點,亞馬遜云科技的團隊看到了,阿里云神龍團隊也看到了。
安東尼看到了,張獻濤也看到了。
把傳統(tǒng)的虛擬化技術(shù)直接移到云計算,缺陷極其明顯,畢竟不是為了云計算的服務(wù)器而生的。
2016年左右,張獻濤博士,天天都在思考同一個問題:什么樣的虛擬化技術(shù),才適合云計算?
得從根本上解決傳統(tǒng)虛擬化應(yīng)用到數(shù)據(jù)中心里面存在的缺陷(也就是性能、資源、隔離方面所有的問題)。
他腦中的“神龍系統(tǒng)”慢慢清晰。
那一年里,張獻濤博士密集、低調(diào)往返于北京和杭州兩地,意在勸說多位大咖級芯片主架構(gòu)師加入阿里云。
有這樣一句話,很打動人心,日后實現(xiàn)的時候,更激動人心:“外界無法理解互聯(lián)網(wǎng)公司要做DPU的決心,這件事情絕對是前人沒有做過的,它可以改變云計算里面最核心的技術(shù)?!?/p>
神龍芯片給阿里云帶來什么技術(shù)價值?
張獻濤認為,第一,解決CPU和內(nèi)存完全隔離的問題。這里的隔離有兩個層面意思,一個是安全方面的隔離,一個是性能的隔離。
第二,IO鏈路上最容易出安全漏洞。QEMU這個模擬器是從傳統(tǒng)的虛擬化帶過來的,在神龍芯片第一代的那個時間點上,它是完完全全過時了。
所謂的過時了,包括兩點。其一,代碼是開源的,人人皆可見。其次,安全漏洞多,常發(fā)生一些虛擬機逃逸的情況。
在公共云的世界里,“虛擬機逃逸”五個字,還沒有說出口,就有一群人撲上去,捂住你的嘴——虛擬機逃逸=絕對不允許。
DPU解決了性能,同時也解決了安全方面的問題。
神龍芯片一開始就想好了,多張卡解決問題,強調(diào)多合一,多種功能在一張卡上實現(xiàn),復(fù)雜度下降,穩(wěn)定性增強。
兩架馬車,解決的問題一樣,實現(xiàn)的思路不同。
DPU的一個關(guān)鍵就是,“從哪里切”與“切到何處”,答案充滿玄機和禪意。這讓人想起庖丁解牛,若要回答:骨在哪,肉在哪,骨肉相連又在哪;恐怕要稔知全牛結(jié)構(gòu),全憑手感,刀法在腦海里,在肌肉里。
這還不夠,難題在于,每一家云廠商的軟件是不一樣的:怎樣處理分布式存儲和分布式網(wǎng)絡(luò)的軟件接口?哪些應(yīng)該放在控制路徑?哪些放在數(shù)據(jù)路徑?
如果不懂虛擬化,你就不知道怎么切,或者切完后性能也不好。
DPU團隊表面生氣,心里憋悶,誰出的破題?再或者,有的DPU團隊,還沒有看到牛在哪里。
DPU這個東西,光有硬件思路,或光有軟件思路,一定會出大問題。
當故事講到這里,虛擬化的知識就不夠用了,要細聊張獻濤在英特爾的另一段經(jīng)歷。
上海虹橋作為著名的交通樞紐,周邊房價,一直看漲。
2005年的時候,張獻濤剛到英特爾實習(xí),工資不高,錢包不鼓,在大虹橋地段找房子住,選來選去,選了仙霞路附近的茅臺路,一個叫做天山五村的老式小區(qū)。
大虹橋的房價,逼得張獻濤和師兄合租了一個單間,逼仄的房間里,擺了兩張單人床,已經(jīng)夠局促了。沒想到,更局促的在后面。
一進英特爾,張獻濤的壓力值就爆表了。
為什么?他發(fā)現(xiàn),六年的計算機專業(yè)白讀了,媽耶,英特爾大牛們說的話,居然聽不太懂。原因是他們講的那些東西,都牽涉到芯片內(nèi)部的專業(yè)知識。
能主宰一個時代的門派,半導(dǎo)體產(chǎn)業(yè)鏈的頂端,還是有很多秘籍的。腦袋混沌了幾天之后,張獻濤那股子不服輸?shù)膭艃?,上頭了。
《英特爾系統(tǒng)編程手冊》(System Development Manual)是這樣一種存在,你看第一遍,包你根本看不懂。
照理說,計算機的操作系統(tǒng),是按此寫出來的。比如,英特爾的64位處理器用的是IA 64,配套的《手冊》有好幾卷。
《手冊》也誠不我欺,卷卷厚如板磚,就不信你能讀完。
晚上,師兄睡了,張獻濤不敢開大燈,從枕頭下面摸出一樣?xùn)|西,手電筒。于是,咳嗽放屁都在一個被窩里,用手電筒的光,照著看《手冊》。
老舊小區(qū)的黑瓦和夜色融在一起,樓層里閃爍著零星的光,從窗口的方格里冒出來,張獻濤屋里的光,從被子里透出來。
開了頭才知道,痛苦是一層套一層的套娃。每日不輟的翻讀,還要看操作系統(tǒng)的內(nèi)核代碼。這行代碼為什么這么寫,他要到編程手冊里找答案。這還不夠,要看Linux和Xen的代碼。
看不懂怎么辦,英特爾還有一個“師兄幫扶”機制,類似學(xué)霸紅領(lǐng)巾,不懂問師兄。
左手一本軟件編程手冊,右手一本硬件編程手冊,外加Linux內(nèi)核代碼,一行一行去理解。再看不懂怎么辦,去找美國的工程師請教。張獻濤吃一口編程手冊,蘸幾行Linux內(nèi)核代碼,成為每日的例行動作。
日復(fù)一日,張獻濤對CPU、對操作系統(tǒng)的理解,加深加深,再加深。
在英特爾公司,張獻濤知道了一個“冷知識”。
任何一顆芯片,從英特爾公司“走”出來之前,內(nèi)部員工可能提前三到五年就已經(jīng)拿到了“未出廠的芯片”。
工程師們要把 CPU所有的新功能用軟件“用”起來。
說白了,到手的芯片還沒有正式量產(chǎn)。芯片里面會有各種各樣的毛病。你要去理解“問題”來自于軟件,還是硬件。
不了解這點,你永遠不會懷疑CPU會出問題。
DPU的技術(shù)領(lǐng)袖,需要對芯片、對芯片組、對PCIe總線、對操作系統(tǒng)、對虛擬化的了解,到達一種境界,關(guān)燈取物,如同開燈取物一樣自如。
看似行云流水的判斷,是在日復(fù)一日、年復(fù)一年、無聲無息中形成的,就像火山爆發(fā)后,熱風(fēng)里從早到晚飄落的火山灰,把一切技術(shù)難點都掩埋。從火山灰中醒來,看到一個重塑的新世界。
DPU的部署,無異于完成了給高速飛馳的列車換防風(fēng)材料,給深海作業(yè)的潛艇換防水材料。
2017年到2021年,亞馬遜云和阿里云均已跑步進入了DPU產(chǎn)品迭代良性循環(huán)的新世界。
2021年的夏天,張獻濤博士對我說:“以前,沒有人相信互聯(lián)網(wǎng)公司需要芯片技術(shù)。現(xiàn)在,大家都相信了。”
裁判一聲長哨,男主持人富有磁性的聲音播報:觀眾朋友們,這里是數(shù)據(jù)中心賽場,IaaS層終場,云計算基礎(chǔ)設(shè)施最后一場比賽。
當優(yōu)秀DPU問世的時候,國內(nèi)云計算廠商在IaaS層,這輪的戰(zhàn)斗,宣告結(jié)束了。
自研出DPU的云計算廠商說:“我攤牌了,我贏了?!?/p>
哪怕五年前,放眼找工作的網(wǎng)站,就算云計算廠商“放出”招芯片專家的崗位,誰敢去?去干啥?再資深的HR一看崗位說明,都懵了,就沒接觸過搞芯片的人。
軟件開發(fā)周期何其快,硬件開發(fā)周期何其慢。旁人都說,這戀情看上去就不長久。
老牌芯片公司一扭頭,眼角余光里都是質(zhì)疑。云廠商只擅長軟件,如何面對芯片 云廠商面對的場景極其復(fù)雜,用芯片怎么搞定?
問題是復(fù)雜中的復(fù)雜,需求是剛需中的剛需。
很抱歉文章科普得遲了,DPU是一種云上服務(wù)器的專用芯片。
這句話,有兩個關(guān)鍵詞,“云上服務(wù)器”和“專用芯片”。
先講,云上服務(wù)器。
云上服務(wù)器有些像公共澡堂,可以一個人用,也可以多人共用,麻煩都是“一起用”帶來的。
可口可樂和百事可樂要在一朵云上,還能互相看文件,立馬就翻臉了。
那怎么辦?
答案是:得插DPU,而且是每臺服務(wù)器都得插。十萬臺服務(wù)器,插十萬張DPU。殺毒軟件是用軟件保護安全,DPU的作用之一是用硬件保護安全。
說到安全,硬件比軟件更能打。
再講,專用芯片。
提到專用芯片,挖礦炒幣賺到錢的人興奮了,搶著說:“我最內(nèi)行?!币驗椴煌募用茇泿?,要不同的礦機。礦機越對口,挖幣越賺錢。
金錢的銅臭味,告訴我們:專門的事情,讓專門的芯片去做。
現(xiàn)在還有爭議,但是未來,會看得清楚,DPU是云計算的標配。
摩爾和登納德兩位老先生,無情指出“現(xiàn)實之無奈”,CPU成了最昂貴的“打工人”。
所以,DPU作為專用硬件,除了安全,還要來給CPU減負。
幾條街之外,都能聽見DPU的嘮叨:“哎呦,CPU我的祖宗,快放下,您哪敢動這,可不能把資源浪費在網(wǎng)絡(luò)和存儲的負載上?!?/p>
CPU則說:救救孩子吧。我太難了。
CPU大聲呼救的原因是:CPU既要處理大量的上層應(yīng)用,又要維持底層軟件的基礎(chǔ)設(shè)施,還要處理各種特殊的IO類協(xié)議,不堪重負。
把“負擔”從CPU上卸載下來,DPU將有望成為承接這些“負擔”的代表性芯片。CPU也很高興DPU的出現(xiàn),你行,你上呀。
的確,有人夸DPU是繼CPU和GPU之后的“第三顆”主力芯片。
不要因為鮮花和掌聲太多,就對DPU的能力有什么誤會。
CPU穩(wěn)坐“主咖”寶座,CPU可以當DPU用,CPU也可以當GPU用,但是反過來不成立。
DPU的事情CPU能做,但是,CPU比DPU昂貴老多了。牛刀太貴,殺雞的人自然不舍得。
云廠商想實現(xiàn)“一起洗澡(一起用)”,得靠虛擬化技術(shù)。虛擬化雖好,但是會引發(fā)一堆“糟心事兒”,比如性能損耗,甚至有人把這種損耗比喻成“交稅”,搞不定當然多交稅。
這種損耗也相當于,還沒有開始洗澡,一半水在水管里就浪費光了,肥皂沫都沒有來得及沖掉。
技術(shù)問題越難,極客們越興奮,不自覺揚起了手里的小皮鞭。
虛擬化是DPU的精髓,虛擬化的歷史幾乎和計算機一樣悠久,是計算機科學(xué)史上最偉大的思想之一,造就了偉大的云計算技術(shù)和市場。
“制造假象”“隱藏細節(jié)”(給上層應(yīng)用提供一種假象,降低上層應(yīng)用使用下層資源的復(fù)雜度)。
我們天天在用的操作系統(tǒng),也是一種虛擬化的“思想”,是對硬件資源的虛擬化。PC機的虛擬化,把計算的核心“變成”進程。把存儲介質(zhì)“變成”文件系統(tǒng)。
云計算的硝煙戰(zhàn)火中,虛擬化這個噴涂了迷彩偽裝的彈藥庫,終于藏不住了。