天天看點

蔣江偉:什麼是真正的雲原生?

蔣江偉 / 文

對于雲計算的使用者來說,了解什麼是雲原生尤為重要。不是簡單地使用容器來定義自己的系統,而是在設計、開發、部署等周期中,使用原汁原味的雲原生系統,這将會帶來巨大的競争優勢,充分享受到雲計算的紅利。

而今,雲原生成了耳熟能詳的熱門詞,似乎不提雲原生 就落伍了,加入 CNCF(雲原生計算基金會,Cloud Native Computing Foundation) 也成了雲廠商引以為傲 的技術優勢。

我們也看到各種雲原生的定義,有來自 CNCF 的“微服 務 + 容器 + 持續傳遞 +DevOps”,也有來自不同雲廠商 的說法。2020 年 9 月,阿裡雲成立了雲原生技術委員會, 今天我就從雲計算的初心嘗試談談什麼是真正的雲原生。

狹義的雲原生

讓我們先回顧雲原生的由來。

雲計算興起之後,以 Docker 為代表的容器浪潮,席卷業 界,以 DevOps 和标準化傳遞而廣受青睐。在此背景下, Google 創造性地提出了雲原生的概念,并釋出了開源編 排工具 Kubernetes,從統一部署和标準化的角度切入, 其後更成立了 CNCF 基金會,成功地殺出了一片天地。

2020 年 12 月,CNCF 大使 Ian Coldwater 在社交媒體 上說:“Kubernetes 現已棄用了對 Docker 的支援。您 需要注意這一點,并作好相應的規劃。這會搞壞您的叢集。” 這說明雲原生戰略獲得了曆史性的進展。從這個角度來看, 将雲原生等同于容器和服務網格,是早期對雲原生狹義的 了解。

廣義的雲原生

那麼,什麼是廣義的雲原生呢?因雲而生的軟體、硬體、 架構,就是真正的雲原生。

我們認為,雲原生更多應該從客戶應用的視角來看,部署 到雲上的應用,必須用到了隻有大規模公共雲實踐才能提 供的三類能力的一類或多類,即彈性、API 自動化部署和 運維等特性;服務化的雲原生産品,如 RDS、EMR 等; 因雲而生的軟硬一體化架構。這,就是雲原生。

首先,雲原生應用是相對線下傳統企業 IT 實體機上的環 境而言,要用雲的方式來部署和管理應用,充分利用雲的 供應效率,要全球部署、即開即用、按量付費。客戶就近 擷取雲的能力,就是所謂彈性,我們去年出過一本書,書 名叫《彈性計算 無處不在的算力》,講的就是背後的原 理,要具備這種極緻的彈性才是雲原生。在雲上提供的 Kubernetes,是通過自動化部署和運維的 API 标準化, 實作了雲原生。

其次,今天我們已經看到雲原生資料庫、雲原生大資料、 雲原生容器、雲原生中間件、雲原生安全等等概念,這 都是在雲上可以随意擷取的服務化雲原生産品,是傳統 線下沒有的服務,有助于獲得性能和成本上的加強,這 就是雲原生。

特别值得一提的是以神龍架構為代表的軟硬一體虛拟化。虛 拟化經曆了純軟體虛拟化、通用硬體虛拟化、到現在的軟硬 一體化虛拟化。通過計算存儲的分離,使用專用的神龍晶片, 對虛拟化進行加速,進而達到超越實體伺服器的高性能。作 為雲計算架構的底層,所有中間件和應用層都能從中獲得性 能的收益,而無需進行任何代碼和架構的修改。

此外,神龍架構支撐的是同一套資源架構并池的資源能力, 包括 ECI(Serverless 容器)、VM、裸金屬等,進而讓 所有的資源能夠統一排程,進而實作最深的彈性。這也是 業界第一次實作了統一架構和統一資源排程,被視為中國 雲廠商的重大技術貢獻。

從這種意義上來說,神龍架構就是因雲而生,是典型的雲 原生。簡單而言,如果沒有雲計算的大規模部署場景,神 龍的優勢就不能發揮得淋漓盡緻。

是以,雲原生的初心是在雲上的原生,如果缺乏雲的基 本特征,必然不是雲原生。極端而言,如果你自己買了 兩台伺服器,放在辦公室,上面部署了容器,然後用 Kubernetes 來管理,那就不是雲原生,因為缺乏彈性、

API 自動化部署和運維的能力,連雲都不是。

CNCF 更多的是倡導一個系統要用什麼元件進行架構, 這樣才能實作網際網路架構和運維能力,實作快速疊代、 靈活擴充、高效運維。而這些能力的發揮需要這些架構 架構基于雲,兩者結合則為雲原生。很多人會問,某個 開源軟體是否是雲原生?這個要看它的架構。以開源數 據庫為例,如果其架構上還是針對傳統的單機和小規模, 那就不是雲原生;如果保持開源的接口相容性,同時做 了雲原生改造和重新設計,運維和管控都充分利用了雲 的基礎能力,那就是雲原生的軟體和服務,如阿裡雲的 PolarDB 資料庫。

多雲和混合雲加速了雲原生

曆史的發展總是曲折的,因為相信是以看見,也總是一波 三折。在盤山公路上前行時,往往眼中隻能看到有限的視野。

為達到更高的成本效益、容錯和效率,業界産生了多雲和 混合雲。多雲是客戶将業務負載分别部署到不同的公共 雲廠商,而混合雲更多是客戶将業務負載部署到公共雲 和專有雲上。

多雲是競争的産物,雖然亞馬遜和阿裡雲一直認為使用者用 一家的雲就夠了。而混合雲的産生角度不同,它是為了滿足客戶分步上雲的意願,同時滿足部分行業監管合規的需 求,而建構的一種雲架構。無論是多雲還是混合雲,雲廠 商為了降低業務分布式部署的難度,讓客戶更容易接受, 都會敦促客戶對業務進行單元化改造,因為 Kubernetes 解決了标準化部署和遷移的問題。

同時除了 Kubernetes 和容器之外,往往涉及到使用公共 雲帶來的彈性、加速等等服務能力,以及資料庫、大資料、 音視訊等系統的雲原生改造。可見,Kubernetes 加速了 狹義的雲原生能力。

雲原生晶片

從計算晶片的角度而言,雲計算帶來了全新的應用場景, 進而對 CPU 提出了新的需求,也就是雲原生晶片。

比如阿裡雲的神龍晶片,就是雲原生晶片。它是整個裝置 的核心,因為通過它可以讓神龍伺服器完完全全具有虛 拟機的特性,包括虛拟機的接口。基于神龍晶片的神龍 MOC 卡在整個架構中具有重要作用,它具備豐富的管理 接口和對外資料接口,可以幫助我們實作彈性裸金屬服務 器具備的這些功能。

CPU 的多元化正在逐漸成為現實。首先是英特爾的對手 AMD 的崛起,雖然都是 x86 體系,但其晶片在成本效益高 之外,性能和特性也突飛猛進;其次,x86 架構之外的發 展非常迅猛,除 Ampere 的 ARM 伺服器晶片外,自研的 ARM 體系正成為很多雲廠商的選擇。

AWS 的 Graviton 2 自研晶片使用 64 位 ARM Neoverse 核心定制而成,設計思路是多核加每核單 Thread 負載, 每個核心都旨在通過盡可能多的、完全獨立的核心來傳遞 實際工作負載,力圖成為最節能的處理器。

微軟也在設計一款用于資料中心的 ARM 處理器,這是微 軟的重大戰略舉措,微軟認為,自己的晶片更适合某些需 求,更具成本和性能優勢。

雲原生 CPU 正呈現一些共有的特性:主頻不需要特别高功耗要特别低、獨立運作的核、多核架構能更好地支援服 務網格的應用、有成熟的軟體生态等等。

用雲原生的思維,用好雲原生架構

對于雲計算的使用者來說,了解什麼是雲原生尤為重要。不 是簡單地使用容器來定義自己的系統,而是在設計、開發、 部署等周期中,使用原汁原味的雲原生系統,将會帶來巨 大的競争優勢,充分享受雲計算的紅利。

雲原生不僅是實踐,更是一種理念,帶來的是時代變革。 開發人員的開發環境也要生在雲上、長在雲上。使用類 似無影這樣的遠端工具,讓産品設計文檔、開發調試環 境、部署工具、測試過程、POC 驗證、資源消費等等, 全部基于雲來進行。是以,雲原生帶來的是思維的變 化,是文化的變化,是新時代的生産力,遠遠超越了 CNCF 定義的 Kubernetes 标準接口,是未來使用雲 的标準方式。

什麼是真正的雲原生

我們很幸運,我們正親曆一個邁入雲時代的曆史性程序。

多年以後,新一代的新新人類,他們會更幸運,他們接觸 的一切計算環境都是雲原生的。他們天生就會認為,雲計 算資源是無處不在、取之不盡、用之不竭的,他們不會關 心雲資源在哪裡、有多少。就像今天我們使用自來水一樣, 沒有人會費勁心思考慮水從哪裡來。

因雲而生的軟體、硬體、架構,就是真正的雲原生;因雲 而生的技術,就是雲原生技術。