2025-01-20亞馬遜CTO沃格斯:AWS如何通過自定義硬件提升云端性能

?轉(zhuǎn)載

在re:Invent大會上,亞馬遜的CTO沃格納?沃格爾斯(Werner Vogels)詳細(xì)介紹了AWS如何通過部署自定義硬件來創(chuàng)建與裸金屬性能相近的實(shí)例。

AWS reInvent已經(jīng)成為每年最值得關(guān)注的科技盛會之一,對于技術(shù)人員而言,尤其是Amazon CTO Dr. Werner Vogels的keynote值得關(guān)注,每年的keynote都會講到一些技術(shù)的發(fā)展趨勢,那么來看看在剛剛過去的reInvent 2019上Dr. Werner Vogels講了些什么。

1. 虛擬化技術(shù)的發(fā)展

Vogels表示,虛擬化“從一開始就一直是云環(huán)境中計(jì)算部分的基礎(chǔ)”。隨著時(shí)間的推移,AWS已經(jīng)“突破”了這項(xiàng)技術(shù)的界限。傳統(tǒng)虛擬化的問題是,所有用戶操作系統(tǒng)都在爭奪相同的資源,這通常會導(dǎo)致計(jì)算環(huán)境出現(xiàn)噪音,有時(shí)甚至不可靠。“我們開始思考如何從根本上改變這一點(diǎn),”Vogels說,因?yàn)椤芭f式虛擬化”確實(shí)阻礙了用現(xiàn)代軟件架構(gòu)構(gòu)建的應(yīng)用程序的性能。

AWS希望向其客戶提供云中裸金屬的性能,盡可能減少傳統(tǒng)云構(gòu)建軟件的資源消耗。解決方案來自于亞馬遜在軟件開發(fā)方面取得的創(chuàng)新,然后將其應(yīng)用于構(gòu)建新的硬件?!叭绻覀儚奈⒎?wù)、小型模塊中吸取經(jīng)驗(yàn),并將其應(yīng)用到硬件領(lǐng)域,會怎么樣”,Vogels說,“或許我們可以改變虛擬化的世界?!?/p>

于是AWS思考該怎么來改進(jìn)虛擬化技術(shù),出發(fā)點(diǎn)是怎么能讓用戶的虛擬機(jī)盡可能獲得和用一臺物理機(jī)同樣的性能,在設(shè)計(jì)這個(gè)新的虛擬化系統(tǒng)(代號為Nitro)的時(shí)候,AWS想的是軟件從單一的系統(tǒng)演進(jìn)到微服務(wù)帶來的靈活度的優(yōu)勢,他們希望同樣可以把這個(gè)優(yōu)勢帶入到新的虛擬化系統(tǒng)中,使得這個(gè)系統(tǒng)更加模塊化,而不是像以前的虛擬化技術(shù)一樣,只能由hypervisor去對接所有的硬件。

按照這個(gè)思想,AWS首先在2013年的c3實(shí)例上,采用了將網(wǎng)絡(luò)模塊從原來的虛擬化技術(shù)體系offload到一塊單獨(dú)的硬件卡上,AWS用了差不多兩年的時(shí)間才讓這個(gè)技術(shù)得以成熟,有了這個(gè)為基礎(chǔ),在之后的c4實(shí)例上,接著講ebs storage也offload到了單獨(dú)的硬件卡上,在c5實(shí)例上,則把local storage也offload了,也就意味著到了c5所有的io操作都o(jì)ffload到了單獨(dú)的硬件卡上,不用再消耗賣給用戶的機(jī)器上的cpu了,最后一步是把management的部分也offload了,同時(shí)寫了新的更為輕量級的Nitro Hypervisor。

從效果上,也很清楚的可以看到到了c5的版本,相比之前經(jīng)典的虛擬化,無論在網(wǎng)絡(luò)io,storage io上都有明顯的性能提升,在整個(gè)機(jī)器的性能上,也能看到c5相比c4,已經(jīng)更為接近物理機(jī)的性能。

除了性能以外,開始講到之前的虛擬化體系中最大的一個(gè)風(fēng)險(xiǎn),就是安全,dom0其實(shí)就是一個(gè)linux,所以是可以登錄進(jìn)去的,登錄進(jìn)去后其實(shí)就擁有了巨大的權(quán)力,例如管理機(jī)器上所有的虛擬機(jī),做個(gè)內(nèi)存dump,而Nitro則把dom0去掉了(講到這觀眾席一陣掌聲),其實(shí)現(xiàn)的核心機(jī)制是只有通過Nitro Controller才能操作Nitro Hypervisor,并且是單向的,其他擴(kuò)展出來的controller也只能通過Nitro Controller來操作,同樣Nitro Controller也不能反向操作擴(kuò)展出來的Controller。

WS與以色列的Annapurna實(shí)驗(yàn)室合作,開始研究Nitro,將網(wǎng)絡(luò)嵌入到一個(gè)單獨(dú)的卡中,并在2013年為一類新的C3實(shí)例提供動力。Annapurna的下一個(gè)任務(wù)是將處理過程也轉(zhuǎn)移到Nitro卡上,從而實(shí)現(xiàn)C4架構(gòu)。這次合作非常成功,Annapurna加入了AWS。

2015年收購以色列芯片設(shè)計(jì)公司后,“我們開始研究C5,新的目標(biāo)是將I/O裝載到單獨(dú)的卡上?!盇WS還著眼于移動其虛擬機(jī)監(jiān)控程序的一部分,并將其放在Nitro上,把硬件組件發(fā)展成一個(gè)全面的系統(tǒng)。

由于虛擬化系統(tǒng)的許多主要組件現(xiàn)在都在silicon上運(yùn)行,AWS基礎(chǔ)設(shè)施軟件設(shè)計(jì)師能夠通過剝離hypervisor,使EC2實(shí)例更精簡、更可靠、更安全,只需運(yùn)行最低限度的所需功能。這導(dǎo)致了功能上的下一次飛躍——新一代的EC2實(shí)例實(shí)現(xiàn)了AWS“幾乎像裸金屬一樣”的目標(biāo)。

Vogels告訴與會者:“虛擬機(jī)監(jiān)控程序很小,幾乎不影響用戶操作系統(tǒng)?!睂⒐δ苎b載到硬件上不僅提高了性能,而且大大提高了安全性,限制了組件之間的通信,能夠方便的阻止不需要的功能和不良程序。

“Nitro成為了創(chuàng)新的基礎(chǔ),”Vogels說,它允許AWS“做很多我們以前做不到的事情?!?由于Nitro平臺支持最新和最好的AWS計(jì)算環(huán)境,使得提供軟件實(shí)時(shí)更新、打補(bǔ)丁、虛擬機(jī)監(jiān)控程序,以及創(chuàng)建諸如Outposts本地服務(wù)這樣的新系統(tǒng)都成為可能。

Nitro不僅支持虛擬機(jī),還支持容器和無服務(wù)器服務(wù)。這一努力催生了Firecracker,它被用來提高AWS Fargate服務(wù)的效率,該服務(wù)為容器工作負(fù)載提供動力。AWS的首席軟件工程師Clare Liguori說,這種先進(jìn)的方法允許Fargate在“虛擬化的框架下”運(yùn)行由容器組成的應(yīng)用程序的每個(gè)副本,從而更好地隔離客戶。

Ligouri在周四的主題演講中告訴與會者,AWS最初使用EC2實(shí)例來隔離Fargate上運(yùn)行在無服務(wù)器模型中的容器化工作負(fù)載的空間,但這些實(shí)例通常“太重”。Firecracker是一種速度更快、重量更輕的高效容器平臺。Ligouri 說,“隨著我們在Firecracker上運(yùn)行更多的Fargate,我們的效率越來越高”。

2. 持續(xù)演進(jìn)的架構(gòu)

亞馬遜目前正在開發(fā)一個(gè)新的數(shù)據(jù)平臺,直接在Nitro上運(yùn)行,核心代碼在GitHub上向開發(fā)者開放。這個(gè)項(xiàng)目利用了containerd,一個(gè)開源項(xiàng)目,它是開放容器計(jì)劃的一部分。

Vogels指出,AWS Lambda無服務(wù)器系統(tǒng)也運(yùn)行在Firecracker上,隨著無服務(wù)器越來越受歡迎,這將帶來更多的創(chuàng)新。當(dāng)AWS首次推出Lambda時(shí),它預(yù)計(jì)無服務(wù)器計(jì)算將主要吸引年輕的、有預(yù)算意識的公司。后來發(fā)現(xiàn)并非如此:“企業(yè)中正在迅速采用無服務(wù)器,”Vogels說?!?/p>

EBS講了后,總結(jié)了下三種典型架構(gòu):

Regional Architecture

這個(gè)簡單說就是用一個(gè)集群支持所有用戶,壞處就是如果集群出問題,所有用戶就全部受影響了。

Cell-Based Architecture

每個(gè)集群支持部分用戶,其中一個(gè)集群故障,只會影響其對應(yīng)服務(wù)的用戶。

Shuffle Sharding Architecture

用戶群體復(fù)制N份,sharding后組合,每個(gè)集群服務(wù)組合后的用戶group,這樣就意味著每個(gè)用戶其實(shí)有多個(gè)集群在提供服務(wù),而每個(gè)集群服務(wù)的又是不同的用戶group,所以組合情況夠多的情況下,每個(gè)集群故障影響的面就會大幅減少。

這三種架構(gòu)確實(shí)是比較典型的降低故障影響面的架構(gòu)體系,但說起來容易做起來其實(shí)非常難,尤其是這里面涉及到的數(shù)據(jù)一致性問題,感興趣的也可以去翻翻網(wǎng)上關(guān)于阿里異地多活的技術(shù)分享,對于大多數(shù)的場景,我認(rèn)為能夠做到有兩個(gè)Region(可以是同一地域)同時(shí)服務(wù)所有用戶,在任何一個(gè)Region出問題都能快速切換,這基本就可以大幅降低blast radius,相對實(shí)現(xiàn)難度和代價(jià)也不會太大。

接著講到設(shè)計(jì)一個(gè)分布式系統(tǒng)是非常具備挑戰(zhàn)的,Amazon在過去這么多年積累了非常多的經(jīng)驗(yàn),于是Amazon對這些進(jìn)行了總結(jié),對外提供了一個(gè)library,里面有很多Amazon自己實(shí)際的經(jīng)驗(yàn)的文章,講到這一片掌聲,我也簡單翻了下這網(wǎng)站,還是挺值得看的。

最后一個(gè)部分是講工業(yè)制造方面,在和云、AI結(jié)合后帶來的一些變化,這塊我覺得更偏case一些,不過可以看到的是AWS也越來越強(qiáng)調(diào)相應(yīng)的技術(shù)在Amazon的使用。

整個(gè)keynote看下來給人的感覺還是很不錯(cuò)的,可以看到AWS對技術(shù)的思考,創(chuàng)新,也會更讓技術(shù)人員認(rèn)可AWS的技術(shù)領(lǐng)先性,推薦大家自己也去看看,尤其是技術(shù)人員,更尤其的是做基礎(chǔ)技術(shù)的,擴(kuò)充視野是非常重要的,不能坐井觀天,而AWS reInvent現(xiàn)在顯然是擴(kuò)充視野不可錯(cuò)過的科技盛會。

編譯:若畫

原文:https://www.crn.com/news/cloud/amazon-s-werner-vogels-on-reinventing-virtualization

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容