啟源拓展學院(百分百領導力培訓課程)

圖片來源@視覺中國
文丨親愛的數據,作者丨譚婧
DPU是人工智能芯片之后的又一大熱點。
業內人士笑談,那些投資人鉆研DPU的熱情,比造DPU的人還高。
有人在問DPU芯片是啥的時候,創業公司里,飄來一個熟悉的女聲:“支付寶到賬,人民幣一億元?!睕]錯,就是融資額經常上億。
別說互聯網大廠,國字頭大基金也刀背藏身,眼睛直勾勾盯著DPU,伺機而動。
云廠商對DPU芯片的渴望,是歇斯底里的。逼得造DPU的人,鼻孔噴血,雙眼冒火。
而坊間有個說法,DPU只有兩個品牌——亞馬遜云和阿里云,以及其他。
DPU的故事,要從好久之前講起了。
(一)1998年,美國斯坦福大學的球場上。
尖尖綠草被陽光溫柔撫摸,孩子們尖叫雀躍,球衣鮮艷,帶風奔跑。
球場外,一些家長等著接孩子回家。他們中有的是斯坦福大學的同事及其家屬。
左右無事,家長群里的兩位閑聊了起來。
“最近在忙啥?”
“創業了。”
“創業方向是啥?”
“在一臺計算機上可以跑多個操作系統?!?/p>
提問的這位男士,文質彬彬,聽到回答,突然眼睛一亮,脫口而出:“這個想法挺好,很新鮮?!?/p>
最怕一流行家,遇見了一流行家,一聊就迸射火花。
兩位家長,在球場邊,就地達成投資意向。
這位家長,不,這位看準就出手的早期投資人,氣質儒雅,風度翩翩。
他就是張首晟,著名華裔物理學家,楊振寧的愛徒,主要從事凝聚態物理領域的研究,斯坦福大學終身教授。
創業的那名家長也不簡單,叫黛安·格林(Diane Green),一位天賦型女性管理者,從創業之日起,就擔任高管,掌管公司長達十年之久。
后話是,她還管了一陣子谷歌云。
此番操作,把孩子們都看懵了。
另一個孩子的爸爸,黛安·格林的老公,是斯坦福大學教授,孟德爾·羅森布拉姆(Mendel Rosenblum,簡稱羅教授),是公司的首席科學家,他也是操作系統領域的世界級專家。
彼時創業路上,夫婦倆剛剛動身,公司名叫VMware。
二十多年后,這家公司成為虛擬化技術領域的巨頭。
計算機技術的術語,常常閃爍理性光芒,而“虛擬化”這個詞,一看就是鏡花水月,太虛幻境,把一種仙風道骨的玄幻氣質,拿捏得死死的。
不意外,虛擬化技術的一開始:學術研究站C位。
為數不多的高校在研究,美國斯坦福大學、英國劍橋大學。
屈指可數的公司在探索, IBM公司、英特爾公司、微軟公司。
上世紀70年代是虛擬化學術研究的黃金年代,有多篇學術論文為這個方向奠定了理論基礎。
科學技術這行,光憑論文不行,得拿出東西來,還得用起來。
等有代表性的公司誕生,年年等斷腸,從七十年代,到九十年代,一等二十年。
據VMware公司CEO黛安·格林回憶,一天晚上,羅教授回到家,談起工作,他說:“我想重新審視虛擬化,將隔離引入操作系統,能同時運行新舊代碼,又不必構建一個新的操作系統。”
想法像洪水一樣從腦中涌出,羅教授非常激動,睡醒的第二天,就開始做原型。
不久之后,澎湃的行動力,讓羅教授和他的學生們實現了X86 服務器的虛擬化。
科學家的朋友圈往往光芒四射,創始人集齊五位專家,擺開了陣型,對虛擬化發起沖鋒,這一次載入史冊。
“攻下”X86,打開虛擬化由守轉攻的新局面。
相傳,虛擬化技術公司的文化和互聯網企業文化不同。
美國斯坦福大學的學生閉眼挑offer的時候說,谷歌的文化吸引年輕人,擼狗上班,睡衣轟趴,而VMware 公司的員工則能在公司安穩地結婚生子。
隨后,學術派傳球至邊路,PC的虛擬化接球。
雖然在小型PC機時代,虛擬化不是剛需,但是開創了硬件新玩法,沸騰了極客的熱血。
小心翼翼問一句,虛擬化是不是在騙CPU?
理直氣壯回答:CPU有一種被騙的“能力”。
虛擬化技術很厲害,還是要戒驕戒躁,后面的路,還長。
(二)無疑,VMware公司是成功的,當開源世界崛起,軟件甩開商業軟件的統治,開源極客走上舞臺。
請大家記住這兩個虛擬化技術的精神?。I)伙(袖),因為他們對DPU的發展,至關重要。
按姓氏筆畫排序:安東尼·李國瑞(Anthony Liguori),美國人。張獻濤,中國人。
2001年,英國劍橋大學計算機實驗室,IanPratt教授帶著幾個博士生做了一個非常知名的虛擬化項目.
叫Xen project。
Xen的讀音和“than”有點像,但不完全一樣,發音不吐舌頭。
Xen有一個龐大的、活力十足的開發社區,深遠地影響了云計算、虛擬化和安全。
兩年后,Xen X86虛擬機監視器的第一個穩定版本就問世了。
2004年,張獻濤在武漢大學,念博士。多年寒窗,沒有少下功夫,他技術水平強,動手能力更強。
技術大神何愁去處,可張獻濤還是有些擔心,因為虛擬化技術的擇業面,太小了。
讀博士,勤奮很重要,有一位好的博士導師也重要。
張獻濤的博士導師,是全球知名的密碼學家卿斯漢。張獻濤一定是花掉了很多運氣,才遇到了這么一個好導師。
他一臉慈祥地對張獻濤說:“虛擬化這個研究方向,我和英特爾有合作,你先去那里實習,別擔心,我幫你安排,剩下的,要看你自己了?!?/p>
而今看來,卿斯漢教授將張獻濤送去企業實習,是完完全全從學生的利益考慮。
(有些博士導師那是死活都不愿意放博士生出去干活,此處省略三千字吐槽)。
于是,張獻濤從一名英特爾的實習生做起,一做就是3年。時光飛逝,技術水平飛漲,他于2008年正式入職英特爾。
他可能也沒有想到,這份工作一干就是9年。
把鏡頭搖到2002年的美國IBM 公司,虛擬化的另一個前沿陣地。
一位名叫安東尼·李國瑞的大學生,在學校讀書期間一直在IBM實習,每周20小時,連續四年,風霜雪雨,從不間斷。
2006年,安東尼入職IBMLinux 技術中心,成為一名軟件工程師,這份工作一干就是7年。
人這一生,找到一個真心喜愛的技術作為愛好,然后不計成本地付出時間和耐心,用心打磨,收獲的將不只是一個拿得出手的技能。
更重要的,還有一個脫胎換骨的自己。
也許某日傍晚,紅霞染盡天邊,張獻濤在看云,安東尼也在看云,可能會有那么一瞬間,他們都意識到自己要和這個名字極富詩意的技術,打一輩子交道了。
世間因緣,因緣世間。
(三)芯片江湖,有人,有酒,有故事,就有批評英特爾的聲音。
PC為王的時代,因為虛擬化不是主流,所以英特爾X86指令集對虛擬化的服務態度很不友好。
這鍋,得英特爾背,還背到了2005年。
英特爾在那一年才笑臉相迎,態度友好,在CPU里面做了一些擴展指令集。
這次重拳,扭轉了虛擬化的乾坤。
那一年的年11月,英特爾宣布產品支持硬件虛擬化(VT-x,VT-d),AMD也屁顛跟上,宣布產品支持硬件虛擬化(SVM)。
別看姍姍來遲,但是這套技術也足夠硬核黨,能做出來也很了不起。
但是英特爾“罪名”也很昭彰——低效。
VMware公司眼疾嘴快,把英特爾一頓猛批。
模仿駱賓王討伐武則天,出了一篇著名的“檄文”,討伐英特爾。
指責支持虛擬化的擴展指令集低效,還沒有自己家做的性能好(這里指VMware公司的“二進制翻譯”,binary translation)。
指責別人,趁機夸贊自己,沒毛病。
經此一事,也能一窺VMware公司的江湖地位,批評別人,得自己腰桿子倍兒直。
經此一變,虛擬化便有了CPU芯片廠商的全火力支持,仿佛被按下二倍速播放鍵。
這是虛擬化的短板,第一次被拯救。
那時候,英特爾沒有白忙活,蘸著唾沫點鈔票,心里樂開了花。支持Xen,跟支持Linux的道理一模一樣,虛擬化帶動了生態,大家都愛用戶黏性。
窗外陽光正好,又是吃飯時間,天上白云飄過,人間沒有巨變,云計算悄然巨變。
云計算的第一張門票,亞馬遜云搶到了。云計算的號角一吹響,開源迅速占領C位。
Xen底氣十足,首席科學官兼劍橋大學計算機實驗室教授Ian Pratt說:“微軟正處于追趕我們的道路上?!?/p>
此言不虛,微軟公司的產品確也深受 Xen的啟發。
一時間,紅帽,Sun Microsystems,Suse Linux,到處都有Xen的身影。
一時間,似乎任何新事物都會在Xen萌發。
Xen被掌聲包圍,連云巨頭都伸出橄欖枝。2006年,亞馬遜云(EC2)推出第一個采用Xen的實例類型(m1.small)。
Xen登上了第一朵云,自此,成為云計算的生力軍。
虛擬化技術烈火烹油,微軟公司好不服氣。悄悄收購位于美國波士頓的虛擬化廠商Softricity公司,趕緊公布了,為Windows Server引進新的虛擬機管理產品的時間表。
“別催了,在買了?!?/p>
后續是微軟公司再露土豪本色,為了虛擬化連續多次出手多家創業公司。
這也從側面反映了虛擬化這個技術,又小眾,又難,又關鍵,連微軟公司也啞巴吃黃連,有苦說不出。
2007年英特爾出了VT-x,增強了很多功能,又反超了VMware公司的二進制翻譯技術。
VMware公司內心獨白:批評英特爾,草率了。
在2009 年的時候,研究公司Gartner預測,三種技術將主導虛擬化:VMware公司的 ESX Server、Xen 和微軟公司的 Viridian hypervisor。
有些技術預(占)測(卜),聽一聽,別當真。
正面評論大聲說,Xen是當時的業界標準之一,非常成熟。
負面評價小聲說,Xen的架構非常復雜,代碼鏈非常長,對內核的改動也比較大。
Xen是一個非常好的項目,但是確實太復雜。全球真正搞懂Xen架構的人不超過50人。大部分人,停留在僅僅能用這個層次。
再者,Xen還是傳統虛擬化技術。
Xen的傳統結構,決定了它身上的擔子特別重,要忙于許多事情,保護物理硬件,保護BIOS,虛擬化 CPU,虛擬化存儲,虛擬化網絡,還有諸多管理功能。
Xen過于笨重,注定退場,但Xen的出現,為虛擬化打開了開源世界的大門。
夢里幾十年,長風幾萬里,才把虛擬化吹進開源世界。
2014年,同樣是開源的KVM來了。
作為Linux的家族成員(以組件的形式出現),這個輕巧的超級管理程序,身姿輕盈,席卷世界。
這時候,VMware公司的日子也不紅火了,閉源商業軟件,花錢不說,云廠商改動也不方便。
不要忘記的是,亞馬遜云和阿里云的DPU早期架構,都能看到Xen與KVM的身影。
(四)問世間,是否此山最高,
或者,另有高處比天高。
(手動打節奏:嘿哈?。?/p>
開源社區背后的慘綠少年,藏身于開源江湖,苦練絕技。
十多年前的虛擬化技術,并不成熟。
放眼全世界,做虛擬化技術研究的人,真心不多。
開源社區里最有權力、最受人尊敬的人,有一個統一的稱謂,Maintainer(軟件維護者),也是高級別的代碼貢獻者,掌管開源項目的設計規劃,對全局,有深入了解,對未來,也有獨到見解。
世界有時候很大,有時候很小。
安東尼,是QEMU的Maintainer。
張獻濤,是KVM跨平臺支持以及KVM/IA64的作者和Maintainer 。
QEMU曾是世界上首屈一指的系統仿真器和虛擬器。QEMU支持Xen和KVM,并廣泛部署在大多數云環境中。
從Xen到KVM,安東尼和張獻濤的技術突飛猛進,天天打破天花板。只要解決性能方面的難題,什么姿勢都會。
要知道,那些系統底層,要去解決性能方面的故障或者錯誤(Bug),都是非常難的,伸出手就能扼住整個項目的喉嚨,讓人動彈不得。
安東尼和張獻濤,身上不斷出現“巧合”。
張獻濤和安東尼在Xen 和KVM 開源社區都有交集,是享譽社區的極客,令無數開源玩家高山仰止。
經歷諸多采訪報道,他們在做自我介紹時,都曾說到一句話:“我一直做虛擬化方向的工作?!?/p>
同樣的話,一個用中文講出來,一個用英文表達。
只要一有虛擬化安全的新聞熱點出現,國外技術媒體都以采訪到安東尼為榮。張獻濤則是國內第一批參與做KVM的。
巧合的背后,往往是必然。
2013年,安東尼,加入亞馬遜云。
2014年,張獻濤,加入阿里云。
昔日,在虛擬化開源社區,兩位最有“勢力”的人。
如今,在頭部云計算廠商,主導DPU技術變革。
更巧的是,一個負責Nitro系統,一個負責神龍系統。
亞馬遜云和阿里云的DPU,均汲取了開源虛擬化軟件Xen和KVM的精華。
云計算帶來了虛擬化技術的繁榮,實現了技術的躍遷。
此時,虛擬化的專家,從硬件廠商的寶貝,變成了云計算廠商、大型互聯網公司的寶貝。
35歲就淘汰之類的話,在這些人面前,純當放了一個臭屁。
所有人都意識到,虛擬化技術“值錢”了,蜂擁而至,可惜,門檻很高。
虛擬化是一門非常難的技術,虛擬機是對真實計算環境的抽象,很多人被“抽象”二字難住。
操作系統內核已是掃地僧級別的技能了,虛擬化則是獨孤求敗。
張獻濤說:“以前,我們認為操作系統內核是最難理解的,也是最復雜的系統軟件。業界有不少非常資深的內核(kernel)工程師轉去做虛擬化,都理解不了,也做不好?!?/p>
為什么呢?
因為虛擬化又抽象了一層,其難度大大增加,要用軟件去實現硬件(的功能)。
在云廠商沒有虛擬化專家的時代,亞馬遜云也找英特爾的人去解決問題。
十幾年前,英特爾工程師火線救援云廠商的故事,都快被人遺忘了。
2010年,阿里云準備在5月10日發布產品(ECS1.0)。
那時,有三家企業的工程師擠在阿里云攻堅,攻了一個多月,有人都要把頭急禿了,眼看到日子了,還有一個坎,過不去。
大概1000臺服務器,運行一晚之后,總會發生一件奇妙的事情,硬盤找不到了。
硬盤也很委屈:“我掉線了。”
攻堅小組被死死逼到了墻角,他們拿出了一個負責任的推斷:問題要么出在芯片組身上,要么出在芯片身上。攻堅小組在嘶吼,得讓英特爾派人來,快點。
命懸一線之際,無論英特爾派誰來,都會被人死盯著,恨不得用秒表計時。
意外的是,英特爾的專家到現場后,看了一下(所有的配置),想了一會,之后說:“改個參數就可以了”。
計時那個人,看了下表,從拿到阿里云的服務器日志到搞定,大約用時3000秒(50分鐘)。
這一刻的如釋重負,讓在場的阿里云工程師一輩子也忘不了。
快拿幾條真絲圍巾,我們要纏在胳膊上跳廣場舞。
這事,讓一個外援在阿里云內部,小火了一把。
誰知不久之后,阿里云的章文嵩問了團隊一個問題:如果要挖一個虛擬化做得最好的人,應該挖誰?
章文嵩是何人呢?Linux虛擬服務器創始人,開源大神,曾任阿里云CTO,首席科學家。
阿里云的工程師們,雙手不離開鍵盤,頭也不用抬,張嘴就有了:張獻濤。
無獨有偶。
有人告訴我:“二零零幾年的時候,亞馬遜云還沒把安東尼搞過去,虛擬化的問題也解決不了,也得靠英特爾。因為虛擬化的大牛工程師,亞馬遜云也缺?!?/p>
亞馬遜云,有了安東尼。
阿里云,有了張獻濤。
尋隱者不遇,那虛擬化的高手到底在哪?
云深不知處,他們就聚集在IBM、英特爾、紅帽。
消息靈通人士透露,2008年左右,英特爾公司上海辦公室里,虛擬化團隊大概十幾號人。云計算帶動虛擬化技術熱門之后,全世界都來挖人。
自此,很多虛擬化的人才就留在了美國,直到現在。
人爭一口氣,佛受一炷香。為什么云廠商會憋著口氣一頓猛搞芯片?
答案是:誰痛苦,誰難受,誰逼瘋,誰知道。
張獻濤懇切的語氣令人印象深刻:“就算不是神龍團隊,阿里云也會有另一支團隊把DPU做出來?!?/p>
眾所周知,現在云計算廠商的服務器規模有多大。當規模擴大,用戶量增長,對DPU的渴求就變得心切。
幾十萬臺服務器,一天天,嗷嗷待哺。
在安東尼心里,應該也反反復復問過很多遍DPU的本質問題:
“為了得到更好的產品,我們要設計硬件,要設計一個專門用于虛擬化的硬件平臺。不是通用軟件,不是通用硬件?!?/p>
回望來路,已無退路,在技術最佳的更迭期,DPU出現了。用DPU定制化硬件加速,成為最正確的方向。
(五)別怪我沒提醒,云計算的虛擬化,和前幾代虛擬化,大為不同。
前幾代產品與DPU隔著一條深不見底的天塹,跳過去,就是通天大道。
問題來了,怎么跳?
從2012年開始,亞馬遜云團隊,尤其是EC2虛擬化就開始思考:
那個叫做Hypervisor的“超級管理員”,得膽子再大一點,能力再強一點。那么問題來了,世間能做出比純軟件架構更好的超級管理程序嗎?
這是我能找到的,安東尼在外媒采訪中談到的,亞馬遜云關于DPU思想萌芽最早的時間點。
但那個時候還沒有Nitro的影子。
后來,把Nitro System曝光于公眾面前的,是一次知名的收購案。
被收購的公司叫做Annapurna Labs,也就是安娜普爾納峰實驗室,公司在以色列和美國都設有研發中心。
登山愛好者,瞅這個名字很眼熟。
巧了,喜馬拉雅山最高十峰之一,安娜普爾納峰。
角峰銳利,山體挺拔,線條凌厲,冰雪覆蓋,云海猛烈翻滾,在向全世界的登山者搔首弄姿:“你過來呀~”
又巧了,公司兩位創始人Billy和Nafea也是登山愛好者,以攀登此峰為榮。雖未抵達,但心已至,他們將角峰設計成LOGO,印在了封裝好的芯片上。
登山是個人英雄主義,DPU是團隊實干集體主義。
安娜普爾納峰實驗室對于亞馬遜云來說,就是上天恩賜的禮物。國內云廠商一開始有這個好買賣,半夜睡覺都笑醒。
收購這件事情,光有鈔票不行,好的“收購目標”極其罕見。
這家“登山愛好者”公司,除了登山,還有幾個絕活。
其一,Graviton芯片,云廠商第一顆Arm芯片。
其二,是一種虛擬機抄近路小能手的技術,ENA。
(ENA,全稱是ElasticNetwork Adapter,一種網卡驅動,能用于虛擬機和物理機,是開源項目,發布在GitHub網站上。)
這種技術講究的是四兩撥千斤,使得虛擬機繞過軟件(內核和用戶空間網絡處理程序),直接操作硬件(網卡),如此這般,提升了網絡效率。
昔日寂寂無名的ENA,成為亞馬遜云網絡虛擬化的關鍵技術,日后是大名鼎鼎的Nitro的一部分。
合作如絲般順滑,那就買過來,誰叫那時候世界首富掌管亞馬遜公司呢。
2015年,收購價3.5億美元。
別看當時花了多少,要看日后省了多少。這是一場幾乎完美的收購,每年都為亞馬遜節省大把美金。
因為DPU的特長之一就是很能打,一套降龍十八掌,打敗虛擬化損耗,不在話下。
損耗少了,當然省錢。
安娜普爾納峰實驗室開發的這張卡,不僅卸載了VPC網絡功能,還卸載了EBS 存儲網絡功能。
這就是前文提到的,“任務卸載”技術。
據網飛公司技術高管(Brendan Gregg)的說法,Nitro的性能損耗非常?。ú坏?%),Nitro的虛擬化性能接近裸設備。
亞馬遜的文化里,有單向門(The one-way door)和雙向門(two-way door)決策的說法。這個翻譯,頗為晦澀。
“單向門”的任務,像電影《魷魚游戲》,大抵是干活時被人用槍指著腦袋。
只要任務失敗,就“嘣”一槍。驚不驚險,刺不刺激。
“雙向門”就是這個場景用得不好,搬到別的地方,說不定還能用上,反正不會白忙活,KPI保住了,萬事好商量。
DPU是專用的,“專用”意味著,拿到別處“沒用”。
Nitro 系統開發的時候,槍和腦袋的距離,幾毫米。
失敗和成功的距離,一丟丟。
研發團隊在描述艱難的開發歲月的時候,像個文科生,一口氣用了四個形容詞。
他們說:“這次我們做決定,有條不紊,謹慎,緩慢,深思熟慮?!?/p>
懂行的心里明白,這不是普通的任務,其要求已經超出了傳統虛擬化技術的能力。因為打破傳統,就是浴火重生。
研發團隊在技術博客里寫下:“只有創新才行,但我們沒有急著拍腦袋。整個探索的旅程歷經五年,仔細、反復試驗,每一步都很小心,驗證我們前進的方向是正確的?!?/p>
喜大普奔的2013 年,亞馬遜云研發團隊推出了第一款Nitro 卸載卡(C3 實例類型),將網絡進程卸載到硬件中。
馬不停蹄的2014 年,將 EBS 存儲卸載到硬件中(C4 實例類型),這次研發團隊首次與一家名為安娜普爾納峰實驗室的公司合作。
Nitro研發團隊談到了研發的時間節點:“2017 年,我們卸載了最后的組件,包括控制面和剩余的 I/O,我們引入了一個新的管理程序,具有 C5 實例類型的完整Nitro系統?!?/p>
代碼長什么樣子,如今已經記不清了,但工程師依然記著當時的心情:
“這是投入的揮金如土,是身心的殫精竭慮,是承諾的使命必達,是不可思議的時刻。當Nitro系統推出時,五年辛勤,此生難得?!?/p>
Nitro給亞馬遜云帶來什么?
Nitro的迭代推動亞馬遜云最核心的EC2產品家族不斷往更大、更快、更安全、更穩定、更多類型、更高性價比方向演進。
Nitro 系統讓亞馬遜云有能力提供100 Gbps 增強型以太網網絡的云,支持更高吞吐量或受網絡限制的工作負載(如 HPC 應用程序)。
借助 Nitro 系統,將虛擬化功能卸載到專用硬件上,將 EC2 的架構分解為更小的塊。這些塊以多種不同的方式組裝,能夠靈活地設計和快速交付EC2 實例,并提供越來越多的計算、存儲、內存和網絡選項。
亞馬遜云 CTO 沃納·威格爾(WernerVogels)曾經說過,“在亞馬遜云,90%到95%的新項目,都是來自于客戶給我們的反饋,剩下的5%也是從客戶角度出發所做的創新嘗試?!?/p>
而Nitro 系統正是這種項目之一,它誕生于2013年,成熟于2017年,到現在還在不斷進化中,2021年已經迭代到第五代。
(六)最重要的一點,亞馬遜云科技的團隊看到了,阿里云神龍團隊也看到了。
安東尼看到了,張獻濤也看到了。
把傳統的虛擬化技術直接移到云計算,缺陷極其明顯,畢竟不是為了云計算的服務器而生的。
把時間花在最值得思考的問題上。
2016年左右,張獻濤博士,天天都在思考同一個問題:什么樣的虛擬化技術,才適合云計算?
得從根本上解決傳統虛擬化應用到數據中心里面存在的缺陷(也就是性能、資源、隔離方面所有的問題)。
他腦中的“神龍系統”慢慢清晰。
那一年里,張獻濤博士密集、低調往返于北京和杭州兩地,意在勸說多位大咖級芯片主架構師加入阿里云。
有這樣一句話,很打動人心,日后實現的時候,更激動人心:
“外界無法理解互聯網公司要做DPU的決心,這件事情絕對是前人沒有做過的,它可以改變云計算里面最核心的技術。”
神龍芯片給阿里云帶來什么技術價值?
張獻濤認為,第一,解決CPU和內存完全隔離的問題。這里的隔離有兩個層面意思,一個是安全方面的隔離,一個是性能的隔離。
第二,IO鏈路上最容易出安全漏洞。QEMU這個模擬器是從傳統的虛擬化帶過來的,在神龍芯片第一代的那個時間點上,它是完完全全過時了。
所謂的過時了,包括兩點。其一,代碼是開源的,人人皆可見。其次,安全漏洞多,常發生一些虛擬機逃逸的情況。
在公共云的世界里,“虛擬機逃逸”五個字,還沒有說出口,就有一群人撲上去,捂住你的嘴。
虛擬機逃逸=絕對不允許。
DPU解決了性能,同時也解決了安全方面的問題。
神龍芯片一開始就想好了,多張卡解決問題,強調多合一,多種功能在一張卡上實現,復雜度下降,穩定性增強。
兩架馬車,解決的問題一樣,實現的思路不同。
佛山無影腳,神龍無影刀。
DPU的一個關鍵就是,“從哪里切”與“切到何處”,答案充滿玄機和禪意。
這讓人想起庖丁解牛,若要回答:骨在哪,肉在哪,骨肉相連又在哪;
恐怕要稔知全牛結構,全憑手感,刀法在腦海里,在肌肉里。
這還不夠,難題在于,每一家云廠商的軟件是不一樣的。
怎樣處理分布式存儲和分布式網絡的軟件接口?
哪些應該放在控制路徑?
哪些放在數據路徑?
如果不懂虛擬化,你就不知道怎么切,或者切完后性能也不好。
DPU團隊表面生氣,心里憋悶,誰出的破題?
再或者,有的DPU團隊,還沒有看到牛在哪里。
DPU這個東西,光有硬件思路,或光有軟件思路,一定會出大問題。
當故事講到這里,虛擬化的知識就不夠用了,要細聊張獻濤在英特爾的另一段經歷。
上海虹橋作為著名的交通樞紐,周邊房價,一直看漲。
2005年的時候,張獻濤剛到英特爾實習,工資不高,錢包不鼓,在大虹橋地段找房子住,選來選去,選了仙霞路附近的茅臺路,一個叫做天山五村的老式小區。
大虹橋的房價,逼得張獻濤和師兄合租了一個單間,逼仄的房間里,擺了兩張單人床,已經夠局促了。沒想到,更局促的在后面。
一進英特爾,張獻濤的壓力值就爆表了。
為什么?他發現,六年的計算機專業白讀了,媽耶,英特爾大牛們說的話,居然聽不太懂。原因是他們講的那些東西,都牽涉到芯片內部的專業知識。
能主宰一個時代的門派,半導體產業鏈的頂端,還是有很多秘籍的。
腦袋混沌了幾天之后,張獻濤那股子不服輸的勁兒,上頭了。
經高人指點,他沖到藏經閣就找寶典。
《英特爾系統編程手冊》(System Development Manual)是這樣一種存在,你看第一遍,包你根本看不懂。
照理說,計算機的操作系統,是按此寫出來的。比如,英特爾的64位處理器用的是IA 64,配套的《手冊》有好幾卷。
《手冊》也誠不我欺,卷卷厚如板磚,就不信你能讀完。
晚上,師兄睡了,張獻濤不敢開大燈,從枕頭下面摸出一樣東西,手電筒。于是,咳嗽放屁都在一個被窩里,用手電筒的光,照著看《手冊》。
老舊小區的黑瓦和夜色融在一起,樓層里閃爍著零星的光,從窗口的方格里冒出來,張獻濤屋里的光,從被子里透出來。
開了頭才知道,痛苦是一層套一層的套娃。
每日不輟的翻讀,還要看操作系統的內核代碼。這行代碼為什么這么寫,他要到編程手冊里找答案。這還不夠,要看Linux和Xen的代碼。
看不懂怎么辦,英特爾還有一個“師兄幫扶”機制,類似學霸紅領巾,不懂問師兄。
左手一本軟件編程手冊,右手一本硬件編程手冊,外加Linux內核代碼,一行一行去理解。
再看不懂怎么辦,去找美國的工程師請教。
張獻濤吃一口編程手冊,蘸幾行Linux內核代碼,成為每日的例行動作。
日復一日,張獻濤對CPU、對操作系統的理解,加深加深,再加深。
在英特爾公司,張獻濤知道了一個“冷知識”。
任何一顆芯片,從英特爾公司“走”出來之前,內部員工可能提前三到五年就已經拿到了“未出廠的芯片”。
工程師們要把 CPU所有的新功能用軟件“用”起來。
說白了,到手的芯片還沒有正式量產。芯片里面會有各種各樣的毛病。你要去理解“問題”來自于軟件,還是硬件。
不了解這點,你永遠不會懷疑CPU會出問題。
DPU的技術領袖,需要對芯片、對芯片組、對PCIe總線、對操作系統、對虛擬化的了解,到達一種境界,關燈取物,如同開燈取物一樣自如。
看似行云流水的判斷,是在日復一日、年復一年、無聲無息中形成的,就像火山爆發后,熱風里從早到晚飄落的火山灰,把一切技術難點都掩埋。
從火山灰中醒來,看到一個重塑的新世界。
DPU的部署,無異于完成了給高速飛馳的列車換防風材料,給深海作業的潛艇換防水材料。
2017年到2021年,亞馬遜云和阿里云均已跑步進入了DPU產品迭代良性循環的新世界。
2021年的夏天,張獻濤博士對我說:“以前,沒有人相信互聯網公司需要芯片技術?,F在,大家都相信了?!?/p>
(七)裁判一聲長哨,男主持人富有磁性的聲音播報:觀眾朋友們,這里是數據中心賽場,IaaS層終場,云計算基礎設施最后一場比賽。
當優秀DPU問世的時候,國內云計算廠商在IaaS層,這輪的戰斗,宣告結束了。
自研出DPU的云計算廠商說:“我攤牌了,我贏了。”
哪怕五年前,放眼找工作的網站,就算云計算廠商“放出”招芯片專家的崗位,誰敢去?去干啥?再資深的HR一看崗位說明,都懵了,就沒接觸過搞芯片的人。
軟件開發周期何其快,硬件開發周期何其慢。旁人都說,這戀情看上去就不長久。
老牌芯片公司一扭頭,眼角余光里都是質(鄙)疑(視)。
云廠商只擅長軟件,如何面對芯片?
云廠商面對的場景極其復雜,用芯片怎么搞定?
誰出的題,這么難。
問題是復雜中的復雜,需求是剛需中的剛需。
很抱歉文章科普得遲了,DPU是一種云上服務器的專用芯片。
這句話,有兩個關鍵詞,“云上服務器”和“專用芯片”。
先講,云上服務器。
云上服務器有些像公共澡堂,可以一個人用,也可以多人共用,麻煩都是“一起用”帶來的。
公共澡堂“一起用”,最好有隔板。我看你,你看我,這樣不文(安)明(全)。
可口可樂和百事可樂要在一朵云上,還能互相看文件,立馬就翻臉了,肥皂也不撿了。
那怎么辦?
答案是:得插DPU,而且是每臺服務器都得插。十萬臺服務器,插十萬張DPU。殺毒軟件是用軟件保護安全,DPU的作用之一是用硬件保護安全。
說到安全,硬件比軟件更能打,這個就不贅述了。
再講,專用芯片。
提到專用芯片,挖礦炒幣賺到錢的人興奮了,搶著說:“我最內行?!币驗椴煌募用茇泿?,要不同的礦機。礦機越對口,挖幣越賺錢。
金錢的銅臭味,告訴我們:專門的事情,讓專門的芯片去做。
現在還有爭議,但是未來,會看得清楚,DPU是云計算的標配。
摩爾和登納德兩位老先生,無情指出“現實之無奈”,CPU成了最昂貴的“打工人”。
所以,DPU作為專用硬件,除了安全,還要來給CPU減負。
幾條街之外,都能聽見DPU的嘮叨:“哎呦,CPU我的祖宗,快放下,您哪敢動這,可不能把資源浪費在網絡和存儲的負載上?!?/p>
CPU則說:救救孩子吧。我太南了。
(CPU大聲呼救的原因是:CPU既要處理大量的上層應用,又要維持底層軟件的基礎設施,還要處理各種特殊的IO類協議,不堪重負。)
把“負擔”從CPU上卸載下來,DPU將有望成為承接這些“負擔”的代表性芯片。
CPU也很高興DPU的出現,你行,你上呀。
的確,有人夸DPU是繼CPU和GPU之后的“第三顆”主力芯片。
不要因為鮮花和掌聲太多,就對DPU的能力有什么誤會。
CPU穩坐“主咖”寶座,CPU可以當DPU用,CPU也可以當GPU用,但是反過來不成立。
DPU的事情CPU能做,但是,CPU比DPU昂貴老多了。牛刀太貴,殺雞的人自然不舍得。
云廠商想實現“一起洗澡(一起用)”,得靠虛擬化技術。虛擬化雖好,但是會引發一堆“糟心事兒”,比如性能損耗,甚至有人把這種損耗比喻成“交稅”,搞不定當然多交稅。
這種損耗也相當于,還沒有開始洗澡,一半水在水管里就浪費光了,肥皂沫都沒有來得及沖掉。
技術問題越難,極客們越興奮,不自覺揚起了手里的小皮鞭。
虛擬化是DPU的精髓,虛擬化的歷史幾乎和計算機一樣悠久,是計算機科學史上最偉大的思想之一,造就了偉大的云計算技術和市場。
“制造假象”“隱藏細節”(給上層應用提供一種假象,降低上層應用使用下層資源的復雜度)。
我們天天在用的操作系統,也是一種虛擬化的“思想”,是對硬件資源的虛擬化。
PC機的虛擬化,把計算的核心“變成”進程。把存儲介質“變成”文件系統。
云計算的硝煙戰火中,虛擬化這個噴涂了迷彩偽裝的彈藥庫,終于藏不住了。
(八)說它低調,誰料想,DPU直接沖破了次元壁,在彈幕里打出“火鉗劉明”。
有人造出來DPU的時候,DPU還沒火,它們就是,阿里云的“神龍芯片”,亞馬遜云的“NitroSystem”。
兩者,都優秀。
不僅造出來了,還規?;闷饋砹恕?/p>
不僅規?;?,在云的場景中收益還巨大了。
阿里云在國內云計算廠商技術團隊里是最拔尖的。
亞馬遜云在技術上從來沒讓人失望過(公關廣告投入就另說了)。
他們造DPU的團隊,猶如雄師過江,天翻地覆慨而慷。
自此,云廠商分成兩列縱隊:有DPU的,沒有DPU的。
中國男足,笑而不語,大比分落后,說的就是那些沒有DPU的云廠商。
亞馬遜云和阿里云都是革命者,且心有靈犀,選了相同的技術方向。
云燦霞鋪,同是天涯得意人。
亞馬遜云的SA是解決方案架構師(SolutionsArchitect),很能打,一言不合就秀(show)代碼,簡直人人都匹敵創業公司CTO。
一位SA私下里告訴我:“簡單來講,DPU就相當于是把虛擬化不同的工作負載,下放到不同的卡上?!?/p>
留意“下放”這動詞,得體會了一陣子,才想通。這個詞,用得妙啊,它背后的專業術語是“任務卸載”。
“Nitro是一張卡,把負載(Hypervisor虛擬層,存儲,網絡)都綁上去。也就是把影響虛擬化安全、性能、穩定性的那些東西都裝進板卡里去?!?/p>
“它不是一張卡,是一套卡。每張卡片有不同的目標。”
“Nitro System之所以稱為是一個系統,它包含三個獨立的部分:Nitro 卡、Nitro 安全芯片和Nitro 管理程序。
以前嘴饞,必須自己會燒兩個小菜,但是,現成的API準備好了。
不僅會燒菜,還會自創新菜。
學(搞)燒(創)菜(新),沒那么難。
因為Nitro系統是一個“基礎組件盒子”,有許多不同的組裝方式,從而使AWS能夠靈活設計和快速交付(EC2實例類型),計算、存儲、內存和網絡都可以成為組合的選項。
選擇困難癥患者看到后,趕緊喝了一口咖啡,壓壓驚。
亞馬遜云員工也談到,這種做法能夠將云計算微服務架構擴展到硬件,方便“創新API”。
2017年的時候,愛看熱鬧的人,圍觀神龍MOC卡,但,萬萬沒有想到,圍觀的就是DPU。
一位阿里云異構計算團隊的員工私下里告訴我:“MOC可以理解為一臺小服務器。物如其名,卡上微系統(Micro-servicer On Chip)。但是,2021年,我們對外口徑統一用神龍芯片,不叫MOC卡?!?/p>
阿里云員工還說:“對于神龍芯片的細節,公司希望對外少談。有不少人,在打聽?!?/p>
2021年10月20日,神龍推出第四代,江湖人稱神龍4.0。
比起第三代神龍,關鍵性能指標提升了多少呢?
說兩個關鍵的,網絡關鍵性能指標提升一倍以上,存儲關鍵性能指標提升兩倍。
神龍4.0全球首次搭載大規模彈性RDMA高性能網絡,網絡延遲整體大幅降低。
RDMA作為網絡通信技術,不是一個新技術,但是,阿里云彈性RDMA,讓RDMA這項技術,從高性能計算(HPC)這個小眾領域,走向公有云。
曾經RDMA大規模組網的能力,是整個業界都解決不了的問題。
彈性RDMA將對云原生微服務、無服務計算應用的性能提升大有幫助,甚至是Java 中用Netty 網絡編程框架的應用程序,都會從中受益。

2021年的秋天,張獻濤對我說:“神龍芯片是目前業界最出色的DPU,沒有之一。”
DPU要才華有才華,要顏值有顏值,但是還有“兩大怪”。
一大怪,亞馬遜云和阿里云的DPU,不外賣。
DPU作為專用芯片,不要你懂,只要自己懂自己。
另一大怪,不少云計算廠商,一提自研DPU,就說拜拜。
何況青云和UCloud上市了,也都在虧損。
更何況,造DPU,怎么著,得拍出三個億人民幣來。
(九)村口的土墻上,刷上了白底紅漆的廣告語:
DPU,早擁有,早致富。
DPU,保安全。
DPU,隔離好。
DPU,省大錢。
一定得用,又沒錢自研,可以用英偉達的DPU呀。2020年,英偉達69億美金收購Mellanox,劍指DPU。
可惜不是“量體裁衣”,用起來不稱手,很痛苦。有專家毫不留情地批評,對英偉達現有的feature(功能),都不滿意。
樹上葉子,綠了又黃,云計算廠商給博通公司提交的工單,在排隊。
北風吹來,枝頭禿禿,工單仍在排隊。
阿里云和亞馬遜云的DPU都是2017年發布的。
事隔多年,有沒有哪家云廠商跟上了?
眾人搖頭,鴉雀無聲。
亞馬遜云和阿里云則可能會說:“原諒我,沒忍住,笑出了聲”。
非公開產品市場,急需“消息靈通人士”。
巧了,有一家著名的國內云廠商,跑到客戶那里宣(吹)傳(牛),DPU不就是智能網卡嘛,我廠2012年就有了,比神龍和Nitro快多了。
懂行的客戶發出靈魂一問,瞬間“社死”現場。
“你家DPU果真如此,那你為什么不用?”
吹牛牛逼癥,出現人傳人的現象了嗎?
又巧了,笑傲江湖的轉身,余下的DPU產品,要么停留在“并不怎么好用”的水平上。
要么只摸索著做了個原型出來,停留在驗證概念(Proof of concept)的水平上。
中國男足,笑了笑說,抱歉,打不開局面。
球迷火了:“花了這么多錢,你想說重在參與?”
太巧了,有人告訴“親愛的數據”,多家公司暗地里派出員工,天天找阿里云的人套話,這個為啥這樣做,那個接口為什么這么設計。
芯片的水很深,總會從供應鏈拿到一些“內部消息”,還有一家云廠商抄了好幾年,像素級別地抄,也沒有抄出個像樣的。
更糟糕的是,規模越做越大,快撐不下去了。
那些有DPU的云廠商,熱升級,多Happy,迭代速度嗖嗖滴。
那些沒有DPU的云廠商,可慘了,聽說其中一家,得一個月重啟一次服務器。
(曾以為重啟僅僅是文科生的常用操作,別問我怎么知道的。)
DPU是朋友圈凡爾賽的神器。
云廠商發朋友圈,祝友商早日建成世界一流DPU。
意識到友商已經建成世界一流DPU,默默刪掉上一條朋友圈。
Fungible公司在朋友圈寫下,2019年,我們定義了DPU。
樓下評論:“公司挺值錢,軟銀愿景基金大手筆投了?!?/p>
可惜,產品做得一般,對云計算的理解不到位,無法向其評論豎大拇指。
英特爾坐不住了,發布了IPU基礎設施處理器,來表達對“DPU”這件事情不同的看法。
希望朋友圈獲得高贊。
云廠商樓下依次排隊點贊,但內心唏噓不已,DPU的世界,英特爾也不能一聲令下“一統江湖”了。
(十)投資DPU,至少有兩個“不投”。
一不投,那些不熟悉云業務的需求的團隊。
二不投,那些對軟硬件融合部分理解得比較粗淺的團隊。
可惜,投資DPU這潭水,沒有水最混,只有水更混。
DPU身上有兩樁著名的冤案。在沒有DPU之前,SmartNIC(一種智能網卡)先一步問世,給網絡減負。
第一印象最深刻。所以,有些人至今誤認為,DPU就是SmartNIC。
SmartNIC是對網絡進行加速,但解決的問題比DPU小多了。
這時候,ETC自動抬杠機(精)上線了:“你就回答我,DPU最基本的功能是不是一張網卡?”
哪怕是人民群眾,都對新聞里的“5G”“千兆光纖”耳熟,更別說工業互聯網、車聯網。
對網絡的要求越來越高了,云計算的網絡帶寬從主流的10Gbps,閉著眼睛,就朝著100 Gbps一路狂奔。
可惜的是,DPU雖然能給網絡幫上忙,但不是智能網卡。
當一個產品已有翻天覆地的變化,我們不妨叫它的新名字。
遺憾的是,沿著智能網卡的道路一意孤行,永遠也到達不了DPU的綠洲。
不過,在“2021年智能網卡峰會”上大談特談DPU,也是特定時期的特色。
所有誤解,皆是云煙。
“智能網卡是不是DPU的必經之路?先一步造智能網卡,做扎實了再做DPU這種思路,您怎么樣理解?”
電子工業出版社出版的《軟硬件融合:超大規模云計算架構創新之路》一書的作者,原UCloud(優刻得)云計算廠商芯片及硬件研發負責人黃朝波這樣認為:
“站在功能的層次,肯定是從簡入繁的過程,這個說法是對的。”
轉折之后,往往是重點。
“站在實現的角度,這個說法,值得商榷。智能網卡的路子,往往跟著英偉達(NVIDIA)的做法,先NIC,再SmartNIC,再SOC。網絡功能的實現,是定制ASIC(專用集成芯片)。然而,亞馬遜云和阿里云‘沒走尋常路’。從一開始,就只有CPU來實現,再逐步加入各種加速。總之,這條DPU的演進之路是,從CPU到DPU?!?/p>
正如前文所述,亞馬遜云和阿里云是相同的技術方向,走法卻不同。
你品,你細品:英偉達的技術路線是從定制加速,到通用。這和亞馬遜云和阿里云那種,從通用到加入定制,完全是兩個相反的技術演進方向。
另一個冤案,是按字面意思理解DPU。
果然不能僅看表面。
DPU的全名,叫DataProcessing Unit,是數據處理器。自賽博開天辟地,就有數據。
CPU不能處理數據嗎?GPU不能嗎?既然不是,那憑啥就你叫數據處理。
CPU和GPU攥緊了拳頭,強忍著扇耳光子的沖動嚷嚷:“今天,誰來都不好使?!?/p>
更別說,《數據安全法》砸得門板咚咚直響:“臨時檢查,聽說,你們這里有數據,還是底層數據?”
這樣下去,保安拉起黃色警戒帶,場面恐怕要失控。
冤案掩蓋了難點。
DPU是軟件定義硬件,是用硬件適配軟件做加速,想懂DPU,要懂很多東西:芯片,系統軟件,計算機體系結構,云計算服務,虛擬化。
兩個云廠商的成功故事,也淡化了難點。
投資人常聽人說:“阿里云和亞馬遜云的DPU都造出來了,留給創(中)業(國)者(隊)的時間不多了。”
2021年,一堆國產DPU公司接二連三拿到融資。
雙手一伸,數一下,云豹智能、益思芯、合肥邊緣智芯、星云智聯、青云半導體、大禹智芯、中科馭數、芯啟源、深存智能等。
DPU創業企業,存在于北京、上海、珠海等地。
公開工商資料上可查的是,互聯網大廠也已刷刷出手:
騰訊投資,云豹智能。
美團投資,星云智聯。
字節投資,云脈芯聯。
DPU的利好點很多,中國的云計算市場,是一個多云的市場。比如電信云為代表的行業云出現后,金融云、物流云等更多的行業云逐步涌現。
甚至會有“地方云”“某官僚部門云”。
頭部的云計算廠商,不是DPU唯一的客戶。
再者,中國計算機學會專家曾估計,用于數據中心的DPU的量將達到和數據中心服務器等量的級別,每年以千萬級新增,算上存量的替代,5年總體的需求將突破兩億枚。
這一下就超過獨立GPU卡的需求量。
甚至可以說,一臺服務器可能沒有GPU,但不能沒有DPU。
好比酒店每個房間都要有WIFI,否則前臺客服電話就會被打爆。
目之所及,一片形勢大好,欣(浪)欣(費)向(金)榮(錢)。
實際上,小眾且專精的關鍵技術,難以一窺其全貌。
DPU存在的本質,是解決傳統虛擬化應用到云計算中的諸多問題的。因為早期的虛擬化技術更多用在桌面系統,把傳統的用在桌面上的虛擬化直接搬來用,用起來不順手。
DPU設計的本質和虛擬化緊密相關,是為了解決虛擬化帶來的“糟心事兒”(性能、資源、隔離方面等等)。
簡單地說,虛擬化主要分成四種:CPU虛擬化,內存虛擬化,網絡虛擬化,存儲虛擬化。唯有DPU才是從根本上解決傳統虛擬化應用到數據中心里面存在的缺陷的最后一站。
英特爾VT-x,只解決CPU虛擬化和內存的問題。網絡虛擬化和存儲虛擬化的問題是個歷史遺留問題,一直沒有得到有效的解決,尤其在云計算場景里。功能上能實現,但是性能、可擴展性、隔離性老是處理不好。
部分問題解決了,其他的怎么辦?
DPU來解決“其他的”,也就是說,DPU是解決虛擬化短板的最后一站。
DPU是瞄準了云計算里硬件虛擬化的真實痛點來做的。
這么強,那DPU到底都牽扯哪些技術?
這么說吧,因為涉及的技術領域非常之廣,阿里云彈性計算負責人張獻濤說:“為了神龍芯片,我幾乎動員了阿里云全線的一流專家。”
可能在一些造CPU的人的眼里,造DPU比較簡單。我CPU這么復雜都能造,玩轉DPU算降維打擊。
可是,DPU真的好造嗎?
如果不懂虛擬化,不懂系統軟件,不懂云計算的場景,光懂芯片就想做DPU,那么可以送出五個黑體大字:無知者,無畏。
DPU是多流派技術的集大成者,有軟件,有硬件,有計算,有網絡,有存儲,有虛擬化,有安全,有加速器,有驅動,有框架,有應用,精粹交織。
也許有一天,DPU會“號令”CPU(不是替代)。
最后,讓我們為那些真正的技術革命者,起身致敬,鼓掌歡呼。
畢竟一次局部技術革命,可比一場球賽更帶勁兒。
“帶球隊員距球場小禁區還有幾步之遙,隊友在不遠處大喊,傳中!傳中!守門員面色一動,似乎在猶豫。抓住機會,小角度大力抽射,破門!”
“還愣著干啥,進球了,鼓掌啊?!?/p>
(完)