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