天天看點

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

大家好,我是喬克,一個愛折騰的運維工程,一個睡覺都被自己醜醒的雲原生愛好者。

作者:喬克

公衆号:運維開發故事

什麼是雲原生?

我相信大部分人都聽過雲原生,但是要你說出一個是以然,卻不知道怎麼開口,我也是一樣。

我不知道雲原生到底是什麼,從字面來看:雲原生就是為雲而生。雲是什麼?我了解雲就是雲計算,那雲原生就是在雲計算的基礎之上設計實作,充分利用雲的彈性、分布式等特性,讓應用能夠實作彈性伸縮、動态排程,也能更高的提升資源使用率。

發展曆程

在說雲原生之前,先來看看雲計算的發展曆程。

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

從上面的時間線來看,雲計算的技術演進是朝着越來越靈活的方向發展。其核心單元從早期的實體伺服器、變成後來的虛拟機,再到現在的容器,其靈活性越來越高,啟動速度越來越快,不可變基礎設施逐漸成為主流,軟體技術棧也逐漸從商業軟體走向開源。

不知道你有沒有發現,雲原生其實是雲計算發展曆程中的一種産物。

雲原生不是一個新的概念,它是雲計算發展的過程中對理念的更新和延申。在雲原生時代,希望讓應用更有彈性、容錯性、可觀測性,讓應用更容易部署、管理編寫、編排等,希望開發者能夠更好的利用雲的資源、産品以及傳遞能力。

下邊大緻梳理雲原生的發展曆程。

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

截止目前(2022年6月),CNCF成員已經有810個,參與的開發者高達15W,其中的明星項目如Kubernetes、Envoy等受到大衆非常喜歡。

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

雲原生全景圖(https://github.com/cncf/landscape):

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

核心理念

雲原生技術有助于企業在公有雲、私有雲和混合雲等新型動态環境中建構和運作可彈性擴充的應用。

雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施以及聲明式API。

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

随着雲原生的發展,其核心理念如下:

(1)利用容器和服務網格技術,解耦軟體開發,提高業務開發部署的靈活性和可維護性;

(2)以Kubernetes為核心的開源技術棧被各大産商所支援,使用者的選擇多,避免了産商綁定;

(3)以Kubernetes為核心的松耦合架構,易擴充,避免侵入式定制;

(4)對應用提供中心式的編排、動态管理以及排程,提高了工作效率和資料使用率;

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

在最近幾年,雲原生技術呈現如下幾種趨勢:

(1)軟硬一體化:傳統基礎設施的網絡、存儲、計算能力與雲原生技術生态開始深度對接;

(2)基于網格的服務治理能力:服務治理與業務邏輯逐漸解耦,服務治理能力下沉到基礎設施,服務網格以基礎設施的方式提供無侵入的連接配接控制、安全、可監測性、灰階釋出等治理能力;

(3)有狀态應用向雲原生遷移:無狀态+Job類應用趨于成熟,有狀态應用逐漸成為雲原生市場中新的增長點。 Operator 的出現,為有狀态應用在雲原生基礎設施上運作提供一套行之有效的标準規範,降低了使用門檻,使有狀态應用得以真正發展;

(4)多雲統一管理和多雲業務流量統一排程:雲原生北向API區域穩定,使用者更多開始關注跨區域、跨平台、跨雲大規模可複制能力;

代表技術

雲原生的主要代表技術如下:

(1)容器

容器不是新鮮的事物,在Docker釋出之前就有需要容器技術,比如CGroups、LXC等,Docker受歡迎的一個主要原因是它的鏡像技術——分層的鏡像建構。

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術

(2)Kubernetes

Kubernetes的聲明式API是面向開發者提供全新的分布式原語。

【K8S專欄】什麼是雲原生發展曆程核心理念代表技術
  • 針對期望狀态給出聲明,而不是針對過程
  • API對象彼此互補、可組合
  • 平台團隊聚焦架構層的開發和調優
  • 業務團隊聚焦業務本身的開發

繼續閱讀