簡介
Cloud Native 翻譯為云原生,是Matt Stine提出的一個概念,它是一個思想的集合,包括DevOps、持續(xù)交付(Continuous Delivery)、微服務(wù)(MicroServices)、敏捷基礎(chǔ)設(shè)施(Agile Infrastructure)、康威定律(Conways Law)等,以及根據(jù)商業(yè)能力對公司進行重組。Cloud Native既包含技術(shù)(微服務(wù),敏捷基礎(chǔ)設(shè)施),也包含管理(DevOps,持續(xù)交付,康威定律,重組等)。Cloud Native也可以說是一系列Cloud技術(shù)、企業(yè)管理方法的集合。
Cloud Native是更好的工具、自我修復(fù)系統(tǒng)、和自動化系統(tǒng)的集合,可以讓應(yīng)用和基礎(chǔ)設(shè)施的部署和故障修復(fù)更加快速和敏捷,極大的降低企業(yè)在云計算方面的部署成本。
目前業(yè)界公認的云原生主要包括以下幾個層面的內(nèi)容。

容器,服務(wù)網(wǎng)格,微服務(wù),不可變的基礎(chǔ)設(shè)施,公開的API都接近云原生相關(guān)概念。
云原生技術(shù)可以讓系統(tǒng)松耦合,支持彈性伸縮、可管理的、清晰的。通過整合健壯且有效的自動化,工程師可以用很少的勞動來完成頻繁的、預(yù)期中的高危代碼修改。
云原生準確來說是一種文化,更是一種潮流,它是云計算的一個必然導(dǎo)向。意義在于讓云成為云化戰(zhàn)略成功的基石,而不是障礙。

云原生的發(fā)展歷程
云原生(Cloud Native)最初來描述云上應(yīng)用的典型架構(gòu)與特性,隨著容器、kubernetes、Serverless、FaaS技術(shù)的演進,CNCF(Cloud Native Computing Foundation ,云原生計算基金會)把云原生的概念更廣泛地定義為“讓應(yīng)用更有彈性、容錯性、觀測性的基礎(chǔ)技術(shù),讓應(yīng)用更容易部署、管理的基礎(chǔ)軟件、讓應(yīng)用更容易編寫、編排的運行框架等”,希望能夠讓開發(fā)者最好的利用云的資源、產(chǎn)品和交付能力。
下邊大致梳理一下云原生的發(fā)展過程。
2004 年 ~ 2007 年,Google 已在內(nèi)部大規(guī)模地使用像 Cgroups 這樣的容器技術(shù); 2008 年,Google 將 Cgroups 合并進入了 Linux 內(nèi)核主干。 2013 年,Docker 項目正式發(fā)布。 2014 年,Kubernetes 項目也正式發(fā)布。 2015 年,CNCF 成立。 2017 年,CNCF 達到 170 個成員和 14 個基金項目。 2018 年,CNCF 成立三周年有了 195 個成員,19 個基金會項目和 11 個孵化項目,如此之快的發(fā)展速度在整個云計算領(lǐng)域都是非常罕見的。
2014 年 Kubernetes 項目發(fā)布的原因也非常容易理解,因為有了容器和 Docker 之后,就需要有一種方式去幫助大家方便、快速、優(yōu)雅地管理這些容器,這就是 Kubernetes 項目的初衷。在 Google 和 Redhat 發(fā)布了 Kubernetes 之后,這個項目的發(fā)展速度非常之快。
2015 年由 Google、Redhat 以及微軟等大型云計算廠商以及一些開源公司共同牽頭成立了 CNCF 云原生基金會。CNCF 成立之初,就有 22 個創(chuàng)始會員,而且 Kubernetes 也成為了 CNCF 托管的第一個開源項目。在這之后,CNCF 的發(fā)展速度非常迅猛。
云原生技術(shù)生態(tài)現(xiàn)狀
因此,如今我們所討論的云原生技術(shù)生態(tài)是一個龐大的技術(shù)集合。CNCF 有一張云原生全景圖(https://github.com/cncf/landscape),在這個全景圖里已經(jīng)有 200 多個項目和產(chǎn)品了,這些項目和產(chǎn)品也都是和 CNCF 的觀點所契合的。所以如果以這張全景圖作為背景,加以思考就會發(fā)現(xiàn),我們今天所討論的云原生其實主要談?wù)摿艘韵聨c:
云原生基金會 —— CNCF
CNCF 是目前云計算領(lǐng)域最成功的開源基金會之一,是 Kubernetes、 etcd、Envoy 等知名開源項目的托管基金會。
云原生技術(shù)社區(qū)
云原生技術(shù)社區(qū),比如像 CNCF 目前正式托管的 20 多個項目共同構(gòu)成了現(xiàn)代云計算生態(tài)的基石,其中像 Kubernetes 這樣的項目已經(jīng)成為了世界第四活躍的開源項目;目前從 CNCF 畢業(yè)的項目以及有 6 個,分別是 Kubernetes 、Prometheus、Envoy、CoreDNS、containerd、Fluentd 。
云原生技術(shù)產(chǎn)業(yè)
除了前面兩點之外,現(xiàn)在全球各大公有云廠商都已經(jīng)支持了 Kubernetes。此外,還有 100 多家技術(shù)創(chuàng)業(yè)公司也在持續(xù)地進行投入?,F(xiàn)在阿里巴巴也在談全面上云,而且上云就要上云原生,這也是各大技術(shù)公司擁抱云原生的一個例子。
我們正處于時代的關(guān)鍵節(jié)點
2019 年正是云原生時代的關(guān)鍵節(jié)點,為什么這么說?我們這里就為大家簡單梳理一下。
從 2013 年 Docker 項目發(fā)布開始說起,Docker 項目的發(fā)布使得全操作系統(tǒng)語義的沙盒技術(shù)唾手可得,使得用戶能夠更好地、更完整地打包自己的應(yīng)用,使得開發(fā)者可以輕而易舉的獲得了一個應(yīng)用的最小可運行單位,而不需要依賴任何 PaaS 能力。這對經(jīng)典 PaaS 產(chǎn)業(yè)其實是一個“降維打擊”。
2014 年的時候,Kubernetes 項目發(fā)布,其意義在于 Google 將內(nèi)部的 Borg/Omega 系統(tǒng)思想借助開源社區(qū)實現(xiàn)了“重生”,并且提出了“容器設(shè)計模式”的思想。而 Google 之所以選擇間接開源 Kubernetes 而不是直接開源 Borg 項目,其實背后的原因也比較容易理解:Borg/Omega 這樣的系統(tǒng)太復(fù)雜了,是沒辦法提供給 Google 之外的人使用,但是 Borg/Omega 這樣的設(shè)計思想?yún)s可以借助 Kubernetes 讓大家接觸到,這也是開源 Kubernetes 的重要背景。
這樣到了 2015 年到 2016 年,就到了容器編排“三國爭霸”的時代,當時 Docker、Swarm、Mesos、Kubernetes 都在容器編排領(lǐng)域展開角逐,他們競爭的原因其實也比較容易理解, 那就是 Docker 或者容器本身的價值雖然大,但是如果想要讓其產(chǎn)生商業(yè)價值或者說對云的價值,那么就一定需要在編排上面占據(jù)一個有利的位置。
其中,Swarm 更偏向于生態(tài),而 Mesos 技術(shù)更強一些。相比之下, Kubernetes 則兼具了兩者優(yōu)勢,最終在 2017 年“三國爭霸”的局面中得以勝出,成為了當時直到現(xiàn)在的容器編排標準。這一過程的代表性事件就是 Docker 公司宣布在核心產(chǎn)品中內(nèi)置了 Kubernetes 服務(wù),并且 Swarm 項目逐漸停止維護。
到了 2018 年的時候,云原生技術(shù)理念開始逐漸萌芽,這是因為此時 Kubernetes 以及容器都成為了云廠商的既定標準,以“云”為核心的軟件研發(fā)思想逐步形成。
而到了 2019 年,情況似乎又將發(fā)生一些變化。
2019 年,云原生技術(shù)普及元年
為什么說 2019 年很可能是一個關(guān)鍵節(jié)點呢?我們認為 2019 年是云原生技術(shù)的普及元年。
首先大家可以看到,在 2019 年,阿里巴巴宣布要全面上云,而且“上云就要上云原生”。我們還可以看到,以“云”為核心的軟件研發(fā)思想,正逐步成為所有開發(fā)者的默認選項。像 Kubernetes 等云原生技術(shù)正在成為技術(shù)人員的必修課,大量的工作崗位正在涌現(xiàn)出來。
這種背景下,“會 Kubernetes” 已經(jīng)遠遠不夠了,“懂 Kubernetes”、“會云原生架構(gòu)” 的重要性正日益凸顯出來。 從 2019 年開始,云原生技術(shù)將會大規(guī)模普及,這也是為什么大家都要在這個時間點上學習和投資云原生技術(shù)的重要原因。
云原生代表技術(shù)
