雲原生除了K8S、微服務,還有...?

雲原生(Cloud Native)是最近技術圈一個比較火的名詞,相信你們或多或少都據說過。不過對於大多數普通研發朋友來講,"雲原生"這個詞多少可能仍是有些陌生,以致於剛開始聽到這個詞時可能還會一臉懵逼的問"這究竟是一個什麼技術,我用過嗎?"這樣的問題。html

其實這並不奇怪,由於對於絕大多數普通開發者來講,咱們大部分時間都是在別人構建的基礎設施裏專一於業務代碼的開發,而不多關心業務應用運行所依賴的基礎設施環境,但這偏偏也是構建雲原生應用的核心意義所在。在今天的文章中,就和你們聊一聊關於雲原生的話題!後端

雲原生的概念

什麼是雲原生?對於這個問題咱們須要理解,雲原生並非指某一項具體的技術,而是一組技術體系、概念及系統設計原則的集合。例如咱們常討論的微服務架構、Kubernetes容器編排、Devops等內容都是雲原生體系的組成部分。服務器

從這個角度看,對於目前已經實現了雲服務部署、Spring Cloud微服務架構體系、Kubernetes容器化部署、且構建起了一套自動化發佈系統的公司來講,事實上就已是在踐行雲原生架構理念了。因此,你看是否是不少公司其實都已經在實施雲原生架構了呢?架構

根據CNCF(雲原生計算基金會)的官方描述,雲原生技術是指有利於在公有云、私有云或混合雲等新型動態環境下,實現應用可彈性伸縮部署的技術體系。雲原生的表明技術主要包括容器、服務網格、微服務、不可變基礎設施及聲明式API。利用這些技術能夠構建出容錯性更好、更易於管理和觀察的鬆耦合系統,再加上一些可靠的自動化技術及完備的監控預警體系,雲原生技術將使開發人員能更快速、輕鬆地迭代和交付軟件系統。運維

因此從上述描述看,雲原生技術實際上並非忽然才流行起來的概念,而是隨着雲計算、微服務架構、服務網格等分佈式應用架構技術普及流行,以及在以Docker、Kubernetes爲表明的容器化技術的推進下,逐步被業界所承認的一種系統架構理念及設計原則的抽象總結。機器學習

雲原生技術圖譜

這裏我總結了一份關於雲原生架構的技術圖譜供你們參考,以下圖所示:分佈式

如上圖所示,你會發現所謂的雲原生簡直就是一個技術大雜燴,它幾乎囊括目前大部分流行的後端技術,甚至還延伸到了AI、機器學習、邊緣計算等領域。但從實際應用場景來講雲原生架構主要特徵仍是體如今雲端環境、微服務架構、服務網格、Devops自動化交付、容器化部署這幾個方面。微服務

雲端環境就是要使用雲服務器,對於大部分公司來講就是使用一些公有云服務來部署應用,而不是本身在額外維護一套複雜服務器機房。這樣作的好處就在於利用雲服務的彈性及分佈式優點,能夠大大下降運維成本,而且提高服務的穩定性。工具

而面向微服務的架構,能將原先耦合度高的單體系統,在遵循軟件「高內聚、低耦合」設計原則的前提下,以獨立業務能力爲邊界拆分爲一個個原子系統。這樣作的好處是,每一個子系統均可以獨立交付部署,從而能實現更敏捷的軟件迭代效果。目前以Spring Cloud爲表明的微服務技術,幾乎已成爲事實上的軟件構建標準;而以Istio、Linkerd爲表明的下一代服務網格技術也在快速發展,這一切都爲雲原生架構理念的普及做了有效地鋪墊。學習

關於Devops,它強調的是以開發運維的視角,去構建一套高效完備的CI/CD流程,並經過自動化構建工具及發佈系統,來實現軟件生命週期的管理。從而使得普通開發人員,可以更快、更頻繁地交付更加穩定的軟件代碼。

此外基於Kubernetes的容器化編排技術,已經事實上成爲微服務運行的標準基礎架構環境,也正是Kubernetes的流行,才真正推進了雲原生架構理念的普及,Kubernetes能夠說就是雲原生架構的核心承載平臺。

總結

以上內容給你們大體介紹了下雲原生的概念,並總結了目前雲原生所涉及的主流技術棧圖譜。從宏觀上看雲原生架構是一個很是龐大的體系,它幾乎能包含目前軟件後端技術領域的方方面面,但從細節上看它卻又是咱們現階段工做中都多少能接觸到的技術,例如Spring Cloud微服務、服務熔斷限流、Kubernetes容器編排等等。

因此從某種程度上講,雲原生是一個抽象又具體的存在。它不是一個具體的產品,而是一套技術體系和一套方法論,隨着圍繞着雲原生架構的各種開源技術的進一步發展,雲原生技術體系必將成爲主流,進而影響到每個技術人員、每個企業和行業。

相關文章
相關標籤/搜索