溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CNCF官方大使張磊:什么是云原生?

發(fā)布時(shí)間:2020-06-14 21:30:02 來(lái)源:網(wǎng)絡(luò) 閱讀:354 作者:阿里系統(tǒng)軟件技術(shù) 欄目:云計(jì)算

作者|張磊 阿里云容器平臺(tái)高級(jí)技術(shù)專家,CNCF 官方大使

編者說(shuō):

從 2015 年 Google 牽頭成立 CNCF 以來(lái),云原生技術(shù)開始進(jìn)入公眾的視線并取得快速的發(fā)展,到 2018 年包括 Google、AWS、Azure、Alibaba Cloud 等大型云計(jì)算供應(yīng)商都加入了云原生基金會(huì)?CNCF,云原生技術(shù)也從原來(lái)的應(yīng)用容器化發(fā)展出包括容器、Service Mesh、微服務(wù)、不可變基礎(chǔ)設(shè)施、Serverless、FaaS 等眾多技術(shù)方向,CFCF 旗下也囊括了越來(lái)多的開源項(xiàng)目。

Kubernetes 作為 CNCF 的第一個(gè)項(xiàng)目從誕生之初就就令人矚目,Kubernetes 由 Google 工程師基于 Google 內(nèi)部多年集群管理系統(tǒng) Borg 的設(shè)計(jì)經(jīng)驗(yàn),結(jié)合云計(jì)算時(shí)代的基礎(chǔ)設(shè)施特點(diǎn)重新設(shè)計(jì)而得,旨在幫助企業(yè)解決大規(guī)模 IT 基礎(chǔ)設(shè)施的應(yīng)用容器編排難題。Google 在 2014 年 6 月開源?Kubernetes 以后,在 Redhat、Microsoft、Alibaba 等廠商和眾多開源愛好者共同的努力下,成長(zhǎng)為如今容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn),極大的推動(dòng)了云原生領(lǐng)域的發(fā)展。

在系統(tǒng)介紹什么是云原生,云原生對(duì)開發(fā)者來(lái)說(shuō)意味著什么,我們先從云原生技術(shù)發(fā)展簡(jiǎn)史開始講起。

云原生技術(shù)發(fā)展簡(jiǎn)史

CNCF官方大使張磊:什么是云原生?cdn.com/1984634253ecef3ab2c930a97067b211b0c666e0.png">

  • 2004?年— 2007?年,Google 已在內(nèi)部大規(guī)模地使用像 Cgroups?這樣的容器技術(shù);
  • 2008?年,Google?將 Cgroups?合并進(jìn)入了?Linux?內(nèi)核主干;
  • 2013?年,Docker?項(xiàng)目正式發(fā)布。
  • 2014?年,Kubernetes?項(xiàng)目也正式發(fā)布。這樣的原因也非常容易理解,因?yàn)橛辛巳萜骱?Docker?之后,就需要有一種方式去幫助大家方便、快速、優(yōu)雅地管理這些容器,這就是?Kubernetes?項(xiàng)目的初衷。在?Google?和?Redhat?發(fā)布了?Kubernetes?之后,這個(gè)項(xiàng)目的發(fā)展速度非常之快。
  • 2015?年,由Google、Redhat?以及微軟等大型云計(jì)算廠商以及一些開源公司共同牽頭成立了?CNCF?云原生基金會(huì)。CNCF 成立之初,就有?22?個(gè)創(chuàng)始會(huì)員,而且?Kubernetes?也成為了?CNCF?托管的第一個(gè)開源項(xiàng)目。在這之后,CNCF?的發(fā)展速度非常迅猛;
  • 2017?年,CNCF 達(dá)到?170?個(gè)成員和?14?個(gè)基金項(xiàng)目;
  • 2018?年,CNCF?成立三周年有了?195?個(gè)成員,19?個(gè)基金會(huì)項(xiàng)目和?11?個(gè)孵化項(xiàng)目,如此之快的發(fā)展速度在整個(gè)云計(jì)算領(lǐng)域都是非常罕見的。

云原生技術(shù)生態(tài)現(xiàn)狀

因此,如今我們所討論的云原生技術(shù)生態(tài)是一個(gè)龐大的技術(shù)集合。CNCF?有一張?jiān)圃皥D(https://github.com/cncf/landscape),在這個(gè)全景圖里已經(jīng)有?200?多個(gè)項(xiàng)目和產(chǎn)品了,這些項(xiàng)目和產(chǎn)品也都是和?CNCF?的觀點(diǎn)所契合的。

CNCF官方大使張磊:什么是云原生?

所以,如果以這張全景圖作為背景,加以思考就會(huì)發(fā)現(xiàn),我們今天所討論的云原生其實(shí)主要談?wù)摿艘韵聨c(diǎn):

  1. 云原生基金會(huì)?—— CNCF;

CNCF (云原生基金會(huì))是目前云計(jì)算領(lǐng)域最成功的
開源基金會(huì)之一,是 Kubernetes,containerd,etcd
,Envoy 等知名開源項(xiàng)目的托管基金會(huì)

  1. 云原生技術(shù)社區(qū)

CNCF 目前托管的 20 + 正式項(xiàng)目共同構(gòu)成了現(xiàn)代云
計(jì)算生態(tài)的基石。其中 Kubernetes 項(xiàng)目是全世界第
四活躍的開源項(xiàng)目

  1. 云原生技術(shù)產(chǎn)業(yè)

除了前面兩點(diǎn)之外,現(xiàn)在全球各大公有云廠商都已經(jīng)支持了?Kubernetes。此外,還有?100?多家技術(shù)創(chuàng)業(yè)公司也在持續(xù)地進(jìn)行投入,總體市場(chǎng)于2021年逼近 1000 億美元?,F(xiàn)在阿里巴巴也在全面上云,而且上云就要上云原生,這也是各大技術(shù)公司擁抱云原生的一個(gè)例子。

我們正處于時(shí)代的關(guān)鍵節(jié)點(diǎn)

CNCF官方大使張磊:什么是云原生?
2019?年正是云原生時(shí)代的關(guān)鍵節(jié)點(diǎn),為什么這么說(shuō)?我們這里就為大家簡(jiǎn)單梳理一下。

從?2013?年?Docker?項(xiàng)目發(fā)布開始說(shuō)起,Docker?項(xiàng)目的發(fā)布使得全操作系統(tǒng)語(yǔ)義的沙盒技術(shù)唾手可得,使得用戶能夠更好地、更完整地打包自己的應(yīng)用,使得開發(fā)者可以輕而易舉的獲得了一個(gè)應(yīng)用的最小可運(yùn)行單位,而不需要依賴任何 PaaS 能力。這對(duì)經(jīng)典?PaaS?產(chǎn)業(yè)其實(shí)是一個(gè)“降維打擊”。

2014?年的時(shí)候,Kubernetes?項(xiàng)目發(fā)布,其意義在于?Google?將內(nèi)部的?Borg/Omega?系統(tǒng)思想借助開源社區(qū)實(shí)現(xiàn)了“重生”,并且提出了“容器設(shè)計(jì)模式”的思想。而?Google?之所以選擇間接開源?Kubernetes?而不是直接開源?Borg?項(xiàng)目,其實(shí)背后的原因也比較容易理解:Borg/Omega?這樣的系統(tǒng)太復(fù)雜了,是沒辦法提供給?Google?之外的人使用,但是?Borg/Omega?這樣的設(shè)計(jì)思想?yún)s可以借助?Kubernetes?讓大家接觸到,這也是開源?Kubernetes?的重要背景。

這樣到了?2015?年到?2016?年,就到了容器編排“三國(guó)爭(zhēng)霸”的時(shí)代,當(dāng)時(shí)?Docker、Swarm、Mesos、Kubernetes?都在容器編排領(lǐng)域展開角逐,他們競(jìng)爭(zhēng)的原因其實(shí)也比較容易理解, 那就是?Docker?或者容器本身的價(jià)值雖然大,但是如果想要讓其產(chǎn)生商業(yè)價(jià)值或者說(shuō)對(duì)云的價(jià)值,那么就一定需要在編排上面占據(jù)一個(gè)有利的位置。

Swarm?和?Mesos?的特點(diǎn),那就是各自只在生態(tài)和技術(shù)方面比較強(qiáng),其中,Swarm?更偏向于生態(tài),而?Mesos?技術(shù)更強(qiáng)一些。相比之下, Kubernetes?則兼具了兩者優(yōu)勢(shì),最終在 2017?年“三國(guó)爭(zhēng)霸”的局面中得以勝出,成為了當(dāng)時(shí)直到現(xiàn)在的容器編排標(biāo)準(zhǔn)。這一過(guò)程的代表性事件就是?Docker?公司宣布在核心產(chǎn)品中內(nèi)置了?Kubernetes?服務(wù),并且?Swarm?項(xiàng)目逐漸停止維護(hù)。

到了?2018?年的時(shí)候,云原生技術(shù)理念開始逐漸萌芽,這是因?yàn)榇藭r(shí)?Kubernetes?以及容器都成為了云廠商的既定標(biāo)準(zhǔn),以“云”為核心的軟件研發(fā)思想逐步形成。

而到了?2019?年,情況似乎又將發(fā)生一些變化。

CNCF官方大使張磊:什么是云原生?

什么是“云原生”?云原生該怎么落地?

云原生的定義

CNCF官方大使張磊:什么是云原生?

很多人都會(huì)問“到底什么是云原生?”

實(shí)際上,云原生是一條最佳路徑或者最佳實(shí)踐。更詳細(xì)的說(shuō),云原生為用戶指定了一條低心智負(fù)擔(dān)的、敏捷的、能夠以可擴(kuò)展、可復(fù)制的方式最大化地利用云的能力、發(fā)揮云的價(jià)值的最佳路徑。

因此,云原生其實(shí)是一套指導(dǎo)進(jìn)行軟件架構(gòu)設(shè)計(jì)的思想。按照這樣的思想而設(shè)計(jì)出來(lái)的軟件:首先,天然就“生在云上,長(zhǎng)在云上”;其次,能夠最大化地發(fā)揮云的能力,使得我們開發(fā)的軟件和“云”能夠天然地集成在一起,發(fā)揮出“云”的最大價(jià)值。

所以,云原生的最大價(jià)值和愿景,就是認(rèn)為未來(lái)的軟件,會(huì)從誕生起就生長(zhǎng)在云上,并且遵循一種新的軟件開發(fā)、發(fā)布和運(yùn)維模式,從而使得軟件能夠最大化地發(fā)揮云的能力。說(shuō)到了這里,大家可以思考一下為什么容器技術(shù)具有革命性?

其實(shí),容器技術(shù)和集裝箱技術(shù)的革命性非常類似,即:容器技術(shù)使得應(yīng)用具有了一種“自包含”的定義方式。所以,這樣的應(yīng)用才能以敏捷的、以可擴(kuò)展可復(fù)制的方式發(fā)布在云上,發(fā)揮出云的能力。這也就是容器技術(shù)對(duì)云發(fā)揮出的革命性影響所在,所以說(shuō),容器技術(shù)正是云原生技術(shù)的核心底盤。

云原生的技術(shù)范疇

CNCF官方大使張磊:什么是云原生?

云原生的技術(shù)范疇包括了以下幾個(gè)方面:

  • 第一部分是云應(yīng)用定義與開發(fā)流程。這包括應(yīng)用定義與鏡像制作、配置?CI/CD、消息和?Streaming?以及數(shù)據(jù)庫(kù)等。
  • 第二部分是云應(yīng)用的編排與管理流程。這也是?Kubernetes?比較關(guān)注的一部分,包括了應(yīng)用編排與調(diào)度、服務(wù)發(fā)現(xiàn)治理、遠(yuǎn)程調(diào)用、API?網(wǎng)關(guān)以及?Service Mesh。
  • 第三部分是監(jiān)控與可觀測(cè)性。這部分所強(qiáng)調(diào)的是云上應(yīng)用如何進(jìn)行監(jiān)控、日志收集、Tracing?以及在云上如何實(shí)現(xiàn)破壞性測(cè)試,也就是混沌工程的概念。
  • 第四部分就是云原生的底層技術(shù),比如容器運(yùn)行時(shí)、云原生存儲(chǔ)技術(shù)、云原生網(wǎng)絡(luò)技術(shù)等。
  • 第五部分是云原生工具集,在前面的這些核心技術(shù)點(diǎn)之上,還有很多配套的生態(tài)或者周邊的工具需要使用,比如流程自動(dòng)化與配置管理、容器鏡像倉(cāng)庫(kù)、云原生安全技術(shù)以及云端密碼管理等。
  • 最后則是?Serverless。Serverless?是一種?PaaS?的特殊形態(tài),它定義了一種更為“極端抽象”的應(yīng)用編寫方式,包含了?FaaS?和 BaaS?這樣的概念。而無(wú)論是?FaaS?還是?BaaS,其最為典型的特點(diǎn)就是按實(shí)際使用計(jì)費(fèi)(Pay as you go),因此?Serverless?計(jì)費(fèi)也是重要的知識(shí)和概念。

云原生思想的兩個(gè)理論

CNCF官方大使張磊:什么是云原生?

在了解完云原生的技術(shù)范疇之后你就會(huì)發(fā)現(xiàn),其所包含的技術(shù)內(nèi)容還是很多的,但是這些內(nèi)容的技術(shù)本質(zhì)卻是類似的。云原生技術(shù)的本質(zhì)是兩個(gè)理論基礎(chǔ)。

  • 第一個(gè)理論基礎(chǔ)是:不可變基礎(chǔ)設(shè)施。這一點(diǎn)目前是通過(guò)容器鏡像來(lái)實(shí)現(xiàn)的,其含義就是應(yīng)用的基礎(chǔ)設(shè)施應(yīng)該是不可變的,是一個(gè)自包含、自描述可以完全在不同環(huán)境中遷移的東西;
  • 第二個(gè)理論基礎(chǔ)就是:云應(yīng)用編排理論。當(dāng)前的實(shí)現(xiàn)方式就是?Google?所提出來(lái)的“容器設(shè)計(jì)模式”,這也是 Kubernetes?部分文章中所需主要講述的內(nèi)容。

基礎(chǔ)設(shè)施向云演進(jìn)的過(guò)程

CNCF官方大使張磊:什么是云原生?

首先為大家介紹一下“不可變基礎(chǔ)設(shè)施”的概念。其實(shí),應(yīng)用所依賴的基礎(chǔ)設(shè)施也在經(jīng)歷一個(gè)向云演進(jìn)的過(guò)程,舉例而言,對(duì)于傳統(tǒng)的應(yīng)用基礎(chǔ)設(shè)施而言,其實(shí)往往是可變的。

大家可能經(jīng)常會(huì)干這樣一件事情,比如需要發(fā)布或者更新一個(gè)軟件,那么流程大致是這樣的,先通過(guò)?SSH?連到服務(wù)器,然后手動(dòng)升級(jí)或者降級(jí)軟件包,逐個(gè)調(diào)整服務(wù)器上的配置文件,并且將新代碼直接都部署到現(xiàn)有服務(wù)器上。因此,這套基礎(chǔ)設(shè)施會(huì)不斷地被調(diào)整和修改。

但是在云上,對(duì)“云”友好的應(yīng)用基礎(chǔ)設(shè)施是不可變的。

這種場(chǎng)景下的上述更新過(guò)程會(huì)這么做:一旦應(yīng)用部署完成之后,那么這套應(yīng)用基礎(chǔ)設(shè)施就不會(huì)再修改了。如果需要更新,那么需要現(xiàn)更改公共鏡像來(lái)構(gòu)建新服務(wù)直接替換舊服務(wù)。而我們之所以能夠?qū)崿F(xiàn)直接替換,就是因?yàn)槿萜魈峁┝俗园沫h(huán)境(包含應(yīng)用運(yùn)行所需的所有依賴)。所以對(duì)于應(yīng)用而言,完全不需要關(guān)心容器發(fā)生了什么變化,只需要把容器鏡像本身修改掉就可以了。因此,對(duì)于云友好的基礎(chǔ)設(shè)施是隨時(shí)可以替換和更換的,這就是因?yàn)槿萜骶哂忻艚莺鸵恢滦缘哪芰?,也就是云時(shí)代的應(yīng)用基礎(chǔ)設(shè)施。

所以,總結(jié)而言,云時(shí)代的基礎(chǔ)設(shè)施就像是可以替代的“牲口”,可以隨時(shí)替換;而傳統(tǒng)的基礎(chǔ)設(shè)施則是獨(dú)一無(wú)二的“寵物”,需要細(xì)心呵護(hù),這就體現(xiàn)出了云時(shí)代不可變基礎(chǔ)設(shè)施的優(yōu)點(diǎn)。

基礎(chǔ)設(shè)施向云演進(jìn)的意義

CNCF官方大使張磊:什么是云原生?

所以,像這樣的基礎(chǔ)設(shè)施向“不可變”演進(jìn)的過(guò)程,為我們提供了兩個(gè)非常重要的優(yōu)點(diǎn)。

    1. 基礎(chǔ)設(shè)施的一致性和可靠性。同樣一個(gè)鏡像,無(wú)論是在美國(guó)打開,在中國(guó)打開,還是在印度打開都是一樣的。并且其中的?OS?環(huán)境對(duì)于應(yīng)用而言都是一致的。而對(duì)于應(yīng)用而言,它就不需要關(guān)心容器跑在哪里,這就是基礎(chǔ)設(shè)施一致性非常重要的一個(gè)特征。
    1. 這樣的鏡像本身就是自包含的,其包含了應(yīng)用運(yùn)行所需要的所有依賴,因此也可以漂移到云上的任何一個(gè)位置。

此外,云原生的基礎(chǔ)設(shè)施還提供了簡(jiǎn)單、可預(yù)測(cè)的部署和運(yùn)維能力。由于現(xiàn)在有了鏡像,應(yīng)用還是自描述的,通過(guò)鏡像運(yùn)行起來(lái)的整個(gè)容器其實(shí)可以像?Kubernetes?的?Operator?技術(shù)一樣將其做成自運(yùn)維的,所以整個(gè)應(yīng)用本身都是自包含的行為,使得其能夠遷移到云上任何一個(gè)位置。這也使得整個(gè)流程的自動(dòng)化變得非常容易。

應(yīng)用本身也可以更好地?cái)U(kuò)容,從?1?個(gè)實(shí)例變成?100?個(gè)實(shí)例,進(jìn)而變成?1?萬(wàn)個(gè)實(shí)例,這個(gè)過(guò)程對(duì)于容器化后的應(yīng)用沒有任何特殊的。最后,我們這時(shí)也能夠通過(guò)不可變的基礎(chǔ)設(shè)施來(lái)地快速周圍的管控系統(tǒng)和支撐組件。因?yàn)椋@些組件本身也是容器化的,是符合不可變基礎(chǔ)設(shè)施這樣一套理論的組件。

以上就是不可變基礎(chǔ)設(shè)施為用戶帶來(lái)的最大的優(yōu)點(diǎn)。

2019?年——云原生技術(shù)普及元年

為什么說(shuō)?2019?年很可能是一個(gè)關(guān)鍵節(jié)點(diǎn)呢?我們認(rèn)為?2019?年是云原生技術(shù)的普及元年。

首先大家可以看到,在?2019?年,阿里巴巴宣布要全面上云,而且“上云就要上云原生”。我們還可以看到,以“云”為核心的軟件研發(fā)思想,正逐步成為所有開發(fā)者的默認(rèn)選項(xiàng)。像?Kubernetes?等云原生技術(shù)正在成為技術(shù)人員的必修課,大量的工作崗位正在涌現(xiàn)出來(lái)。

這種背景下,“會(huì)?Kubernetes”已經(jīng)遠(yuǎn)遠(yuǎn)不夠了,“懂?Kubernetes”、“會(huì)云原生架構(gòu)”的重要性正日益凸顯出來(lái)。 從?2019?年開始,云原生技術(shù)將會(huì)大規(guī)模普及,這也是為什么大家都要在這個(gè)時(shí)間點(diǎn)上學(xué)習(xí)和投資云原生技術(shù)的重要原因。

CNCF官方大使張磊:什么是云原生?

阿里云和 CNCF 聯(lián)合發(fā)布了《云原生技術(shù)公開課》,希望通過(guò) 29 節(jié)課程設(shè)置讓開發(fā)者對(duì)云原生有全局的認(rèn)知。

阿里巴巴云原生微信公眾號(hào)(ID:Alicloudnative)關(guān)注微服務(wù)、Serverless、容器、Service Mesh等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢(shì)、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開發(fā)者的技術(shù)公眾號(hào)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI