什麼才是真正的雲原生?

玻璃窗起霧了發表於2021-01-23

而今,雲原生成了耳熟能詳的熱門詞,似乎不提雲原生就落伍了,加入 CNCF 也成了雲廠商引以為傲的技術優勢。

我們也看到各種雲原生的定義,有來自 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 標準介面,是未來使用雲的標準方式。 

什麼是真正的雲原生

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

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

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

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992957/viewspace-2752407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章