注:本文作者馬濤,阿裡雲智能研究員、阿裡巴巴集團核心團隊創始人之一、阿裡雲基礎軟體部作業系統團隊負責人。先後在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時代,我們則要徹底創造出一個全新的雲原生作業系統。通過底層系統全棧技術的協同融合,為雲原生平台和應用提供高效和創新的雲原生系統服務。這次變革和創新的力度對于傳統作業系統而言是前所未有的,但是我們堅信,作業系統一定會為雲而改變,為雲而重生。在阿裡内部,我們給這樣的雲原生作業系統起了一個響亮的名字——“袋鼠”。
多年之後,也許大學課程“作業系統原理”裡的内容會因為這次變革而發生翻天覆地的改變,但我們堅信,這就是雲帶給我們這一代作業系統研發人員的使命:重新定義作業系統。隻有通過因雲而生的技術創新打造出來的作業系統,才是真正的雲原生作業系統。
福利提醒:看文章,有禮品 🙈
加入龍蜥社群
加入微信群:添加社群助理-龍蜥社群小龍(微信:openanolis_assis),備注【龍蜥】拉你入群;加入釘釘群:可掃碼或搜釘釘群号(33311793)。歡迎開發者/使用者加入龍蜥OpenAnolis社群交流,共同推進龍蜥社群的發展,一起打造一個活躍的、健康的開源作業系統生态!
龍蜥社群_小龍 釘釘群二維碼
關于龍蜥社群
龍蜥社群是由企事業機關、高等院校、科研機關、非營利性組織、個人等按照自願、平等、開源、協作的基礎上組成的非盈利性開源社群。龍蜥社群成立于2020年9月,旨在建構一個開源、中立、開放的Linux上遊發行版社群及創新平台。
短期目标是開發Anolis OS作為CentOS替代版,重新建構一個相容國際Linux主流廠商發行版。中長期目标是探索打造一個面向未來的作業系統,建立統一的開源作業系統生态,孵化創新開源項目,繁榮開源生态。
加入我們,一起打造面向未來的開源作業系統!
Https://openanolis.cn