云原生五大趨勢(shì)預(yù)測(cè),K8s安卓化位列其一

作者 | 李響、張磊 Kubernetes 本身并不直接產(chǎn)生商業(yè)價(jià)值,你不會(huì)花錢(qián)去購(gòu)買(mǎi) Kubernetes 。這就跟安卓一樣,你不會(huì)直接掏錢(qián)去買(mǎi)一個(gè)安卓系統(tǒng)。Kubernetes 真正產(chǎn)生價(jià)值的地方也在于它的上層應(yīng)用生態(tài)。

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供咸寧企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站制作、做網(wǎng)站、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為咸寧眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

“未來(lái)的軟件一定是生長(zhǎng)于云上的”**,這是云原生理念的最核心假設(shè)。而所謂“云原生”,實(shí)際上就是在定義一條能夠讓?xiě)?yīng)用大程度利用云的能力、發(fā)揮云的價(jià)值的最佳路徑。因此,云原生其實(shí)是一套指導(dǎo)軟件架構(gòu)設(shè)計(jì)的思想。按照這樣的思想而設(shè)計(jì)出來(lái)的軟件:首先,天然就“生在云上,長(zhǎng)在云上”;其次,能夠大化地發(fā)揮云的能力,使得我們開(kāi)發(fā)的軟件和“云”能夠天然地集成在一起,發(fā)揮出“云”的大價(jià)值。 云原生的概念大家并不陌生,很多企業(yè)也已經(jīng)基于云原生的架構(gòu)和技術(shù)理念落地相關(guān)實(shí)踐。那么,這么多企業(yè)和開(kāi)發(fā)者熱衷和推崇的云原生,未來(lái)的發(fā)展趨勢(shì)如何?如何才能順應(yīng)云原生的主流方向去發(fā)展?

我們邀請(qǐng)到阿里云資深技術(shù)專(zhuān)家、CNCF 技術(shù)監(jiān)督委員會(huì)代表,etcd 作者**李響**和阿里云高級(jí)技術(shù)專(zhuān)家、CNCF 應(yīng)用交付領(lǐng)域 co-chair **張磊**分享云原生的理念、發(fā)展以及未來(lái)趨勢(shì),為大家打開(kāi)新的思路和眼界。 以下內(nèi)容共享給大家。 # Kubernetes 項(xiàng)目的安卓化 云原生里有一個(gè)非常關(guān)鍵的項(xiàng)目,就是 Kubernetes。Kubernetes 的發(fā)展非常迅速,它是整個(gè)云原生體系發(fā)展的基石。今天我們來(lái)觀(guān)察 Kubernetes 項(xiàng)目的發(fā)展特點(diǎn),

首先,Kubernetes 無(wú)處不在,無(wú)論是在云上,還是用戶(hù)自建的數(shù)據(jù)中心里,甚至一些我們想象不到的場(chǎng)景里,都有 Kubernetes 的存在。

第二,所有云原生的用戶(hù)使用 Kubernetes 的目的,都是為了交付和管理應(yīng)用。當(dāng)然這個(gè)應(yīng)用是一個(gè)泛化的概念,可以是一個(gè)網(wǎng)站,也可以是淘寶這樣非常龐大的電商主站,或者是 AI 作業(yè)、計(jì)算任務(wù)、函數(shù)、甚至虛擬機(jī)等,這些都是用戶(hù)可以使用 Kubernetes 去交付和管理的應(yīng)用類(lèi)型。

第三,今天我們來(lái)看 Kubernetes 所處的位置,實(shí)際上是承上啟下。Kubernetes 對(duì)上暴露基礎(chǔ)設(shè)施能力的格式化數(shù)據(jù)抽象,比如 Service、Ingress、Pod、Deployment,這些都是 Kubernetes 本身原生 API 給用戶(hù)暴露出來(lái)的能力。而對(duì)下,Kubernetes 提供的是基礎(chǔ)設(shè)施能力接入的標(biāo)準(zhǔn)接口,比如說(shuō) CNI、CSI、DevicePlugin、CRD,讓云能夠作為一個(gè)能力提供商,以一個(gè)標(biāo)準(zhǔn)化的方式把能力接入到 Kubernetes 的體系中。 這一點(diǎn)其實(shí)跟安卓非常類(lèi)似,安卓雖然裝在你的設(shè)備里,但是它能夠讓你的硬件、手機(jī)、電視、汽車(chē)等都能接入到一個(gè)平臺(tái)里。對(duì)上則暴露統(tǒng)一的一套應(yīng)用管理接口,讓你能夠基于安卓系統(tǒng)來(lái)編寫(xiě)應(yīng)用,去訪(fǎng)問(wèn)或者享受到這些基礎(chǔ)設(shè)施能力,這也是 Kubernetes 和安卓的相似之處。 最后, Kubernetes 本身并不直接產(chǎn)生商業(yè)價(jià)值,你不會(huì)花錢(qián)去購(gòu)買(mǎi) Kubernetes。

這就跟安卓一樣,你不會(huì)直接掏錢(qián)去買(mǎi)一個(gè)安卓系統(tǒng)。Kubernetes 真正產(chǎn)生價(jià)值的地方也在于它的上層應(yīng)用生態(tài)。對(duì)安卓來(lái)說(shuō),它今天已經(jīng)具備了一個(gè)龐大的移動(dòng)端或設(shè)備端應(yīng)用的開(kāi)發(fā)生態(tài),而對(duì)于 Kubernetes 來(lái)說(shuō)也是類(lèi)似的,只不過(guò)現(xiàn)在還在于比較早的階段。但我們已經(jīng)能夠看到,今天在 Kubernetes 上構(gòu)建的商業(yè)層很多是垂直解決方案,是面向用戶(hù)、面向應(yīng)用這一側(cè)真正能夠產(chǎn)生商業(yè)價(jià)值的東西,而不是 Kubernetes 本身這一層。這就是為什么我說(shuō) Kubernetes 發(fā)展跟安卓很像,當(dāng)然這可能也是谷歌比較擅長(zhǎng)的一個(gè)“打法”:全力地去免費(fèi)推廣一個(gè)“操作系統(tǒng)”,真正獲取商業(yè)價(jià)值的方式則是是去“收割”操作系統(tǒng)上層的生態(tài)價(jià)值而不是操作系統(tǒng)本身。

基于這些現(xiàn)象,我們將 Kubernetes 的發(fā)展趨勢(shì)概括為以下幾點(diǎn): ## 1. 云的價(jià)值回歸到應(yīng)用本身 用戶(hù)使用 Kubernetes 的本質(zhì)目的是去交付和管理應(yīng)用。從這個(gè)現(xiàn)象來(lái)看,如果 Kubernetes 發(fā)展下去,那么世界上所有的數(shù)據(jù)中心和基礎(chǔ)設(shè)施上面都會(huì)有一層 Kubernetes ,自然而然用戶(hù)就會(huì)開(kāi)始以 Kubernetes 為基礎(chǔ)去編寫(xiě)和交付以及管理其應(yīng)用,就跟現(xiàn)在我們會(huì)以安卓這樣一個(gè)操作系統(tǒng)為基礎(chǔ)去編寫(xiě)移動(dòng)應(yīng)用是類(lèi)似的。 這就會(huì)導(dǎo)致云上的大多數(shù)軟件和云產(chǎn)品都是第三方開(kāi)發(fā)的。第三方開(kāi)發(fā)是指所有人都可以面向一個(gè)標(biāo)準(zhǔn)界面去開(kāi)發(fā)和交付軟件,這個(gè)軟件本身既可以是自己的軟件,也可以是一個(gè)云產(chǎn)品。

未來(lái),越來(lái)越多的第三方開(kāi)源項(xiàng)目,如 MongoDB、Elasticsearch 等,都會(huì)以云原生理念去開(kāi)發(fā)、部署和運(yùn)維,最后直接演進(jìn)成為一種云服務(wù)。 ## 2. 云端“豌豆莢”的出現(xiàn) 有了 Kubernetes 這樣一個(gè)標(biāo)準(zhǔn),開(kāi)發(fā)者面對(duì)的就是一個(gè)類(lèi)似于操作系統(tǒng)的界面。由于有更多的應(yīng)用是面向 Kubernetes 誕生的,或者說(shuō)面向 Kubernetes 去交付的,那么就需要有一個(gè)類(lèi)似于“豌豆莢”的產(chǎn)品,來(lái)作為云上的應(yīng)用商店或者云上的應(yīng)用分發(fā)系統(tǒng),它的關(guān)鍵能力在于把應(yīng)用無(wú)差別地交付給全世界任何一個(gè) Kubernetes 上面,就跟用豌豆莢把任何一個(gè)安卓應(yīng)用交付在任何一個(gè)安卓設(shè)備上的原理是一樣的。 其實(shí)今天谷歌已經(jīng)在做這類(lèi)產(chǎn)品的嘗試了,比如 Anthos (面向混合云的應(yīng)用交付平臺(tái)),雖然是一款混合云產(chǎn)品,但它本質(zhì)上是把谷歌云的服務(wù),比如數(shù)據(jù)庫(kù)服務(wù)、大數(shù)據(jù)服務(wù),去直接交付于任何一個(gè)基于 Kubernetes 的混合云環(huán)境里面去,其實(shí)就相當(dāng)于一款云端的“豌豆莢”。

3. 基于 Kubernetes 可擴(kuò)展能力的開(kāi)放應(yīng)用平臺(tái)會(huì)取代 PaaS 成為主流 由于未來(lái)整個(gè)應(yīng)用生態(tài)會(huì)面向 Kubernetes 去構(gòu)建,那么基于 Kubernetes 可擴(kuò)展能力的開(kāi)放應(yīng)用平臺(tái)會(huì)逐漸取代傳統(tǒng) PaaS 而成為主流?;?Kubernetes 可擴(kuò)展能力去構(gòu)建一個(gè)開(kāi)放的應(yīng)用平臺(tái),其能力是可插拔的,能夠去交付和管理的應(yīng)用類(lèi)型是多樣化的,這才更符合 Kubernetes 所構(gòu)建的趨勢(shì)和生態(tài),所以一些真正高可擴(kuò)展的平臺(tái)層項(xiàng)目會(huì)大量產(chǎn)生。 另外,今天我們看到的 Kubernetes ,跟“理想”中的云原生應(yīng)用生態(tài)之間其實(shí)還有很多路要走,這也是阿里云原生團(tuán)隊(duì)一直在做的事情,基于 Kubernetes 在應(yīng)用層構(gòu)建更豐富的應(yīng)用生態(tài),幫助用戶(hù)實(shí)現(xiàn)多樣化的需求。

應(yīng)用與能力的“ Operator 化” 縱觀(guān)云原生時(shí)代應(yīng)用或者云的能力的發(fā)展方向,你會(huì)發(fā)現(xiàn)另一個(gè)趨勢(shì),就是 Operator 化。Operator 是 Kubernetes 的一個(gè)概念,是指 Kubernetes 交付的一個(gè)實(shí)體,這個(gè)實(shí)體有一個(gè)基礎(chǔ)模型存在,這個(gè)模型分為兩部分:一部分是 Kubernetes 的 API 對(duì)象(CRD),另一部分是一個(gè)控制器(Controller),如下圖所示: 這里要區(qū)分兩個(gè)概念,自定義和自動(dòng)化。很多人會(huì)說(shuō) Operator 可以幫助我做自定義,因?yàn)楹芏嗳硕紩?huì)覺(jué)得 Kubernetes 內(nèi)置的能力是不夠用的,所以用戶(hù)會(huì)利用它的可擴(kuò)展能力去寫(xiě)一個(gè) Controller ,從而實(shí)現(xiàn)跟多自定義的需求。但自定義只是 Operator 中很小的一部分價(jià)值,我們今天對(duì)應(yīng)用和能力做 Operator 化的核心動(dòng)力在于其實(shí)是為了實(shí)現(xiàn)自動(dòng)化,而且只有自動(dòng)化了,我們才能講云原生。 這是因?yàn)?,云原生帶?lái)的大的紅利是可以讓我們大限度、高效地使用云的能力,二這種高效、大化的方式一定沒(méi)辦法通過(guò)人工來(lái)實(shí)現(xiàn)的。換句話(huà)說(shuō),只有通過(guò)自動(dòng)化的方式去開(kāi)發(fā)、運(yùn)維應(yīng)用以及與云進(jìn)行交互,才能真正把云原生的價(jià)值發(fā)揮出來(lái)。 而如果要通過(guò)自動(dòng)化的方式跟云進(jìn)行交互,那么在云原生生態(tài)里,必須有一個(gè)類(lèi)似于Controller 或者 Operator 這樣的插件的存在。今天阿里巴巴在云上交付的 PolarDB、OceanBase 等,其實(shí)都有一個(gè)跟 Kubernetes 銜接的 Controller 的存在。通過(guò) Controller 與基礎(chǔ)設(shè)施、云進(jìn)行交互,把云的能力輸入到產(chǎn)品里面去。

在未來(lái),會(huì)有大量的云上的應(yīng)用和對(duì)應(yīng)的運(yùn)維能力、管理能力都會(huì)以 Kubernetes Operator 的方式交付。在這個(gè)背景下, Kubernetes 真正扮演的一個(gè)角色就是能力的接入層和標(biāo)準(zhǔn)界面。如下圖所示,這是一個(gè)非常典型的用戶(hù)側(cè) Kubernetes 集群的樣子。 一個(gè)用戶(hù)的 Kubernetes 只有紅框里面這部分是 Kubernetes 原生提供的 API ,而大量的能力都是以插件化或者說(shuō) Operator 化的方式存在。就比如上圖右邊所有這些自定義的資源和能力全部來(lái)自于第三方開(kāi)發(fā),通過(guò) Operator 這樣一個(gè)標(biāo)準(zhǔn)的形態(tài)開(kāi)發(fā)出來(lái)的能力來(lái)服務(wù)最終用戶(hù)的。這就意味著在未來(lái)云原生的生態(tài)里面,基于 CRD Operator 的而非 Kubernetes 原生 API 的應(yīng)用和能力會(huì)占到絕大多數(shù)。

隨著這個(gè)趨勢(shì)的不斷演進(jìn),越來(lái)越多的軟件和能力通過(guò) Kubernetes Operator 去描述和定義,云產(chǎn)品也會(huì)開(kāi)始默認(rèn)以 Kubernetes 為底座,基于 Operator 進(jìn)行交付。 正是因?yàn)樵絹?lái)越多的 Operator 的出現(xiàn),這里就會(huì)逐步需要一個(gè)中心化的方式去解決 Operator 潛在的穩(wěn)定性、可發(fā)現(xiàn)性和性能問(wèn)題,也就是說(shuō)在未來(lái)很可能會(huì)有一個(gè)橫向的 Operator 管理平臺(tái)出現(xiàn),對(duì)所有基于 Kubernetes Operator 開(kāi)發(fā)的應(yīng)用和能力進(jìn)行統(tǒng)一管理,從而更好、更專(zhuān)業(yè)地服務(wù)用戶(hù)。

此外,由于未來(lái)每一個(gè)能力、每一個(gè)應(yīng)用都需要去編寫(xiě) Operator ,所以說(shuō)對(duì)開(kāi)發(fā)者友好的 Operator 編寫(xiě)框架也是未來(lái)一個(gè)很重要的趨勢(shì)。這個(gè)編寫(xiě)框架可以支持不同語(yǔ)言,如 Go、Java、C、Rust 語(yǔ)言等,并且編寫(xiě)過(guò)程是專(zhuān)注于運(yùn)維邏輯和應(yīng)用的管理、能力的管理,而不是專(zhuān)注在 Kubernetes 的語(yǔ)義和細(xì)節(jié)上面。

最后,隨著云原生生態(tài)的普及,云服務(wù)也將實(shí)現(xiàn) Operator 化,并且面向多集群/混合云場(chǎng)景出現(xiàn)面向應(yīng)用層的云服務(wù)標(biāo)準(zhǔn)化定義與抽象,并在云原生領(lǐng)域逐漸取代 IaC 項(xiàng)目(比如 Terraform 等)成為云服管理與消費(fèi)的主流方式。綿陽(yáng)服務(wù)器托管

應(yīng)用中間件能力進(jìn)一步下沉 隨著云原生以及整個(gè)生態(tài)的發(fā)展,我們看到應(yīng)用中間件領(lǐng)域也隨之發(fā)生了很多改變。從原先最開(kāi)始的中心化 ESB ,到后來(lái)的胖客戶(hù)端,逐步演化到今天我們經(jīng)常提到的 Service Mesh 這樣一種 Sidecar 化的方式。綿陽(yáng)服務(wù)器托管 其實(shí)今天你會(huì)發(fā)現(xiàn),無(wú)論是云的能力還是基礎(chǔ)設(shè)施的能力,都在不斷豐富,很多原先只能通過(guò)中間件做的事情,現(xiàn)在可以很容易通過(guò)云服務(wù)來(lái)實(shí)現(xiàn)。應(yīng)用中間件不再是能力的提供方,而是能力接入的標(biāo)準(zhǔn)界面,并且這個(gè)標(biāo)準(zhǔn)界面的構(gòu)建不再基于胖客戶(hù)端,而是通過(guò)非常普通的 HTTP 協(xié)議、 gRPC 協(xié)議去做,然后通過(guò) Sidecar 方式把整個(gè)服務(wù)的接入層跟應(yīng)用業(yè)務(wù)邏輯做一個(gè)解耦,這其實(shí)就是 Service Mesh 的思想。 目前 Service Mesh 只做了傳統(tǒng)中間件里面的流量治理、路由策略、訪(fǎng)問(wèn)控制這一層的事情。

而實(shí)際上, Sidecar 這個(gè)模型可以應(yīng)用到所有中間件的場(chǎng)景里,實(shí)現(xiàn)中間件邏輯跟應(yīng)用業(yè)務(wù)邏輯完全解耦,讓?xiě)?yīng)用中間件能力“下沉”,變成 Kubernetes 能力的一部分。這樣應(yīng)用本身會(huì)更加專(zhuān)一化,更多的關(guān)注業(yè)務(wù)邏輯本身。

伴隨著這個(gè)趨勢(shì),在 Kubernetes 這一層還會(huì)有另外一個(gè)趨勢(shì)出現(xiàn),就是 Sidecar 的自動(dòng)化的、規(guī)模化的運(yùn)維能力會(huì)成為一個(gè)必選項(xiàng)。因?yàn)?Sidecar 的數(shù)量會(huì)極其龐大,應(yīng)用中間件很可能會(huì)演化成 Sidecar 集群,那么這些 Sidecar 的管理和規(guī)?;倪\(yùn)維能力,會(huì)是集群或者云產(chǎn)品的一個(gè)必備選項(xiàng)。

下一代 DevOps 模型與體系 隨著云原生生態(tài)的不斷發(fā)展,云原生理念的不斷普及, DevOps 的思想很可能也會(huì)發(fā)生一個(gè)本質(zhì)的變化,即下一代 DevOps 模型與體系。隨著 Kubernetes 的能力越來(lái)越多、越來(lái)越強(qiáng)大,基礎(chǔ)設(shè)施也會(huì)變得越來(lái)越復(fù)雜,那么基于這樣一個(gè)強(qiáng)大的基礎(chǔ)設(shè)施去構(gòu)建一個(gè)應(yīng)用平臺(tái)就會(huì)非常簡(jiǎn)單,并且這個(gè)應(yīng)用平臺(tái)最終會(huì)取代傳統(tǒng)的PaaS平臺(tái)。 我們現(xiàn)在之所以在用 DevOps 這一套思想,實(shí)際上是由于基礎(chǔ)設(shè)施本身不夠強(qiáng)大,不夠標(biāo)準(zhǔn)化,不夠好用,所以我們需要在業(yè)務(wù)研發(fā)側(cè)做一套工具去黏合研發(fā)人員和基礎(chǔ)設(shè)施。例如,基礎(chǔ)設(shè)施提供的能力是一個(gè)虛擬機(jī),怎么能讓虛擬機(jī)變成研發(fā)側(cè)想要的藍(lán)綠發(fā)布或者一個(gè)漸進(jìn)式的應(yīng)用交付系統(tǒng)呢?這就需要一系列的 DevOps 的工具、 CI/CD 的流水線(xiàn)來(lái)完成。 但是現(xiàn)在的情況已經(jīng)發(fā)生了變化?;?Kubernetes 的基礎(chǔ)設(shè)施本身的能力已經(jīng)非常豐富,像藍(lán)綠發(fā)布這些能力本身就是 Kubernetes 可以提供的能力。在這樣的背景下, DevOps 的發(fā)展趨勢(shì)也會(huì)發(fā)生很大的改變:

1. 關(guān)注點(diǎn)分離 在 Kubernetes 的背景下,“軟件”不再是一個(gè)由應(yīng)用 Owner 掌控的單一交付物,而是多個(gè) Kubernetes 對(duì)象的集合,而這一堆 Kubernetes 里面的對(duì)象只有很少一部分其實(shí)才跟研發(fā)有關(guān),所以說(shuō)有很多對(duì)象會(huì)不在應(yīng)用 Owner 的認(rèn)知范圍內(nèi),這就導(dǎo)致平臺(tái)必須去做關(guān)注點(diǎn)分離,研發(fā)側(cè)的關(guān)注點(diǎn)和運(yùn)維側(cè)、系統(tǒng)側(cè)的關(guān)注點(diǎn)是完全不一樣的東西。也就是研發(fā)不用再考慮運(yùn)維方面的細(xì)節(jié),比如藍(lán)綠發(fā)布怎么做,水平擴(kuò)容什么策略,只要把業(yè)務(wù)代碼寫(xiě)完交付就好。 伴隨著 Kubernetes 和基礎(chǔ)設(shè)施越來(lái)越復(fù)雜,概念越來(lái)越多,作為平臺(tái)層是不大可能讓研發(fā)了解所有的概念,因此未來(lái)云原生生態(tài)一定會(huì)做抽象和分層。每一層的角色只跟屬于自己的數(shù)據(jù)抽象去交互,研發(fā)側(cè)有一套自己的聲明式 API 對(duì)象,運(yùn)維側(cè)有一套自己的聲明式 API 對(duì)象,每一層的關(guān)注點(diǎn)也是不一樣的,這會(huì)是未來(lái)整個(gè) DevOps 體系里發(fā)展的一個(gè)重要的背景。

2. Serverless 泛化 云原生本身的關(guān)注點(diǎn)就是應(yīng)用,在這樣一個(gè)背景下,Serverless 本身不再是一個(gè)獨(dú)立場(chǎng)景,不再局限在某幾個(gè)非常垂直的領(lǐng)域,而會(huì)變成云原生應(yīng)用管理體系的一種泛化思想和天然組成部分。我從兩個(gè)層面解釋一下:一是在能力側(cè),“輕運(yùn)維”“ NoOps ”以及“自助式運(yùn)維能力”會(huì)成為應(yīng)用運(yùn)維的主流方式。綿陽(yáng)服務(wù)器托管云原生生態(tài)上的應(yīng)用管理會(huì)體現(xiàn)出一種輕運(yùn)維的狀態(tài),就是說(shuō)應(yīng)用運(yùn)維不再是一個(gè)人工的、非常復(fù)雜的過(guò)程,而是一組開(kāi)箱即用的、非常簡(jiǎn)單的模塊化操作。無(wú)論是通過(guò) Kubernetes 還是通過(guò)云原生能力,都是對(duì)下層基礎(chǔ)設(shè)施的一個(gè)模塊化的分裝,這跟 Serverless 所提倡的 NoOps 理念非常類(lèi)似。 二是在應(yīng)用側(cè),應(yīng)用描述會(huì)廣泛地進(jìn)行用戶(hù)側(cè)的抽象,事件驅(qū)動(dòng)和 Serverless 理念被拆分和泛化,可以被應(yīng)用于多樣化的場(chǎng)景中而不僅僅是今天狹義的 Serverless 場(chǎng)景比如 FaaS 或者 Container Instance,未來(lái)所有的應(yīng)用都可以實(shí)現(xiàn) scale-to-zero 。

3. 基于 Infrastructure as Data(IaD)思想的應(yīng)用層技術(shù)漸成主流 第一,基于 Infrastructure as Data(IaD)的思想會(huì)成為一個(gè)主流技術(shù),IaD 實(shí)際就是 Kubernetes 的聲明式 API ,聲明式 API 的核心在于把基礎(chǔ)設(shè)施、應(yīng)用、能力以一個(gè)聲明式的文件、聲明式的對(duì)象去描述,那么這個(gè)文件或者對(duì)象本身就是“數(shù)據(jù)”。而 Kubernetes 或者基礎(chǔ)設(shè)施這一層是通過(guò)數(shù)據(jù)去驅(qū)動(dòng)的,這就是 Infrastructure as Data。這樣的思想會(huì)延伸出很多技術(shù)和前沿的思想,比如 GitOps 、管道型 YAML 操作工具(Kustomize/kpt)等。這樣的管道型應(yīng)用管理會(huì)成為云原生生態(tài)里面一個(gè)非常主流的應(yīng)用管理方式。綿陽(yáng)服務(wù)器托管

第二,聲明式應(yīng)用定義模型(比如 OAM),以及聲明式的 CI/CD 系統(tǒng)和 Pipeline 會(huì)成為一個(gè)新的應(yīng)用交付的模式。比如傳統(tǒng)的 Jenkins 是一個(gè)命令式的組織方式,而隨著聲明式的 Pipeline 的出現(xiàn),加上云原生生態(tài)、Kubernetes 的普及,基于 Infrastructure as Data 思想的流水線(xiàn)和下一代的 CI/CD 系統(tǒng)也會(huì)成為業(yè)界的主流。這跟以前的 CI/CD 和流水線(xiàn)有本質(zhì)的區(qū)別,因?yàn)檫@個(gè) CI/CD 系統(tǒng)里面所有的操作都是一個(gè)聲明式描述。

正因?yàn)槭锹暶魇矫枋?,所有這些操作以及 CI/CD 里面的環(huán)節(jié)都可以托管到 Git 上,哪怕一個(gè)人工審核(Manual Approve)這樣的動(dòng)作都可以托管在 Git 里面,通過(guò) Git 去審計(jì)和做版本管理等。 Infrastructure as Data 的出現(xiàn)就是告訴我們,未來(lái)云原生的系統(tǒng)。一切皆對(duì)象,一切皆數(shù)據(jù)。隨著對(duì)象和數(shù)據(jù)越來(lái)越多,對(duì)他們的管理、審計(jì)、驗(yàn)證等就變得越來(lái)越復(fù)雜,那么圍繞它們的策略引擎(Policy Engine)會(huì)成為一個(gè)非常重要的需求。策略引擎會(huì)成為一個(gè)非常重要的組件,未來(lái) Kubernetes 所有的應(yīng)用平臺(tái)可能都需要一個(gè)策略引擎的存在,幫助用戶(hù)處理不同場(chǎng)景下對(duì)數(shù)據(jù)的操作策略。

4. 構(gòu)建于 IaD 之上的最終用戶(hù)體驗(yàn)層 需要注意的一點(diǎn)是,雖然 Infrastructure as Data 會(huì)成為應(yīng)用層的主流技術(shù),但是它有一個(gè)“硬傷”,就是對(duì)最終用戶(hù)并不友好。因?yàn)槿说拇竽X比較容易去處理流程化的、規(guī)則化的事情,而不是去處理一個(gè)靜態(tài)的數(shù)據(jù),所以說(shuō)在 IaD 之上會(huì)有一層面向最終用戶(hù)的體驗(yàn)層的存在。這就意味著 Kubernetes 不會(huì)把聲明式的數(shù)據(jù)直接交給最終用戶(hù),而是通過(guò)其他方式來(lái)操作這些數(shù)據(jù),比如通過(guò)一種能夠理解 Kubernetes 數(shù)據(jù)模型的動(dòng)態(tài)配置語(yǔ)言(DSL)來(lái)完成,或者通過(guò)基于 API 對(duì)象的 CLI 或者 dashboard 來(lái)完成,也可能是通過(guò)一種以應(yīng)用為中心的交互與協(xié)作流程來(lái)完成。而最終用戶(hù)體驗(yàn)層會(huì)決定產(chǎn)品有沒(méi)有黏性,這是云原生的這套體系有沒(méi)有黏性,是不是用戶(hù)友好的一個(gè)關(guān)鍵環(huán)節(jié)。

5. DevSecOps 隨著如前所述的下一代 DevOps 體系的發(fā)展,安全會(huì)從一開(kāi)始就變成應(yīng)用交付的一部分。在業(yè)界大家稱(chēng)之為 DevSecOps ,就是從 day zero 開(kāi)始就把安全策略、對(duì)安全的考量、安全配置作為應(yīng)用的一部分,而不是等到應(yīng)用交付出去了甚至應(yīng)用已經(jīng)上線(xiàn)了再去做事后的安全審計(jì)和管理。

底層基礎(chǔ)設(shè)施的 Serverless 云原生化 隨著云原生體系的發(fā)展,云的價(jià)值逐漸走向應(yīng)用層,不斷向基于聲明式 API 、基于 IaD 的理念去發(fā)展,那么下層的基礎(chǔ)設(shè)施也會(huì)發(fā)生相應(yīng)的變化。第一個(gè)變化是基礎(chǔ)設(shè)施能力聲明式 API 化、自助化。今天的云是基礎(chǔ)設(shè)施能力的集大成者,可以認(rèn)為是一個(gè)無(wú)限的能力層,今天我們能想象到的基礎(chǔ)設(shè)施上所有的能力,云都可以提供,這跟以前的基礎(chǔ)設(shè)施完全不一樣。以前云的能力很薄弱,基礎(chǔ)設(shè)施的能力也很薄弱,所以才需要一個(gè)龐大的中間件體系和精密的 DevOps 體系來(lái)做一個(gè)“膠水層”,去彌補(bǔ)基礎(chǔ)設(shè)施跟應(yīng)用、研發(fā)、運(yùn)維人員之間的鴻溝。

而未來(lái),應(yīng)用才是整個(gè)云原生生態(tài)的主角。應(yīng)用需要使用某個(gè)能力,那么云就會(huì)提供這個(gè)能力,并且是通過(guò)一個(gè)標(biāo)準(zhǔn)化的接入層來(lái)提供,而不是直接跟基礎(chǔ)設(shè)施打交道。云原生生態(tài)的發(fā)展會(huì)使得用戶(hù)側(cè)的視角發(fā)生很大的改變,從面向基礎(chǔ)設(shè)施變?yōu)槊嫦驊?yīng)用,從基礎(chǔ)設(shè)施有什么用戶(hù)才能用什么,變成用戶(hù)要什么,基礎(chǔ)設(shè)施就可以提供什么。以應(yīng)用為中心的基礎(chǔ)設(shè)施會(huì)是未來(lái)基礎(chǔ)設(shè)施的一個(gè)基本形態(tài)。 這個(gè)理念跟 Serverless 理念非常類(lèi)似,我們可以將它稱(chēng)為底層基礎(chǔ)設(shè)施的 Serverless 原生化,這意味著基礎(chǔ)設(shè)施會(huì)在未來(lái)也逐漸的聲明式 API 化,而聲明式 API 化帶來(lái)的一個(gè)直接結(jié)果就是他會(huì)變成一個(gè)自助化的基礎(chǔ)設(shè)施。

另外,由于基礎(chǔ)設(shè)施能夠?qū)崿F(xiàn)聲明式 API 化,實(shí)現(xiàn)自助化,那么打造更加智能化的基礎(chǔ)設(shè)施就成為一個(gè)重要方向。因?yàn)榛A(chǔ)設(shè)施系統(tǒng)的模塊化能力變成了一個(gè)數(shù)據(jù)化的定義方式,那么就可以和容易的通過(guò)監(jiān)控?cái)?shù)據(jù)、歷史數(shù)據(jù)來(lái)驅(qū)動(dòng)基礎(chǔ)設(shè)施的運(yùn)轉(zhuǎn),也就是“自動(dòng)駕駛的基礎(chǔ)設(shè)施”。數(shù)據(jù)驅(qū)動(dòng)的智能化基礎(chǔ)設(shè)施會(huì)在未來(lái)成為可能,當(dāng)然其前提是基礎(chǔ)設(shè)施本身實(shí)現(xiàn)聲明式 API 化和自助化。 與此同時(shí),由于應(yīng)用層本身會(huì) Serverless 泛化,像 “scale to 0” 和 “pay as you go” 這些功能,會(huì)成為應(yīng)用的一個(gè)基礎(chǔ)的假設(shè),導(dǎo)致資源層也會(huì)走向極致彈性+無(wú)限資源池的方向。

作為一個(gè)智能化的基礎(chǔ)設(shè)施,可以去做更加智能的調(diào)度與混部,從而提供極致的資源利用效能,實(shí)現(xiàn)成本的極低化。 與此同時(shí),由于要實(shí)現(xiàn)極致的資源效能,就意味著底層一定是一個(gè)強(qiáng)多租架構(gòu),并且這個(gè)強(qiáng)多租架構(gòu)是面向 Kubernetes 的,跟 Kubernetes 有一個(gè)天然的、非常融合的集成。這體現(xiàn)在兩個(gè)方面:第一,在運(yùn)行時(shí)這一層,這個(gè)基礎(chǔ)設(shè)施會(huì)傾向走基于硬件虛擬化的容器運(yùn)行時(shí)而非傳統(tǒng)虛擬機(jī)的方向,比如 Kata Container ,并且認(rèn)為神龍裸金屬服務(wù)器更適合做宿主機(jī)。伴隨著這套技術(shù)的發(fā)展,輕量化的 VMM(虛擬化管理技術(shù))會(huì)成為優(yōu)化容器運(yùn)行時(shí)、優(yōu)化整個(gè)基礎(chǔ)設(shè)施敏捷度的一個(gè)關(guān)鍵技術(shù)和關(guān)鍵鏈路。 第二,強(qiáng)多租的控制面會(huì)針對(duì)不同租戶(hù)做物理隔離,而不只是邏輯隔離,這是 Kubernetes 數(shù)據(jù)模型的要求,即租戶(hù)的控制面板之間需要有強(qiáng)的物理隔離,這就是為什么我們講未來(lái)的強(qiáng)多租架構(gòu)一定會(huì)面向 Kubernetes 來(lái)構(gòu)建。阿里內(nèi)部也是看到了這樣的趨勢(shì),在不斷做一些嘗試,去更好地響應(yīng)未來(lái) Serverless 原生化的基礎(chǔ)設(shè)施的發(fā)展趨勢(shì)。

網(wǎng)站標(biāo)題:云原生五大趨勢(shì)預(yù)測(cè),K8s安卓化位列其一
網(wǎng)站地址:http://muchs.cn/article0/sdidio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)網(wǎng)站收錄、服務(wù)器托管網(wǎng)頁(yè)設(shè)計(jì)公司、定制開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)