云原生技術(shù)快速發(fā)展,這里有幾個(gè)有趣的技術(shù)趨勢,已經(jīng)在過去12個(gè)月出現(xiàn),而且將在未來幾年深刻影響云原生。
系統(tǒng)設(shè)計(jì):單體歸來
在過去的幾年里,用微服務(wù)構(gòu)建云原生應(yīng)用程序興起,它將一個(gè)大型應(yīng)用程序分解成更小的、相互連接的組件,允許獨(dú)立的團(tuán)隊(duì)處理應(yīng)用程序的不同部分而不必互相干涉。然而,微服務(wù)也面臨著一系列挑戰(zhàn),最大的挑戰(zhàn)是跨組件調(diào)試的困難。Kubernetes的傳道者Kelsey Hightower提出了一個(gè)想法,“單體是未來,因?yàn)槿藗冊(cè)噲D用微服務(wù)解決的問題并不符合現(xiàn)實(shí)。”實(shí)際上,核心云原生應(yīng)用程序Istio服務(wù)網(wǎng)格背后的設(shè)計(jì)團(tuán)隊(duì),正在遷移到單體的方法,其中更多的服務(wù)被集成到一個(gè)單一的守護(hù)進(jìn)程中。
折中無處不在,2020年,微服務(wù)與企業(yè)軟件設(shè)計(jì)中的其他因素開始平衡。
云服務(wù):一個(gè)統(tǒng)一的控制平面
Kubernetes在如何方便地?cái)U(kuò)展和管理分布式應(yīng)用程序方面帶來了一場革命,盡管它的接口主要面向系統(tǒng)管理員。對(duì)于開發(fā)人員來說,它意味著一個(gè)陡峭的學(xué)習(xí)曲線,需要在它自己的運(yùn)維概念(即“入口”、“pods”、“服務(wù)”)和開發(fā)人員所理解的應(yīng)用程序的實(shí)際需求之間進(jìn)行大量的轉(zhuǎn)換。因此,毫不奇怪,今年我們看到了很多關(guān)于一個(gè)通用的控制平面的討論,它將為企業(yè)為其開發(fā)人員構(gòu)建自己的基于Kubernetes的自助式平臺(tái)(即服務(wù))奠定基礎(chǔ)。Kubernetes就在下面,開發(fā)者不必?fù)?dān)心。關(guān)鍵的早期工作是一個(gè)稱為Open Application Model(OAM)的標(biāo)準(zhǔn)化模板,它正在迅速成為Kubernetes社區(qū)中的事實(shí)標(biāo)準(zhǔn)。Crossplane是Upbound構(gòu)建的一個(gè)基于OAM的開源控制平面,在這個(gè)領(lǐng)域獲得了很多關(guān)注。IBM現(xiàn)在正在測試Crossplane,以幫助用戶在其IBM Cloud上統(tǒng)一操作。另一個(gè)獲得關(guān)注的基于OAM的項(xiàng)目是KubeVela,它是一個(gè)可擴(kuò)展的“平臺(tái)引擎”。
“對(duì)于開發(fā)人員來說,KubeVela是一個(gè)易于使用的工具,它使你能夠以最小的努力來描述應(yīng)用程序并將其發(fā)送給Kubernetes,而對(duì)于平臺(tái)構(gòu)建者來說,KubeVela是一個(gè)框架,使他們能夠輕松地創(chuàng)建面向開發(fā)人員但完全可擴(kuò)展的平臺(tái)。”
運(yùn)維:可編程Linux內(nèi)核
Linux內(nèi)核是云原生的事實(shí)標(biāo)準(zhǔn)操作系統(tǒng),由于Extended Berkeley Packet Filter(eBPF)的引入,它的使用方式開始發(fā)生根本性的轉(zhuǎn)變。雖然最初的目標(biāo)是用于高級(jí)內(nèi)核監(jiān)控,但這個(gè)原始BPF的內(nèi)存映射擴(kuò)展可以在內(nèi)核空間中運(yùn)行任何沙盒程序,而無需更改內(nèi)核源代碼或加載模塊。
實(shí)際上,eBPF充當(dāng)了一個(gè)微內(nèi)核,提供了一種可能更快、更安全的方式來使用Linux內(nèi)核。通過這種方式,eBPF為開發(fā)人員提供了一種將自己的程序添加到內(nèi)核本身的方法。最直接的好處將是應(yīng)用程序和系統(tǒng)監(jiān)控(和調(diào)試),以及加快網(wǎng)絡(luò)路由的決策過程,允許內(nèi)核內(nèi)聯(lián)完成迄今為止交給模塊的工作。目前,幾家專注于Kubernetes的公司,如Cilium、Isovalent和Tigera,正在使用這項(xiàng)技術(shù)為使用Kube-Proxy進(jìn)行流量路由提供一種更快的替代方案。
安全:重新思考漏洞管理
在過去的一年里,越來越明顯的是,當(dāng)前用于處理新安全漏洞的系統(tǒng)可能沒跟上云原生計(jì)算的步伐。來自云安全公司Rezilion的Tal Klein指出,目前全行業(yè)范圍內(nèi)對(duì)新發(fā)現(xiàn)的漏洞進(jìn)行優(yōu)先排序的系統(tǒng),即通用漏洞評(píng)分系統(tǒng)(CVSS),與攻擊者如何利用漏洞來破壞系統(tǒng)的方式不符。有些人認(rèn)為,人們過于關(guān)注嚴(yán)重程度評(píng)分本身,對(duì)評(píng)分所涉及的環(huán)境背景了解不夠。Rezilion發(fā)現(xiàn)67%~75%具有“高嚴(yán)重性”CVSS分?jǐn)?shù)的漏洞從未加載到內(nèi)存中,因此不可能被利用。同時(shí),鑒于實(shí)際修補(bǔ)評(píng)級(jí)較低漏洞的公司越來越少,攻擊者轉(zhuǎn)而利用評(píng)級(jí)較低的漏洞。
開發(fā):慢慢遠(yuǎn)離C++
幾十年來,我們的操作系統(tǒng)和其他重要基礎(chǔ)設(shè)施軟件都是用C語言或C++語言編寫,它們是快速、低級(jí)語言。然而,現(xiàn)在越來越多的系統(tǒng)架構(gòu)師得出這樣的結(jié)論:完全保護(hù)用這些語言編寫的程序是非常困難的,因?yàn)樗鼈兲幚韮?nèi)存和其他因素的不安全方式。要安全地處理內(nèi)存分配需要大量的人才,即便如此,一個(gè)被忽視的錯(cuò)誤也可能會(huì)導(dǎo)致錯(cuò)誤。最近,更多的擁護(hù)者們開始使用一種新的語言——RIST,它既有C/C++的速度,也有編寫安全應(yīng)用所必需的安全性。在今年早些時(shí)候的AllThingsOpen虛擬會(huì)議期間,微軟云開發(fā)者倡導(dǎo)者Ryan Levick解釋了為什么微軟逐漸轉(zhuǎn)向RID來構(gòu)建其基礎(chǔ)設(shè)施軟件,也鼓勵(lì)其他軟件業(yè)巨頭考慮同樣的問題。
原文鏈接:The New Stack:Top Cloud Native Technology Trends from 2020–The New Stack