天天看點

雲計算和雲原生傻傻分不清

在技術領域,如果說哪個概念最火,毫無疑問就是雲原生,然而每個人對于雲原生的定義又有各自不同的看法,它跟雲計算是什麼關系,今天我們就來澄清兩者的關系,幫助大家更好的了解雲原生的概念。

首先,我們來說說雲計算,雲計算的劃分可以分為3層,即基礎設施即服務(IaaS)、平台即服務(PaaS)、軟體即服務(SaaS),看下圖,其實我們大概就能明白IaaS、PaaS、SaaS解決的問題。

雲計算和雲原生傻傻分不清

那我們再來看看雲原生(Cloud Native)這個概念,是由Pivotal的Matt Stine于2013年首次提出,他還在2015年出版了《Migrating to Cloud-Native Application Architectures(遷移到雲原生架構)》一書。

這裡我先抛出一個概念:雲原生的定義尚不明确,但含義豐富。不同的人群組織有着不同的了解。

衆多頂級技術的鑄造者、Matt Stine的東家Pivotal這樣定義雲原生:

“Cloud native is an approach to building and running applications that fully exploit the advantages of the cloud computing model.”--雲原生是一種建構和運作充分利用雲計算模型優勢的應用程式的方法。

CNCF雲原生計算基金會如此定義雲原生:“雲原生技術有利于各組織在公有雲、私有雲和混合雲等新型動态環境中,建構和運作可彈性擴充的應用。

雲原生的代表技術包括容器、服務網格(Service Mesh)、微服務、不可變基礎設施和聲明式API。這些技術能夠建構容錯性好、易于管理和便于觀察的松耦合系統。結合可靠的自動化手段,雲原生技術使工程師能夠輕松地對系統作出頻繁和可預測的重大變更。

是以,業界有一種說法,雲原生=微服務+DevOps+持續傳遞+容器化。

雲計算和雲原生傻傻分不清
雲計算和雲原生傻傻分不清

總結一下雲原生的特點:

• 子產品化:抽象獨立的服務包(如容器化或無伺服器架構);

• 可程式設計性:通過聲明API和政策來實作資源調配和管理;

• 伸縮性:協調器通過自動化和政策驅動的方式縱向動态擴充資源;

• 彈性:服務就是松散耦合的單元,互相獨立且兼具容錯能力。

總結,雲原生屬于技術架構理念,而雲計算提供應用所需的基礎資源。雲計算的發展推動了雲原生架構的誕生,隻有結合雲計算提供的雲服務,改造應用架構,才能更好的建構彈性、穩定、松耦合的分布式應用,并解決複雜性問題。同時雲原生技術的發展反向促進雲服務的更新和改進,總之,兩者是相輔相成。

繼續閱讀