云技術(shù) 927篇原創(chuàng)內(nèi)容 公眾號(hào) 導(dǎo)讀:云原生到底是什么? 作者:阿里集團(tuán) 阿里云智能事業(yè)群 云原生應(yīng)用平臺(tái) 來(lái)源:大數(shù)據(jù)DT(ID:hzdashuju) 云原生(Cloud Native)的概念,最早是由Pivotal于2015年提出的,但是即使到了2019年上半年,國(guó)內(nèi)對(duì)其的關(guān)注依然相對(duì)有限。直到2019年9月,“云原生”才突然一躍成為行業(yè)最熱門的詞匯。 不過(guò),時(shí)至今日,業(yè)界對(duì)于云原生的定義并沒(méi)有完全統(tǒng)一,在云原生不斷演進(jìn)的過(guò)程中,衍生出了包括Pivotal、CNCF(Cloud Native Computing Foundation,云原生計(jì)算基金會(huì))、十二因子應(yīng)用等多個(gè)版本的定義。 同時(shí),還有不少人將云原生與容器或基于Kubernetes的微服務(wù)混為一談。還有云原生技術(shù)、云原生產(chǎn)品、云原生架構(gòu)、云原生理念等看起來(lái)意思相近的詞匯。那么云原生到底是什么?云原生會(huì)對(duì)我們的應(yīng)用開發(fā)產(chǎn)生什么樣的影響呢? 云原生可分解為“云”(Cloud)和“原生”(Native)兩個(gè)詞。這里還隱藏了一個(gè)詞——“計(jì)算”(Computing),因?yàn)樵圃举|(zhì)上是一種與云計(jì)算(Cloud Computing)相同的計(jì)算方式,因此通常我們?cè)谡f(shuō)云原生的時(shí)候,實(shí)際上是暗指云原生計(jì)算(Cloud Native Computing)。 基于這樣的背景,下面我們將進(jìn)一步探討云原生的概念及其影響。 01 云原生的概念 既然說(shuō)到了云原生(計(jì)算),那么哪些計(jì)算方式不是云原生(計(jì)算)呢?要回答這個(gè)問(wèn)題,同時(shí)辨析云原生的概念,我們需要先回顧云計(jì)算的發(fā)展歷史,以及與之密切相關(guān)的分布式計(jì)算的復(fù)雜性問(wèn)題。 云計(jì)算的概念最先由戴爾公司于1996年提出。2006年,亞馬遜公司率先推出了彈性計(jì)算云(Elastic Compute Cloud,EC2)服務(wù),隨后越來(lái)越多的企業(yè)開始逐步接受云計(jì)算這一概念,并將應(yīng)用逐步遷移到云端,享受這一新型計(jì)算方式帶來(lái)的技術(shù)紅利。 2009年,阿里巴巴率先開始研制具有完全自主知識(shí)產(chǎn)權(quán)的云產(chǎn)品——飛天操作系統(tǒng),由此揭開了中國(guó)云計(jì)算的序幕。 縱觀軟件架構(gòu)的演化歷史可以發(fā)現(xiàn),任何新的底層軟硬件技術(shù)出現(xiàn)后,上層應(yīng)用軟件都需要很長(zhǎng)一段時(shí)間才能夠真正“認(rèn)識(shí)”到新的軟硬件給上層應(yīng)用軟件帶來(lái)的價(jià)值,并開發(fā)新的軟件架構(gòu),以便充分利用新軟硬件的能力。 最典型的例子就是x86 CPU和服務(wù)器在面世二十多年后,以CORBA、EJB、RPC、瘦客戶端等為主的多層架構(gòu)才逐步成為應(yīng)用開發(fā)的主流架構(gòu)。 類似的還有容器技術(shù),它最早是由FreeBSD于2000年在Jails中提出的,但真正得到大規(guī)模應(yīng)用是在2013年Docker興起之后,而應(yīng)用層的代表則是幾年之后基于容器的微服務(wù)架構(gòu)。 對(duì)于云計(jì)算這一新基礎(chǔ)設(shè)施來(lái)說(shuō),也是如此。在2015年之前,對(duì)于大多數(shù)應(yīng)用來(lái)說(shuō),云端只是一個(gè)用于計(jì)算的場(chǎng)所,開發(fā)人員所要做的就是將原來(lái)在私有數(shù)據(jù)中心或IDC中的應(yīng)用,遷移到云端。在遷移的過(guò)程中,應(yīng)用無(wú)須重新編寫,只需要重新部署,因?yàn)樵破脚_(tái)提供的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等,完全兼容應(yīng)用遷移之前的計(jì)算環(huán)境。
遷移之后,應(yīng)用的整體成本(Total Cost of Ownership,TCO)因?yàn)椴捎昧恕鞍戳扛顿M(fèi)”的模式而大幅下降,同時(shí),企業(yè)的IT支出從CapEx (Capital Expenditure,資本性支出)模式轉(zhuǎn)變?yōu)镺pEx(Operating Expense,管理支出)模式,整個(gè)IT支出變得更可控。 如果對(duì)遷移過(guò)程進(jìn)行技術(shù)分析,就會(huì)發(fā)現(xiàn)大部分應(yīng)用使用的技術(shù)或者產(chǎn)品都在進(jìn)行“一對(duì)一”的替換,只有極少量應(yīng)用會(huì)基于OSS(對(duì)象存儲(chǔ)服務(wù))、MaxCompute(大數(shù)據(jù)計(jì)算服務(wù))等云服務(wù)進(jìn)行部分重構(gòu)。 OSS能夠幫助解決分布式狀態(tài)的存儲(chǔ)問(wèn)題,而MaxCompute能夠解決數(shù)據(jù)倉(cāng)庫(kù)的快速搭建和成本問(wèn)題。但由于沒(méi)有或者只進(jìn)行了少量重構(gòu),因此應(yīng)用的技術(shù)棧本身幾乎沒(méi)有發(fā)生變化,也就是說(shuō),軟件的架構(gòu)沒(méi)有發(fā)生變化,只是軟件運(yùn)行的平臺(tái)和運(yùn)維的技術(shù)體系發(fā)生了變化,即只有平臺(tái)層面的變化。 而軟件在分布式場(chǎng)景下需要解決的問(wèn)題,包括穩(wěn)定性、組件或服務(wù)之間的數(shù)據(jù)同步、整體的高可用或容災(zāi)、CI/CD過(guò)程的自動(dòng)化、資源利用率不高、端到端鏈路跟蹤等,仍然需要應(yīng)用自行解決。這些問(wèn)題并不會(huì)因?yàn)閼?yīng)用遷移到了云平臺(tái)就從根本上得到了解決。 當(dāng)然,各云平臺(tái)為了幫助應(yīng)用解決上述分布式復(fù)雜性問(wèn)題,不斷推出各類云服務(wù),但是由于應(yīng)用架構(gòu)本身并沒(méi)有發(fā)生變化,因此這些云服務(wù)并不能幫助應(yīng)用解決整體問(wèn)題,只能從局部提升應(yīng)用的效率。 面對(duì)大量的業(yè)務(wù)需求和場(chǎng)景迭代,很多云平臺(tái)都提供非常專業(yè)的垂直領(lǐng)域服務(wù),這些服務(wù)比企業(yè)基于開源自行搭建的系統(tǒng)具備更高的SLA(Service Level Agreement,服務(wù)等級(jí)協(xié)議)。 比如,在數(shù)據(jù)持久性方面,亞馬遜AWS的數(shù)據(jù)持久性可以達(dá)到99.9…%(11個(gè)9),阿里云OSS的數(shù)據(jù)持久性甚至達(dá)到了99.9…%(12個(gè)9);在跨可用區(qū)的高可用方面,阿里云RocketMQ的高可用達(dá)到了99.95%,即使整個(gè)機(jī)房不可用也能繼續(xù)對(duì)外提供消息服務(wù)。
可見,應(yīng)用遷移到云上并不代表從此以后就高枕無(wú)憂了,如果應(yīng)用本身沒(méi)有基于“新”的云服務(wù)進(jìn)行重構(gòu),而是繼續(xù)采用“老”的架構(gòu),那么即使業(yè)務(wù)運(yùn)行沒(méi)有問(wèn)題,應(yīng)用也不能充分利用“新”的云運(yùn)行環(huán)境的能力。 因?yàn)檫@些架構(gòu)是為了“老”的分布式運(yùn)行環(huán)境而設(shè)計(jì)的,不是“云原生的”,所以需要對(duì)這些架構(gòu)以及圍繞這些架構(gòu)建立的技術(shù)棧、工具鏈、交付體系進(jìn)行升級(jí),依托于云技術(shù)棧將其重新部署、部分重構(gòu)甚至全部重寫,才能將應(yīng)用變成“云原生的”,從而保證能夠充分利用云計(jì)算的能力。 為了讓應(yīng)用能夠更好地使用云的PaaS平臺(tái)能力開發(fā)SaaS(Software as a Service,軟件即服務(wù)),Heroku于2011年提出了十二因子應(yīng)用的概念。十二因子應(yīng)用適用于任何編程語(yǔ)言,通常被認(rèn)為是最早的云原生應(yīng)用的技術(shù)特征,詳情請(qǐng)參考: http:///zh_cn/ 之后,Pivotal于2015年明確地提出了云原生的概念,指出云原生是一種可以充分利用云計(jì)算優(yōu)勢(shì)構(gòu)建和運(yùn)行應(yīng)用的方式。 在經(jīng)過(guò)CNCF的修改后,最新版云原生的定義為:
上面三個(gè)主流的定義,分別從頂層架構(gòu)原則、計(jì)算模型和代表技術(shù)的角度,對(duì)云原生進(jìn)行了描述。這些定義的共同點(diǎn)是它們都將云原生看作一種新的計(jì)算方式,讓應(yīng)用能夠充分使用云的計(jì)算優(yōu)勢(shì)。 進(jìn)一步分析這些定義所體現(xiàn)出的技術(shù)觀點(diǎn),我們可以達(dá)成這樣一個(gè)共識(shí):只有結(jié)合云原生所提供的云服務(wù),改造應(yīng)用的架構(gòu),才能夠更好地使用云原生技術(shù),更好地構(gòu)建彈性、穩(wěn)定、松耦合的分布式應(yīng)用,并解決分布式復(fù)雜性問(wèn)題。 此外,對(duì)架構(gòu)的改造還意味著相關(guān)的開發(fā)模式、交付方式、運(yùn)維方式等都要隨之改變,比如,采用微服務(wù)架構(gòu)重寫應(yīng)用,用聲明式API和自動(dòng)化工具升級(jí)運(yùn)維方式,等等。簡(jiǎn)單來(lái)說(shuō),云原生使得整個(gè)軟件的生產(chǎn)流水線都發(fā)生了巨大的變化,而具體的變化程度又取決于企業(yè)對(duì)云原生的使用情況。 實(shí)際上,云原生的范圍還不止于此。要正確實(shí)施云原生這一新計(jì)算模式,還需要企業(yè)的IT決策者、架構(gòu)師、開發(fā)人員與運(yùn)維人員正確理解和應(yīng)用云原生的理念,利用合適的云原生技術(shù)及產(chǎn)品。有太多的反例可以證明,僅靠單邊的技術(shù)升級(jí)是很難讓云原生升級(jí)產(chǎn)生價(jià)值的。 云原生相關(guān)概念之間的關(guān)系如圖1-1所示。 ▲圖1-1 云原生相關(guān)概念之間的關(guān)系 在圖1-1中,現(xiàn)代化應(yīng)用在不少場(chǎng)合與云原生應(yīng)用的概念是等同的,因?yàn)樗鼈兊暮芏嗵卣鞫际窍嗨频模热?,都采用了容器技術(shù)打包和交付,都具備很強(qiáng)的彈性能力等。這兩個(gè)概念的細(xì)微差別在于:現(xiàn)代化應(yīng)用可以與云相關(guān),也可以與云不相關(guān);而云原生應(yīng)用通常都與云相關(guān)。 所以云原生(或者說(shuō)云原生計(jì)算)應(yīng)當(dāng)包括云原生技術(shù)、云原生產(chǎn)品、云原生架構(gòu)以及構(gòu)建現(xiàn)代化應(yīng)用的開發(fā)理念,如DevOps,具體說(shuō)明如下。
02 云原生是云計(jì)算的趨勢(shì) 如今,云計(jì)算已經(jīng)成為企業(yè)數(shù)字化轉(zhuǎn)型的新的基礎(chǔ)設(shè)施,同時(shí)也是國(guó)家“新基建”的核心環(huán)節(jié),是物聯(lián)網(wǎng)和人工智能的賦能平臺(tái)。從市場(chǎng)發(fā)展趨勢(shì)看,云計(jì)算將是未來(lái)IT的主流。 根據(jù)Gartner的數(shù)據(jù),未來(lái)云計(jì)算市場(chǎng)規(guī)模仍將保持20%以上的增長(zhǎng)速度,到2025年,預(yù)計(jì)將有80%(2020年僅為10%)的企業(yè)會(huì)關(guān)掉自己的傳統(tǒng)數(shù)據(jù)中心,轉(zhuǎn)向云平臺(tái)。 2019年,我國(guó)云市場(chǎng)總規(guī)模達(dá)到了1334億元,同比增長(zhǎng)38%,其中,公有云市場(chǎng)規(guī)模達(dá)到689億元,私有云市場(chǎng)規(guī)模達(dá)到645億元。在2020年年初,我國(guó)各行業(yè)對(duì)遠(yuǎn)程辦公、遠(yuǎn)程教育等的需求持續(xù)增長(zhǎng),預(yù)計(jì)到2022年,我國(guó)云市場(chǎng)總規(guī)模將突破3000億元。 此外,根據(jù)工業(yè)和信息化部提出的企業(yè)上云工作目標(biāo),2020年云計(jì)算將在各個(gè)行業(yè)廣泛普及,全國(guó)上云企業(yè)將新增100萬(wàn)家。 從技術(shù)發(fā)展趨勢(shì)看,更多企業(yè)將會(huì)廣泛應(yīng)用云原生技術(shù)。在國(guó)家政策和企業(yè)需求的雙重驅(qū)動(dòng)下,更多企業(yè)會(huì)選擇上云,中國(guó)云計(jì)算的強(qiáng)勢(shì)增長(zhǎng)是必然趨勢(shì),這也注定了更多企業(yè)將會(huì)關(guān)注、應(yīng)用、采納能夠充分利用云計(jì)算能力的云原生技術(shù)和產(chǎn)品。 據(jù)Gartner預(yù)測(cè),到2023年,全球70%的企業(yè)都將在生產(chǎn)中運(yùn)行三個(gè)或更多的容器化應(yīng)用。 據(jù)中國(guó)信息通信研究院(簡(jiǎn)稱信通院)統(tǒng)計(jì),2019年43.9%的被訪企業(yè)表示已使用容器技術(shù)部署業(yè)務(wù)應(yīng)用,另外計(jì)劃使用容器技術(shù)部署業(yè)務(wù)應(yīng)用的企業(yè)占比為40.8%;28.9%的企業(yè)已使用微服務(wù)架構(gòu)進(jìn)行應(yīng)用系統(tǒng)的開發(fā),還有46.8%的企業(yè)計(jì)劃使用微服務(wù)架構(gòu)。 從軟件開發(fā)角度看,云原生技術(shù)為企業(yè)帶來(lái)了更快進(jìn)行業(yè)務(wù)創(chuàng)新的價(jià)值。越來(lái)越多的企業(yè)逐漸意識(shí)到了云服務(wù)的專業(yè)性和高SLA,這些企業(yè)在數(shù)字化轉(zhuǎn)型的過(guò)程中將IaaS和PaaS的通用技術(shù)復(fù)雜性委托給了云平臺(tái),從而能夠更好地專注于自身業(yè)務(wù)邏輯的創(chuàng)新。 利用云原生技術(shù)重塑企業(yè)的軟件生產(chǎn)流水線,可以加大業(yè)務(wù)組件的復(fù)用程度,將軟件交付周期從周、天降低到小時(shí)甚至分鐘級(jí)別,從而提升業(yè)務(wù)的市場(chǎng)嗅覺(jué)靈敏度,增強(qiáng)市場(chǎng)反應(yīng)能力。 從應(yīng)用技術(shù)棧角度看,越來(lái)越多的企業(yè)發(fā)現(xiàn)傳統(tǒng)的應(yīng)用已經(jīng)無(wú)法滿足數(shù)字化業(yè)務(wù)的需要,所以會(huì)對(duì)應(yīng)用進(jìn)行徹底升級(jí),會(huì)更多地采用云原生技術(shù)和云原生架構(gòu)作為構(gòu)建現(xiàn)代化應(yīng)用的核心框架,從而幫助企業(yè)打造具備彈性、韌性、可觀測(cè)性、API驅(qū)動(dòng)、多語(yǔ)言支持、高度自動(dòng)化、可持續(xù)交付等特性的現(xiàn)代化應(yīng)用軟件。 03 云原生是云計(jì)算的再升級(jí) 從云原生的定位可以看到,云原生包含大量新的PaaS層技術(shù)和新的開發(fā)理念,是釋放云計(jì)算價(jià)值的最短路徑,也推動(dòng)著云計(jì)算的再升級(jí)。 整個(gè)云原生技術(shù)棧都是基于開源、開放的技術(shù)標(biāo)準(zhǔn)。CNCF也在致力于云原生技術(shù)的標(biāo)準(zhǔn)化,為云原生技術(shù)和產(chǎn)品的用戶提供使用云服務(wù)的標(biāo)準(zhǔn)界面,同時(shí)避免了廠商鎖定。 進(jìn)一步看基于云原生技術(shù)和云原生架構(gòu)重構(gòu)或重寫的應(yīng)用,比如,基于服務(wù)網(wǎng)格或無(wú)服務(wù)器技術(shù)(Serverless)的應(yīng)用,它們天然具備水平擴(kuò)展的能力,可隨時(shí)應(yīng)對(duì)互聯(lián)網(wǎng)時(shí)代高速增長(zhǎng)的業(yè)務(wù)規(guī)模,同時(shí)還內(nèi)置了高可用能力,所以應(yīng)用無(wú)須關(guān)注分布式環(huán)境下的高可用方案。
所以,云原生不僅是對(duì)使用云的應(yīng)用架構(gòu)的再升級(jí),也是對(duì)云平臺(tái)的技術(shù)和云服務(wù)的再升級(jí)。從構(gòu)建現(xiàn)代化應(yīng)用的角度,我們可以發(fā)現(xiàn),云原生對(duì)應(yīng)用的重構(gòu)體現(xiàn)在應(yīng)用開發(fā)的整個(gè)生命周期中。 關(guān)于作者:阿里云智能 基礎(chǔ)產(chǎn)品事業(yè)部 云原生應(yīng)用平臺(tái):致力于為企業(yè)打造數(shù)字創(chuàng)新的最短路徑。歷經(jīng)15年的探索,阿里云是國(guó)內(nèi)最早實(shí)踐云原生的云服務(wù)商,擁有最豐富的云原生產(chǎn)品家族和Z全面的開源貢獻(xiàn),打造云原生裸金屬服務(wù)器、云原生數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖、容器、微服務(wù)、DevOps、Serverless等超過(guò)100款創(chuàng)新產(chǎn)品;構(gòu)建完整的云原生技術(shù)與服務(wù)生態(tài),覆蓋新零售、政務(wù)、醫(yī)療、交通、教育等各個(gè)領(lǐng)域,推動(dòng)企業(yè)快速實(shí)現(xiàn)數(shù)字化創(chuàng)新與業(yè)務(wù)增長(zhǎng)。 本文摘編自《阿里云云原生架構(gòu)實(shí)踐》, 本文摘編自《阿里云云原生架構(gòu)實(shí)踐》,經(jīng)出版方授權(quán)發(fā)布。 |
|