云原生基礎(chǔ)架構(gòu)最佳狀態(tài),就是沒(méi)有基礎(chǔ)架構(gòu)

原標(biāo)題:云原生基礎(chǔ)架構(gòu)最佳狀態(tài),就是沒(méi)有基礎(chǔ)架構(gòu)

溫馨提示:本文3000字,估計(jì)閱讀時(shí)間12分鐘。

本篇我們討論云原生基礎(chǔ)架構(gòu),它是通向云原生時(shí)代的基石。

對(duì)于很多架構(gòu)師來(lái)說(shuō),上云之后,架構(gòu)為什么成為了云原生架構(gòu)而不是傳統(tǒng)的架構(gòu),兩者有何區(qū)別?云原生基礎(chǔ)架構(gòu)是如何演進(jìn)的?本文進(jìn)行全面梳理。

什么不是云原生基礎(chǔ)架構(gòu)?

云原生被談的很多了,導(dǎo)致概念很亂。有人把云原生基礎(chǔ)架構(gòu)和公有云、容器、容器編排系統(tǒng)等劃等號(hào),之所以出現(xiàn)這種情況,原因是云原生架構(gòu)并沒(méi)有一個(gè)統(tǒng)一的概念。

為了更好的理解云原生系統(tǒng),這里先做一些排除。

首先,云原生并不等于公有云。云原生基礎(chǔ)架構(gòu)不僅僅是在公有云上運(yùn)行基礎(chǔ)架構(gòu),這是因?yàn)閮H僅從云服務(wù)商那里租用服務(wù)器時(shí)長(zhǎng),并不會(huì)使你的基礎(chǔ)架構(gòu)云原生化,管理IaaS和運(yùn)行物理數(shù)據(jù)中心本質(zhì)上沒(méi)區(qū)別。

其次,云原生基礎(chǔ)架構(gòu)不等于在容器中運(yùn)行應(yīng)用程序。當(dāng)Netflix率先推出云原生基礎(chǔ)架構(gòu)時(shí),幾乎所有的應(yīng)用程序都是用虛擬機(jī)鏡像部署,而不是容器。打包應(yīng)用程序的方式并不意味著將擁有自治系統(tǒng)的可擴(kuò)展性和優(yōu)勢(shì)。即使應(yīng)用程序是通過(guò)持續(xù)集成和持續(xù)交付流水線自動(dòng)構(gòu)建和部署的,也并不意味著可以從補(bǔ)充API驅(qū)動(dòng)部署的基礎(chǔ)架構(gòu)中受益。

第三,云原生基礎(chǔ)架構(gòu)不意味著只運(yùn)行一個(gè)容器編排器(如Kubernetes和Mesos)就是云原生。容器編排器提供了云原生基礎(chǔ)架構(gòu)所需的許多平臺(tái)功能,但并未按預(yù)期方式使用這些功能,這意味著應(yīng)用程序?qū)⒈粍?dòng)態(tài)調(diào)度為在一組服務(wù)器上運(yùn)行。這是非常好的起步,但并不是終點(diǎn),還有很多工作要做。

第四,云原生不是關(guān)于微服務(wù)或基礎(chǔ)架構(gòu)即代碼。微服務(wù)可以在較小的不同功能上實(shí)現(xiàn)更快的開(kāi)發(fā)周期,但是單塊應(yīng)用程序可以具有相同的特性,使它們能夠通過(guò)軟件有效管理,并且還可以從云原生基礎(chǔ)架構(gòu)中獲益。

這是當(dāng)前的主要幾個(gè)認(rèn)知誤區(qū)。當(dāng)然,如果用排除法,不可能將當(dāng)前的認(rèn)知一一列舉。從熱門(mén)的詞匯看,容器、容器編排器、微服務(wù)……如果回到《理解了云原生,才能正確迎接云時(shí)代的到來(lái)》一文中,會(huì)發(fā)現(xiàn)當(dāng)時(shí)講過(guò)它們都是云原生的元素,但都不能和云原生基礎(chǔ)架構(gòu)劃等號(hào)。

什么是云原生基礎(chǔ)架構(gòu)?

要回答這個(gè)問(wèn)題,得先從基礎(chǔ)架構(gòu)說(shuō)起。最早談的基礎(chǔ)架構(gòu),是服務(wù)器,后來(lái)有了虛擬化,再到IaaS、PaaS,基礎(chǔ)架構(gòu)的演變可以說(shuō)伴隨著時(shí)代的變遷。這其中基礎(chǔ)架構(gòu)的演進(jìn)路線是越來(lái)越靈活、低成本、維護(hù)簡(jiǎn)便、易獲取。應(yīng)該說(shuō),云原生基礎(chǔ)架構(gòu)還是在按這條路線繼續(xù)演進(jìn)。

那究竟什么是云原生基礎(chǔ)架構(gòu)?

核心定義

其實(shí),底層資源如計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)沒(méi)有太大的改變,核心在于資源的調(diào)用、使用方式。如果給云原生基礎(chǔ)架構(gòu)關(guān)聯(lián)幾個(gè)關(guān)鍵詞,有三個(gè):由API控制,由軟件管理,目標(biāo)是運(yùn)行程序。這其中透露的最核心的信息,為了業(yè)務(wù),不用過(guò)多人為干預(yù)的基礎(chǔ)架構(gòu)。

之所以強(qiáng)調(diào)業(yè)務(wù)本身,是因?yàn)榛A(chǔ)架構(gòu)的不同是由上層應(yīng)用決定的。而運(yùn)行云原生應(yīng)用程序和傳統(tǒng)應(yīng)用程序所需的基礎(chǔ)架構(gòu)最大的不同在于,原本許多本屬于基礎(chǔ)架構(gòu)的職責(zé)已經(jīng)轉(zhuǎn)移到了應(yīng)用程序。

過(guò)去及現(xiàn)在的基礎(chǔ)架構(gòu)負(fù)責(zé)的是整體資源管理、動(dòng)態(tài)協(xié)調(diào)、服務(wù)發(fā)現(xiàn)等,與業(yè)務(wù)之間的關(guān)聯(lián)并不緊密。換句話說(shuō),基礎(chǔ)架構(gòu)管理與應(yīng)用管理是脫節(jié)的,未來(lái)二者的管理將是一體的,應(yīng)用程序自己會(huì)完成原本需要大量人工干預(yù)的環(huán)節(jié)。當(dāng)前所說(shuō)的“解耦”,可以適用于此。不僅僅指資源和應(yīng)用程序之間的解耦,也指資源之間的解耦、API和應(yīng)用之間的解耦。每一個(gè)組件(模塊、資源)都是單獨(dú)成為服務(wù)可被發(fā)現(xiàn)可被調(diào)用的,唯一的就是要看這些組件的定義和顆粒度的問(wèn)題。

要彌合應(yīng)用與基礎(chǔ)架構(gòu)之間的鴻溝,需要一個(gè)中間平臺(tái)層,它能夠通過(guò)API調(diào)用,能夠自治。

這里強(qiáng)調(diào)一下自治,它和自動(dòng)化不能劃等號(hào)。自動(dòng)化是人類輸入的一個(gè)完整的業(yè)務(wù)流程,一個(gè)流程只能做一件事。而自治不需要人類做出決定,它仍然使用自動(dòng)化,但只有當(dāng)系統(tǒng)不能自動(dòng)確定正確要做的事情時(shí)才應(yīng)該通知人。自治比自動(dòng)化多了智能化。

總的來(lái)看,云原生基礎(chǔ)架構(gòu)一個(gè)較為通俗的描述,應(yīng)用可以通過(guò)平臺(tái)層自動(dòng)完成資源調(diào)用、協(xié)調(diào),無(wú)需人工干預(yù),所有的資源都是可以隨時(shí)拉起,隨時(shí)釋放,同時(shí)以API的方式提供彈性、按需的計(jì)算、存儲(chǔ)能力。

如果這種解釋令人費(fèi)解,那么,我們可以這么比喻,只要符合“杯子”的概念都是“杯子”,但是制作流程和工藝、材質(zhì)有本質(zhì)的不同。而大體上,市面上有默認(rèn)的幾種模式,這也就形成了通用的標(biāo)準(zhǔn)。

所以,云原生基礎(chǔ)架構(gòu)也沒(méi)有業(yè)內(nèi)“放之四海而皆準(zhǔn)”的標(biāo)準(zhǔn),它本身也在隨著技術(shù)的演變而在演變中,只要符合“靈活、低成本、易維護(hù)”等特點(diǎn),就是云原生。我們不必拘泥于概念,而是要不斷往前看,為什么要采用“云原生”,為用戶帶來(lái)的好處是什么?

這才是核心。

能帶來(lái)什么好處?

云原生基礎(chǔ)架構(gòu)帶來(lái)最大的變革在于API機(jī)制。API機(jī)制允許用戶從標(biāo)準(zhǔn)化基礎(chǔ)架構(gòu)即代碼中獲益,并增加了隨著時(shí)間的推移版本化和更改表述的能力。

具體而言,實(shí)現(xiàn)了云原生基礎(chǔ)架構(gòu)后,技術(shù)人員部署服務(wù)器、管理服務(wù)器模板、更新服務(wù)器和定義基礎(chǔ)設(shè)施的模式都是通過(guò)代碼來(lái)完成的,并且是自動(dòng)化的,不需要通過(guò)手工安裝或克隆的方式來(lái)管理服務(wù)器資源,運(yùn)維人員和開(kāi)發(fā)人員一起以資源配置的應(yīng)用代碼為中心,不再是一臺(tái)臺(tái)機(jī)器。

值得一提的是,基礎(chǔ)設(shè)施的包含范圍也會(huì)很廣泛,不僅包括機(jī)器,還包括不同的機(jī)柜或交換機(jī)、同城多機(jī)房、異地多機(jī)房等。

換句話說(shuō),只需要調(diào)整相應(yīng)的API就能實(shí)現(xiàn)資源使用方式的調(diào)整,整個(gè)過(guò)程無(wú)需關(guān)心底層基礎(chǔ)架構(gòu)的變化。云原生基礎(chǔ)架構(gòu)的理想狀態(tài)是,它非常容易被忽略,它簡(jiǎn)單、自動(dòng)化、可自服務(wù),也就是沒(méi)有基礎(chǔ)架構(gòu)。

因此好處顯而易見(jiàn),對(duì)運(yùn)維人員是一種解放,對(duì)企業(yè)而言,能將更多精力投入業(yè)務(wù)開(kāi)發(fā)、運(yùn)營(yíng)中,公司整體運(yùn)營(yíng)效率將大幅提升。當(dāng)前,這種模式已經(jīng)被證明了可以擴(kuò)展到巨大數(shù)據(jù)的基礎(chǔ)架構(gòu)和應(yīng)用程序的。

云原生基礎(chǔ)架構(gòu)實(shí)現(xiàn)

弄清楚了云原生基礎(chǔ)架構(gòu)的本質(zhì),這部分簡(jiǎn)單介紹下云原生基礎(chǔ)架構(gòu)的實(shí)現(xiàn),主要分三部分:設(shè)計(jì)、開(kāi)發(fā)和測(cè)試。

至于具體的方法實(shí)踐倒是其次,這部分最重要的是轉(zhuǎn)變觀念。原本傳統(tǒng)的基礎(chǔ)架構(gòu)運(yùn)維人員要成為基礎(chǔ)架構(gòu)軟件工程師,只有適應(yīng)了身份的轉(zhuǎn)變,才能更好地到達(dá)云原生基礎(chǔ)架構(gòu)的彼岸。

作為一名基礎(chǔ)架構(gòu)工程師,不僅要掌握設(shè)計(jì)、管理和運(yùn)維基礎(chǔ)架構(gòu)的基本原則,還要把專業(yè)知識(shí)應(yīng)用在構(gòu)建強(qiáng)健的應(yīng)用程序中,這些應(yīng)用程序代表了將要管理和改變的基礎(chǔ)架構(gòu)。

回歸技術(shù)關(guān)鍵,最重要的一個(gè)環(huán)節(jié)就是API,設(shè)計(jì)、開(kāi)發(fā),乃至最后的應(yīng)用,API關(guān)乎成敗。因?yàn)榛A(chǔ)架構(gòu)將需要隨著時(shí)間的推移而變化或者變異,這是云原生環(huán)境的本質(zhì)。當(dāng)運(yùn)維承擔(dān)改變基礎(chǔ)架構(gòu)的任務(wù)時(shí),API的真實(shí)價(jià)值就體現(xiàn)出來(lái)了。

有關(guān)API的設(shè)計(jì),及更多技術(shù)細(xì)節(jié)這里不做太多討論,有興趣的朋友可以找相關(guān)書(shū)籍查閱,每本書(shū)的思想、方法都可能不一致,要學(xué)會(huì)兼容并蓄,取長(zhǎng)補(bǔ)短。

總結(jié)全文,云原生基礎(chǔ)架構(gòu)是基礎(chǔ)架構(gòu)的自然而可能預(yù)期的演變。實(shí)現(xiàn)云原生基礎(chǔ)架構(gòu)是比較難的,如果你認(rèn)為云原生基礎(chǔ)架構(gòu)是你可以購(gòu)買(mǎi)的產(chǎn)品,或者可以運(yùn)行服務(wù)的供應(yīng)商,顯然要失望了,就目前階段而言,只有極少數(shù)產(chǎn)品實(shí)現(xiàn)了云原生,比如今年,各大云服務(wù)商都在推的云原生數(shù)據(jù)庫(kù)算是其中的典型代表。實(shí)現(xiàn)云原生這條路還很長(zhǎng),要慢慢學(xué),慢慢深入。

本文參考資料
百度智能云官網(wǎng)關(guān)于云基礎(chǔ)產(chǎn)品描述,https://cloud.baidu.com/ 。
CNCF官網(wǎng),https://www.cncf.io/。
《云原生基礎(chǔ)架構(gòu)》,機(jī)械工業(yè)出版社,2018年9月第一版。
《持續(xù)演進(jìn)的Cloud Native 云原生架構(gòu)下微服務(wù)最佳實(shí)踐》,電子工業(yè)出版社,2018年10月第一版。

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2019-09-26
云原生基礎(chǔ)架構(gòu)最佳狀態(tài),就是沒(méi)有基礎(chǔ)架構(gòu)
容器編排器提供了云原生基礎(chǔ)架構(gòu)所需的許多平臺(tái)功能,但并未按預(yù)期方式使用這些功能,這意味著應(yīng)用程序?qū)⒈粍?dòng)態(tài)調(diào)度為在一組服務(wù)器上運(yùn)行。

長(zhǎng)按掃碼 閱讀全文