阿里云马涛:什么是操作系统的云原生?
簡介:?云原生已經(jīng)成為IT界最流行的一個定語,似乎不談云原生就out了,但什么才是真正的云原生?
注:本文作者馬濤,阿里云智能研究員、阿里巴巴集團內(nèi)核團隊創(chuàng)始人之一、阿里云基礎軟件部操作系統(tǒng)團隊負責人。先后在ORACLE、阿里巴巴負責Linux以及操作系統(tǒng)內(nèi)核相關(guān)的研發(fā)工作。十五年以上操作系統(tǒng)和內(nèi)核相關(guān)研發(fā)經(jīng)驗,國內(nèi)知名Linux內(nèi)核研發(fā)人員,在文件系統(tǒng)、內(nèi)存管理、通用塊設備層等方面均有深厚的積累,多次受邀在國內(nèi)外知名Linux操作系統(tǒng)以及內(nèi)核相關(guān)會議上發(fā)表講座。
現(xiàn)在我們在各個場合可以看到各種各樣的“云原生XXX”,云原生已經(jīng)成為IT界最流行的一個定語,似乎不談云原生就out了。但什么才是真正的云原生?把老的技術(shù)跑在云上就可以了么?貌似不太行!用阿里云高級研究員蔣江偉的一句話來定義——“因云而生才是云原生”。簡單來說,一個產(chǎn)品或者技術(shù)要能真正加上云原生這個定語,一定要有因云而生的創(chuàng)新和演進,所以想加上云原生這個定語可不是容易的。如果各位讀者感興趣,可以上網(wǎng)搜索文章“阿里云蔣江偉:什么是真正的云原生?”
今天,我就毛遂自薦來講講云原生操作系統(tǒng)。
大家可能比較好奇,操作系統(tǒng)不是所有用電腦的人每天都在使用的玩意么?“操作系統(tǒng)原理”不是一般計算機系同學的第一門艱深的專業(yè)課么?現(xiàn)在最流行的操作系統(tǒng)Linux不是1991年就由Linus Torvalds大神創(chuàng)立了么?以上問題的答案都是肯定的,那么,這么一個頗為傳統(tǒng)的系統(tǒng)軟件也可以云原生了么?對,操作系統(tǒng)也要與時俱進!所以,今天我站在操作系統(tǒng)的角度,來談談這個頗為傳統(tǒng)的系統(tǒng)軟件是如何因云而生、因云而變,成為“云原生操作系統(tǒng)”的。
在展開講技術(shù)之前,我先簡單介紹一下自己。我是從2006年開始與操作系統(tǒng)結(jié)緣的,最開始是在Oracle從事操作系統(tǒng)的開發(fā)工作,2010年加入淘寶核心系統(tǒng)做操作系統(tǒng),作為阿里最早一批做操作系統(tǒng)的同學,從淘寶到阿里云一直堅守在操作系統(tǒng)領(lǐng)域,一路參與和見證了操作系統(tǒng)在阿里因云而生的演進發(fā)展。雖然淘寶也是一家互聯(lián)網(wǎng)公司,但是淘寶的操作系統(tǒng)和傳統(tǒng)的操作系統(tǒng)其實區(qū)別并不大。一切因云而生的改變從我2012年從淘寶轉(zhuǎn)入阿里云開始。
那個時候,阿里云的操作系統(tǒng)和淘寶的有區(qū)別么?客觀來說區(qū)別不大。唯一的一點點區(qū)別:在淘寶,操作系統(tǒng)是淘寶的一個基礎組件;而在阿里云,操作系統(tǒng)和虛擬化成為了第一代云計算的基石,這是操作系統(tǒng)和云的第一次親密接觸。
2000年左右,VMware和Xen虛擬化技術(shù)相繼出現(xiàn),操作系統(tǒng)通過將物理資源虛擬化達到提高資源利用率和靈活調(diào)度的目的,最終催生了云計算的誕生。早期的AWS、阿里云都是利用這一技術(shù)提供虛擬主機的服務。這是云原生么,是因云而生的么?當然不是。首先這些云廠商大都是在線下硬件上實現(xiàn)一個虛擬化層(hypervisor),把原來直接操控硬件的操作系統(tǒng)架到hypervisor上運行,然后服務器物理資源層面的抽象和管理都由hypervisor重新實現(xiàn)。那么,這個事情線下能做么?絕對可以,所以顯然這不符合云原生的定義。雖說這是云的開端,但這不是云原生的。
時間來到了2013年,操作系統(tǒng)和云的第二次親密接觸源于容器的誕生和發(fā)展。與虛擬機的服務器資源虛擬化不同,容器是操作系統(tǒng)虛擬化,在技術(shù)棧上上升了一層——通過內(nèi)核里實現(xiàn)的cgroup和namespace等技術(shù)為不同應用提供輕量、隔離的運行環(huán)境。2013年docker的橫空出世,使得應用容器的打包分發(fā)變得非常簡單易用,隨后k8s等容器編排技術(shù)的出現(xiàn),容器生態(tài)系統(tǒng)得到了快速的普及和發(fā)展,容器也迅速成為應用打包分發(fā)和開發(fā)測試的主流形態(tài),逐漸成為云計算的主要運行單元。
這就是CNCF定義的云原生了,但它只是“狹義”的,操作系統(tǒng)在這個“狹義”云原生中起到了很大的作用,但其實它并不是真正意義上的“因云而生的”,也沒有在云上體現(xiàn)任何革命性的技術(shù)革新。
不過仔細觀察一下上圖,我們可以發(fā)現(xiàn)——容器在安全方面的不足在云上成為了一個大問題。一方面?zhèn)鹘y(tǒng)的操作系統(tǒng)對于容器之間的干擾問題沒有很好的解決方案,另一方面容器之間還存在彼此攻擊,共享一些關(guān)鍵資源等非常嚴重的安全問題。機會總是留給有準備的人,此時的操作系統(tǒng)終于需要因云而變、為云演進了。我們基于操作系統(tǒng)實現(xiàn)了輕量級虛擬化和應用內(nèi)核等技術(shù),打造了一種全新的安全的容器,我們稱之為安全沙箱容器。
沙箱容器在解決容器安全隔離問題的同時,仍然保留容器完整的技術(shù)生態(tài)和體驗,可以跟普通容器無縫的混合使用。這是操作系統(tǒng)在容器場景上因云而生的一個重要演進,至此操作系統(tǒng)完成了“因云而生”的漂亮轉(zhuǎn)型,成為一個云原生操作系統(tǒng)。目前這套系統(tǒng)已經(jīng)服務于阿里集團各個云原生相關(guān)業(yè)務,也通過阿里云上各種容器實例產(chǎn)品服務于我們的云客戶。 ? ? ? ? ? ?
故事到這里還沒有結(jié)束。面向未來的云原生,操作系統(tǒng)如何繼續(xù)“因云而與眾不同”呢?這就不得不提云原生中另外一個趨勢Serverless。
2019年,UC伯克利大學預測Serverless將會逐漸取代Serverful計算,成為云時代的新計算范式。隨著云原生理念的推廣以及各種云原生技術(shù)的不斷發(fā)展,Serverless計算的趨勢在加速。在這種新場景中,用戶只需要專注于應用和業(yè)務邏輯,更多的通用功能、資源和系統(tǒng)能力都下沉到云,用戶不需要提前規(guī)劃容量,不需要運維底層系統(tǒng),可以真正像用水、用電一樣按需使用按需付費,Serverless將大幅提升云的生產(chǎn)效率。
背景介紹完,問題也來了—— Serverless和操作系統(tǒng)有啥關(guān)系呢?我認為要構(gòu)建好Serverless服務,操作系統(tǒng)一定不能缺席。由于Serverless場景下服務邊界的上移,對用戶來說應用容器或函數(shù)代碼之下的系統(tǒng)就是一個整體,用戶不再感知底層系統(tǒng)的技術(shù)棧分層。這個變化給技術(shù)垂直整合創(chuàng)造了條件。我們認為云原生的操作系統(tǒng)需要進行整體性的全棧優(yōu)化和重塑,這樣才能為Serverless提供更優(yōu)的底層系統(tǒng)能力,基礎運行環(huán)境、資源彈性、高效執(zhí)行等能力也將因此得到極大的釋放。
如果說在容器和K8S時代操作系統(tǒng)是“因云而演進”,那么到了Serverless時代,我們則要徹底創(chuàng)造出一個全新的云原生操作系統(tǒng)。通過底層系統(tǒng)全棧技術(shù)的協(xié)同融合,為云原生平臺和應用提供高效和創(chuàng)新的云原生系統(tǒng)服務。這次變革和創(chuàng)新的力度對于傳統(tǒng)操作系統(tǒng)而言是前所未有的,但是我們堅信,操作系統(tǒng)一定會為云而改變,為云而重生。在阿里內(nèi)部,我們給這樣的云原生操作系統(tǒng)起了一個響亮的名字——“袋鼠”。
多年之后,也許大學課程“操作系統(tǒng)原理”里的內(nèi)容會因為這次變革而發(fā)生翻天覆地的改變,但我們堅信,這就是云帶給我們這一代操作系統(tǒng)研發(fā)人員的使命:重新定義操作系統(tǒng)。只有通過因云而生的技術(shù)創(chuàng)新打造出來的操作系統(tǒng),才是真正的云原生操作系統(tǒng)。
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的阿里云马涛:什么是操作系统的云原生?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从 Flink Forward Asia
- 下一篇: java信息管理系统总结_java实现科