1、什麼是雲原生
(1)下面是百度詞條的解釋
雲原生是基于分布部署和統一運管的分布式雲,以容器、微服務、DevOps等技術為基礎建立的一套雲技術産品體系;雲原生是一種新型技術體系,是雲計算未來的發展方向。雲原生應用也就是面向“雲”而設計的應用,在使用雲原生技術後,開發者無需考慮底層的技術實現,可以充分發揮雲平台的彈性和分布式優勢,實現快速部署、按需伸縮、不停機交付等。
百度詞條首先将其定義為分布式雲的技術體系,接着說明雲原生是面向雲的應用,然後說明雲的資源的優勢。
(2)筆者對雲原生概念的理解
雲原生的概念目前好像沒有誰對其有解釋權。其概念筆者也看過一些資料,個人認為把其說的過于抽象和複雜,其實雲原生就是基于雲計算環境的軟件開發,和傳統的單體系統開發不同的是,在雲端有自己的一套信息化、數字化和智能化的開發、測試、運行、維護和項目管理的基礎設施,可以做到資源的重用和共享。
現有的雲計算環境為:基礎設施即服務(IaaS)、平台即服務(PaaS)、軟件即服務(SaaS),随着大數據基礎設施的完善,又出現了數據即服務(DaaS)的環境,以後随着智能化的發展還會有和其相關的基礎設施,那麼雲原生的架構就可以基于以上的基礎設施進行軟件開發,以便做到資源的共享和重用。當然您的公司或者組織實力足夠強大,也可以從頭到尾開發自己的雲設施,比如華為雲,百度雲等都自己開發,然後基于該基礎設施上開發軟件,來實現資源重用。
目前雲原生主要的技術實現有:分布式存儲和分布式計算、微服務技術、容器及其容器編排(Kubernetes)技術、分布式事務;随着VR技術的實現;區塊鍊技術的實現;人工智能技術的完善,等等,還會逐步将這些技術加入到雲端,來充實和完善雲端基礎設施。
2、為什麼要使用雲原生
企業在進行信息化、數字化以及智能化建設的時候,都要基于底層的基礎設施向上構建,但是如果單獨分配硬件資源,會造成資源被大量占用且難以被共享。
比如傳統的單體應用,首次部署時所用到的軟硬件密切聯系在一起,對操作系統有着很大的依賴性,系統的可移植性和可擴展性極差,同時要求物理資源不易被擴充。
再有傳統的單體應用的測試環境往往與生産環境相差甚遠,這就增加了在部署之後發生重大問題的可能性。
這樣我們基于雲計算的開發,硬件資源得到了重用;軟件資源得到可重用;數據資源得到了重用;計算資源得到了重用等等。基于雲計算的開發,我們所關心的軟件架構涉及到的諸如性能、可用性、可修改性、安全性等非功能性需求都可以得到很好的滿足。
3、雲原生主要的架構模式
現在流行的雲原生架構模式有微服務架構模式、Mesh架構模式、Serverless 模式、分布式事務模式等等,随着物聯網、大數據、VR、人工智能的發展,還會出現很多架構模式,現在就有互聯網大廠的架構師提出将智能化加入雲基礎設施,以後開發人員如果需要諸如決策樹、關聯規則等機器學習算法,雲端自動提供接口,可不必自己開發。現将流行的雲原生架構模式整理出表格如下。
4、雲原生架構的原則
很多開發工作者對雲原生架構總結了一些原則,主要有:服務化原則、彈性原則、可觀測原則、韌性原則、所有過程自動化原則、零信任原則、架構持續演進原則,筆者尊重原創的總結,不在重複構思贅述,主要内容給大家列出表格以供參考。
,