為云而生的“云原生”,為什么越來(lái)越重要?

海怪
Gartner報(bào)告曾指出,到2020年,將有50%的傳統(tǒng)老舊應(yīng)用被以云原生化的方式改造,到2022年,將有75%的全球化企業(yè)將在生產(chǎn)中使用云原生的容器化應(yīng)用。在企業(yè)上云的趨勢(shì)下,我們正在看到越來(lái)越多的企業(yè)和開(kāi)發(fā)者開(kāi)始把業(yè)務(wù)與技術(shù)向云原生演進(jìn)。

IT史上有一個(gè)經(jīng)典故事。那就是在1943年,IBM的董事長(zhǎng)老托馬斯·沃森胸有成竹地告訴人們:未來(lái)5臺(tái)計(jì)算機(jī)就可以滿足全世界的市場(chǎng)。

現(xiàn)在我們知道,老沃森的預(yù)言有一半正在實(shí)現(xiàn)。就是世界正在朝著“5臺(tái)計(jì)算機(jī)”的方向演進(jìn),當(dāng)然我們也知道,老沃森只是很認(rèn)真地認(rèn)為世界上用到計(jì)算機(jī)的地方并不太多,而不是預(yù)見(jiàn)到云計(jì)算的到來(lái)。

現(xiàn)在,云計(jì)算已經(jīng)無(wú)處不在,數(shù)字世界成為我們的棲身之所。而近年來(lái),一個(gè)名為“云原生”的概念成為云計(jì)算領(lǐng)域的熱詞。原本企業(yè)家們的對(duì)話可能是“你的公司業(yè)務(wù)上云了嗎?”,而現(xiàn)在很多企業(yè)家要改口問(wèn)下:“你的業(yè)務(wù)上了‘云原生’了嗎?”

Gartner報(bào)告曾指出,到2020年,將有50%的傳統(tǒng)老舊應(yīng)用被以云原生化的方式改造,到2022年,將有75%的全球化企業(yè)將在生產(chǎn)中使用云原生的容器化應(yīng)用。在企業(yè)上云的趨勢(shì)下,我們正在看到越來(lái)越多的企業(yè)和開(kāi)發(fā)者開(kāi)始把業(yè)務(wù)與技術(shù)向云原生演進(jìn)。

那么,什么是“云原生”?為什么“云原生”正在變得越來(lái)越重要?我們希望通過(guò)對(duì)“云原生”概念和其代表的整體技術(shù)思路做一次梳理,看下“云原生”能夠釋放怎樣的技術(shù)紅利。

云原生與云原生應(yīng)用

“云原生”,來(lái)自于Cloud Native的直譯(其實(shí)叫原生云更順口),拆開(kāi)來(lái)看,Cloud就是指其應(yīng)用軟件是在云端而非傳統(tǒng)的數(shù)據(jù)中心。Native代表應(yīng)用軟件從一開(kāi)始就是基于云環(huán)境、專門(mén)為云端特性而設(shè)計(jì),可充分利用和發(fā)揮云平臺(tái)的彈性+分布式優(yōu)勢(shì),最大化釋放云計(jì)算生產(chǎn)力。

技術(shù)永遠(yuǎn)走在概念之前,在“云原生”概念正式提出以前,在企業(yè)中就已經(jīng)有了云原生的實(shí)踐。比如,谷歌在2004年就開(kāi)始使用了容器技術(shù),2006推出的進(jìn)程容器(Process Container),就是一種具有“云原生”特征的技術(shù)實(shí)踐。

業(yè)界公認(rèn)的“云原生”(Cloud Native)概念是Pivotal公司的Matt Stine于2013年首次提出,然后被一直沿用至今并發(fā)揚(yáng)光大。

在Matt那里,他把云原生理解為一系列云計(jì)算技術(shù)和開(kāi)發(fā)管理方法的合集,包括DevOps、持續(xù)交付、微服務(wù)(MicroServices)、敏捷基礎(chǔ)設(shè)施(Agile Infrastructure)和12要素(The Twelve-Factor App)等等。

所以,云原生從一開(kāi)始就不是一項(xiàng)技術(shù)或一個(gè)產(chǎn)品,而是一種系統(tǒng)化的方法論和技術(shù)的集合。只有滿足“上云”特征,或者說(shuō)專門(mén)面向“云”設(shè)計(jì)的應(yīng)用,才可以稱之為云原生應(yīng)用。

判斷一個(gè)應(yīng)用是否為云原生應(yīng)用,就要考察它是否具有“云”的特性,包括滿足網(wǎng)絡(luò)訪問(wèn)、遠(yuǎn)端部署、可擴(kuò)展彈性伸縮、共享、按需使用自助服務(wù)、高可用、可遠(yuǎn)程監(jiān)控計(jì)費(fèi)審計(jì)、標(biāo)準(zhǔn)化交付與位置無(wú)關(guān)等等。嚴(yán)格來(lái)講,可以用Matt提出的“12要素”來(lái)作為判斷云原生應(yīng)用的準(zhǔn)則,其中最主要可以歸納為以下幾點(diǎn):

1、彈性:彈性計(jì)算正是云計(jì)算的核心特征,也是云原生技術(shù)中容器的重要特征。云原生應(yīng)用彈性,應(yīng)該包括應(yīng)用使用資源的彈性和應(yīng)用實(shí)例彈性擴(kuò)展的彈性。在單實(shí)例擴(kuò)展資源遭遇瓶頸時(shí),可以配合負(fù)載均衡機(jī)制實(shí)現(xiàn)容器實(shí)例的彈性擴(kuò)展。

2、共享:我們知道云計(jì)算可以分為IaaS、PaaS、SaaS三種類型,分別通過(guò)這三種類型實(shí)現(xiàn)資源共享、平臺(tái)共享、應(yīng)用共享。而云原生應(yīng)用則是部署在IaaS或PaaS層,通過(guò)SaaS層提供開(kāi)放式服務(wù)。

3、自治:云原生應(yīng)用的交付一定是按照標(biāo)準(zhǔn)交付,可以在云端任何支持標(biāo)準(zhǔn)的位置部署,這樣就與位置和環(huán)境無(wú)關(guān),同時(shí)構(gòu)建應(yīng)用所需要的依賴包、配置文件和后端服務(wù)等都是和應(yīng)用構(gòu)成一個(gè)整體,實(shí)現(xiàn)自治管理。使用容器的好處就是可以使得應(yīng)用以標(biāo)準(zhǔn)化鏡像的方式交付和運(yùn)行,而用微服務(wù)實(shí)現(xiàn)云原生應(yīng)用,也正是符合這一自治原則的。

4、按需服務(wù):云應(yīng)用部署在云端,客戶可以根據(jù)自己的需求,通過(guò)網(wǎng)絡(luò)訪問(wèn),自助使用服務(wù),不需要聯(lián)系云應(yīng)用管理人員。通常會(huì)有個(gè)云應(yīng)用服務(wù)目錄,每個(gè)應(yīng)用服務(wù)都有使用說(shuō)明,通過(guò)服務(wù)目錄可以找到適合自己滿足自身需求的應(yīng)用。

此外,像高可用性、敏捷、可監(jiān)控審計(jì)、可配置等特性也都是云原生應(yīng)用的重要特點(diǎn),但不再贅述。

總之,云原生正是云計(jì)算區(qū)別于傳統(tǒng)IT架構(gòu)的根本特征,云原生應(yīng)用正在成為云計(jì)算主流的服務(wù)形式。企業(yè)通過(guò)采用基于云原生的技術(shù)和管理方法而生成的應(yīng)用,就能夠持續(xù)地享受到“云計(jì)算”提供的源源不斷地高效服務(wù)。

在探討云原生應(yīng)用的價(jià)值前,我們先簡(jiǎn)單了解下云原生主要使用的技術(shù)。

持續(xù)進(jìn)化中的云原生技術(shù)

在云原生概念提出的2013年,Docker也正式發(fā)布。Docker的PaaS提供商DotCloud開(kāi)源的一個(gè)基于LXC的高級(jí)容器引擎,幫助開(kāi)發(fā)者把應(yīng)用打包到容器中并進(jìn)行發(fā)布,Docker對(duì)于開(kāi)發(fā)者來(lái)說(shuō),就如同用集裝箱貨輪來(lái)運(yùn)輸貨物一樣,效率又高、(容器如同集裝箱)部署靈活性也比虛擬機(jī)更好,一經(jīng)發(fā)布就成為極為流行的開(kāi)源容器發(fā)布工具。

第二年,K8s(kubernetes)項(xiàng)目由google發(fā)布。在容器和Docker誕生之后,開(kāi)發(fā)者自然而然需要工具來(lái)管理這些容器和容器化引擎。K8s正是用來(lái)管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,讓部署容器化的應(yīng)用簡(jiǎn)單和高效。因?yàn)镵8s也是采用了開(kāi)源形式,發(fā)布之后也大受歡迎。

2015年,由Google、紅帽、微軟等大型云計(jì)算廠商以及一些開(kāi)源公司,共同牽頭成立了CNCF云原生基金會(huì)。CNCF成立之初,就有22個(gè)創(chuàng)始會(huì)員,K8s成為CNCF托管的第一個(gè)開(kāi)源項(xiàng)目。CNCF的目標(biāo)就是致力于培育和維護(hù)一個(gè)廠商中立的開(kāi)源生態(tài)系統(tǒng),來(lái)推廣云原生技術(shù)。

在2018年,CNCF對(duì)“云原生”的定義中,給出其代表性技術(shù),包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。在容器技術(shù)的普及中,Docker實(shí)現(xiàn)了容器的可移植、輕量化、虛擬化,語(yǔ)言無(wú)關(guān),大大降低了容器技術(shù)的使用門(mén)檻,而K8s則相當(dāng)于安排容器發(fā)布的管家,解決了容器編排的全周期管理,就如同集裝箱貨輪上的船長(zhǎng)一樣。正是這一特性,K8s也成為了應(yīng)用上云的可移植性等問(wèn)題,被成為云原生技術(shù)的基石。

(K8s架構(gòu))

微服務(wù)是什么呢?與微服務(wù)相對(duì)應(yīng)的傳統(tǒng)的以系統(tǒng)為單位進(jìn)行部署的單體架構(gòu),與之相比,微服務(wù)架構(gòu)就是以獨(dú)立的組件為單位進(jìn)行部署,是用戶可以感知最小功能集。微服務(wù)具有小而專的特性,使得開(kāi)發(fā)、測(cè)試、更新效率提高,從而實(shí)現(xiàn)敏捷。從功能上看,微服務(wù)可以成為Docker的配合搭檔,使得業(yè)務(wù)流程可以按需編排,實(shí)時(shí)部署。

服務(wù)網(wǎng)格(Service Mesh)是指用以處理服務(wù)與服務(wù)之間通信的基礎(chǔ)設(shè)施層,解決了K8s在微服務(wù)的連接、管理和監(jiān)控方面的短板,為K8s提供更好的應(yīng)用和服務(wù)管理,成為微服務(wù)的輔助技術(shù)。而不可變基礎(chǔ)設(shè)施相比較于之前的可變基礎(chǔ)設(shè)施,具有更高的一致性和可靠性,以及更簡(jiǎn)單,更可預(yù)測(cè)的部署過(guò)程,成為云原生應(yīng)用的運(yùn)維的可靠基礎(chǔ)架構(gòu),而聲明式API這可以理解為是k8s的編碼方式。

這些技術(shù)成為目前云原生應(yīng)用主要利用的工具。當(dāng)然,我們也看到云原生的技術(shù)邊界和工具集合是處在不斷變動(dòng)和更新當(dāng)中的?;谶@些特性和工具的發(fā)展,我們看到云原生應(yīng)用正在成為互聯(lián)網(wǎng)巨頭紛紛布局和轉(zhuǎn)向的應(yīng)用方式,也成為眾多中小企業(yè)和開(kāi)發(fā)者選擇應(yīng)用開(kāi)發(fā)的方式。那么,云原生技術(shù)到底為何越來(lái)越重要,云原生應(yīng)用正在發(fā)揮哪些價(jià)值呢?

云原生,企業(yè)數(shù)字化升級(jí)的全新生產(chǎn)力

在回答云原生的價(jià)值之前,我們先來(lái)問(wèn)下,為什么企業(yè)的應(yīng)用開(kāi)發(fā)要原則上云,并選擇云原生技術(shù)呢?

而這就涉及到傳統(tǒng)的IT架構(gòu)方式,將開(kāi)發(fā)、IT運(yùn)營(yíng)和質(zhì)量保障分別設(shè)置,各自獨(dú)立,開(kāi)發(fā)與運(yùn)營(yíng)之間存在著信息“鴻溝”,開(kāi)發(fā)人員希望基礎(chǔ)設(shè)施更快響應(yīng),運(yùn)營(yíng)人員則要求系統(tǒng)的可靠性和安全性,而業(yè)務(wù)需求則是更快地將更多的特性發(fā)布給最終用戶使用。這種被成為“瀑布式流程”的開(kāi)發(fā)模式,一方面造成了開(kāi)發(fā)上下游的信息不對(duì)稱,一方面拉長(zhǎng)了開(kāi)發(fā)周期和調(diào)整難度。

但是隨著用戶需求的快速增加和產(chǎn)品迭代周期的不斷壓縮,原有的開(kāi)發(fā)流程不再適合現(xiàn)實(shí)的需求,這時(shí)工程師們引入了一種新的開(kāi)發(fā)模式——敏捷開(kāi)發(fā)。但是,敏捷開(kāi)發(fā)只是解決了軟件開(kāi)發(fā)的效率和版本更新的速度,還沒(méi)有和運(yùn)維打通。

出于協(xié)調(diào)開(kāi)發(fā)和運(yùn)維的“信息對(duì)稱”問(wèn)題,開(kāi)發(fā)者又推出了一套新的方法——DevOps,DevOps可以看作是開(kāi)發(fā)、技術(shù)運(yùn)營(yíng)和質(zhì)量保障三者的交集,促進(jìn)之間的溝通、協(xié)作與整合,從而提高開(kāi)發(fā)周期和效率。

最終實(shí)現(xiàn)的就是“持續(xù)交付”,讓軟件產(chǎn)品的產(chǎn)出過(guò)程在一個(gè)短周期內(nèi)完成,保證軟件可以穩(wěn)定、持續(xù)的保持在隨時(shí)可以發(fā)布的狀況。

而云原生的容器、微服務(wù)等技術(shù)正是為DevOps提供了很好的前提條件,保證IT軟件開(kāi)發(fā)實(shí)現(xiàn)DevOps開(kāi)發(fā)和持續(xù)交付的關(guān)鍵應(yīng)用。換句話說(shuō),能夠?qū)崿F(xiàn)DevOps和持續(xù)交付,已經(jīng)成為云原生技術(shù)價(jià)值不可分割的內(nèi)涵部分,這也是無(wú)論互聯(lián)網(wǎng)巨頭企業(yè),還是眾多中小應(yīng)用開(kāi)發(fā)公司和個(gè)人,越來(lái)越多選擇云原生技術(shù)和工具的原因。

基于云原生技術(shù)帶給企業(yè)的應(yīng)用開(kāi)發(fā)的技術(shù)價(jià)值,直接來(lái)說(shuō)就可以大幅降低企業(yè)IT開(kāi)發(fā)和運(yùn)維的成本,從而又提升企業(yè)業(yè)務(wù)的創(chuàng)新效率和產(chǎn)業(yè)價(jià)值。

對(duì)于外界而言,我們最直觀的感受就是節(jié)假日前在12306搶票再也沒(méi)有遇到系統(tǒng)崩潰,一些行政網(wǎng)站的體驗(yàn)也不那么差了,在購(gòu)物節(jié)的流量高峰時(shí),我們的頁(yè)面也很少出現(xiàn)延遲或者刷不出來(lái)的情況了,而那些大型的在線直播、游戲的體驗(yàn)也很流暢了。而這些有時(shí)高達(dá)數(shù)以億計(jì)的高并發(fā)流量都得益于云原生技術(shù)的快速?gòu)椥詳U(kuò)容來(lái)實(shí)現(xiàn)。

而對(duì)于企業(yè)而言,選擇云原生技術(shù),也就不僅僅是降本增效的考慮,而且還能為企業(yè)創(chuàng)造過(guò)去難以想象的業(yè)務(wù)承載量,對(duì)于企業(yè)業(yè)務(wù)規(guī)模和業(yè)務(wù)創(chuàng)新來(lái)說(shuō),云原生技術(shù)都正在成為全新的生產(chǎn)力工具。

過(guò)去企業(yè)看重的辦公樓、廠房、IT設(shè)施等有形資產(chǎn),其重要性也逐漸被這些云端數(shù)字資產(chǎn)所超越,企業(yè)正通過(guò)云原生構(gòu)建一個(gè)完整的數(shù)字孿生的新體系,而這才是云原生技術(shù)的真正價(jià)值所在。

對(duì)于整個(gè)云計(jì)算產(chǎn)業(yè)的發(fā)展本身來(lái)說(shuō),云原生區(qū)別于早先的虛擬機(jī)階段,也完成了一次全新的技術(shù)生產(chǎn)力變革,就如同近代能源革命經(jīng)歷的水、煤、電的變革導(dǎo)致能量釋放的密度和產(chǎn)業(yè)規(guī)模的數(shù)量級(jí)躍遷一樣,云原生也是從云技術(shù)的應(yīng)用特性和交付架構(gòu)上進(jìn)行了創(chuàng)新性的組合,能夠極大地釋放云計(jì)算的生產(chǎn)能力。

此外,云原生的變革從一開(kāi)始自然而然地與開(kāi)源生態(tài)走在了一起,也意味著云原生技術(shù)從一開(kāi)始就選擇了一條“飛輪進(jìn)化”式的道路,通過(guò)技術(shù)的易用性和開(kāi)放性實(shí)現(xiàn)快速增長(zhǎng)的正向循環(huán),又通過(guò)不斷壯大的應(yīng)用實(shí)例來(lái)推動(dòng)了企業(yè)業(yè)務(wù)全面上云和自身技術(shù)版圖的不斷完善。

當(dāng)然,企業(yè)業(yè)務(wù)的全面云原生化,并非一蹴而就的,企業(yè)業(yè)務(wù)的技術(shù)架構(gòu)變革仍然要迎接很多的挑戰(zhàn),比如傳統(tǒng)虛擬機(jī)模式下的運(yùn)維習(xí)慣、原有的IT資產(chǎn)切換、人員的思維和管理方式變革等。不過(guò),云原生所帶來(lái)的種種好處,對(duì)于企業(yè)的未來(lái)業(yè)務(wù)發(fā)展的優(yōu)勢(shì),已經(jīng)成為眾多企業(yè)的新共識(shí)。

可以預(yù)見(jiàn),更多企業(yè)在經(jīng)歷了這一輪云原生的變革之痛后,能夠穿越企業(yè)的原有成長(zhǎng)周期,跨越到數(shù)字經(jīng)濟(jì)的新賽道,更好地活在即將到來(lái)的全面云化的數(shù)字時(shí)代。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論