過去一年,在疫情的影響下,企業(yè)生產(chǎn)和協(xié)作模式發(fā)生了巨大改變,從原有的線下轉(zhuǎn)移到線上,導(dǎo)致對IT有著十分強烈的訴求。這時,企業(yè)如何快速實現(xiàn)自身的業(yè)務(wù)治理和協(xié)作管理?我們觀察到的是,傳統(tǒng)的軟件開發(fā)方式無論在人力還是時間成本方面,都已經(jīng)無法滿足企業(yè)業(yè)務(wù)的需要,應(yīng)用開發(fā)又改如何跟上市場的腳步,以提升企業(yè)生產(chǎn)力和市場競爭力?
1月19日,云原生計算基金會CNCF(Cloud Native Computing Foundation)成員之一的Chris Aniszczyk撰文,預(yù)判了有關(guān)云原生技術(shù)的九個趨勢。
據(jù)了解,Chris Aniszczyk目前是Linux基金會CTO,同時還是云原生計算基金會CNCF的首席運營官,并負責開放容器標準(OCI)組織的相關(guān)工作。
(PS.這里再科普一個小知識,CNCF隸屬于Linux基金會下,獨立于任何廠商,負責推廣云原生系統(tǒng)。例如,CNCF擁有云原生軟件堆棧的關(guān)鍵元素,包括Kubernetes和Prometheus。CNCF創(chuàng)建了一個中立的合作平臺,將業(yè)內(nèi)頂級開發(fā)者、最終用戶和供應(yīng)商整合起來,包括全球最大的云服務(wù)和企業(yè)軟件公司,也有初創(chuàng)團隊。)
首先,我們先來了解下過去一年CNCF基金會組織成員方面的一些變化。
成員方面:2020年新增150多家新成員,目前總計超過668家成員。其中,Kasten by Veeam和字節(jié)跳動旗下火山引擎在2020年加入或升級為白金會員;Cox Communications、HCL Technologies、Hewlett Packard Enterprise、Intuit、浦發(fā)銀行和T-Mobile都在2020年加入或升級為黃金會員。
項目方面:2020年,由CNCF托管的Helm、Harbor、TikV、Rook、etcd等14個項目,提升到畢業(yè)階段;Argo、Contour和Operator Framework則進階孵化階段;Buildpacks、Cortex、Dragonfly、Falco、SPIFFE/SPIRE和Thano等20個項目,從沙箱進階孵化階段。
云原生技術(shù)不再是只為云服務(wù)。Builtin宣稱“云原生技術(shù)正轉(zhuǎn)向企業(yè)”,這意味著“傳統(tǒng)IT正向云原生覺醒”。云原生技術(shù)也在推動邊緣計算領(lǐng)域擴張的同時,許多企業(yè)也意識到“走云原生道路所帶來的潛在經(jīng)濟效益”。
值得一提的是,Dan Kohn先生,作為前Linux基金會公共衛(wèi)生負責人、CNCF執(zhí)行總裁,于2020年11月日因病離世。他曾多次來到中國交流,對中國開源社區(qū)以及云原生技術(shù)的推廣起到了一個非常重要的作用。這份報告中也特別緬懷了這位開源英雄。
回歸正題,先來了解下Chris Aniszczyk根據(jù)過去一年觀察所給出的九個開源技術(shù)和工具發(fā)展趨勢。
1、云原生IDE(集成開發(fā)環(huán)境)
相較于使用本地的Emacs、VSCode,未來,開發(fā)人員寫代碼、架構(gòu)、調(diào)試等開發(fā)全生命周期,將主要以云的方式進行。例如,開發(fā)人員可以為每次pull request請求獲得完整的開發(fā)環(huán)境,不僅能預(yù)先配置,還能連接到自身的部署環(huán)境中。
GitHub上開源的兩個新項目:Codespaces、Gitpod,就是鐵證。不過,Codespaces仍處于測試階段,可以使用Prometheus作為示例,在Gitpod上進行體驗。
因為只需要一分鐘,開發(fā)人員就可以實現(xiàn)一個帶有編譯器和預(yù)覽的實時開發(fā)環(huán)境。
2、Kubernetes在邊緣計算中的應(yīng)用
盡管Kubernetes誕生于大型數(shù)據(jù)中心,但Kubernetes會像Linux一樣因環(huán)境改變而不斷變化。例如,終端用戶基于Linux不斷擴展內(nèi)核,以支持移動、嵌入式等操作系統(tǒng)的開發(fā)。實際上,Kubernetes正有著類似的經(jīng)歷。美國電信行業(yè)和初創(chuàng)公司為探索Kubernetes在邊緣計算中的應(yīng)用,已經(jīng)在通過將VNF轉(zhuǎn)換為CNF以及其他開源項目k3s、KubeEdge、k0s、LFEdge、Eclipse ioFog等進行實踐。(注:Virtual Network Functions (VNFs);Cloud Native Network Functions (CNFs))
未來幾年里,支撐運營商的大規(guī)模云計算和邊緣計算浪潮,加之對云原生軟件的反復(fù)使用以及塑造強健生態(tài)的能力,將推動Kubernetes進一步發(fā)展為邊緣計算核心平臺。
3、云原生+Wasm
Web Assembly(Wasm)是一門新興技術(shù),但有望成為云原生生態(tài)中日益增長的實用程序和工作負載,尤其是WASI變得越來越成熟,而Kubernetes也開始更多地被應(yīng)用于邊緣協(xié)調(diào)器( edge orchestrator)。
4、FinOps(CFM)興起
全球疫情確確實實加速了企業(yè)IT向云原生的轉(zhuǎn)變。因為在這場危機中,至少有一半的公司正加速云部署計劃。根據(jù)剛剛公布的調(diào)研報告State of the Cloud Report 2020,近60%的受訪者表示,由于疫情的影響,他們對云的使用會超過原先計劃。
其中,云成本優(yōu)化(Cloud Financial Management,F(xiàn)inOps)對很多企業(yè)而言是一個需要關(guān)注的話題。坦率來講,過去半年,有一半的討論都是關(guān)于公司該如何啟動云原生的實踐。
盡管云服務(wù)商并沒有主動簡化云成本優(yōu)化的規(guī)范和方案,因為這會導(dǎo)致客戶更容易減少IT支出,但真正的問題在于,缺乏開源創(chuàng)新和圍繞云成本優(yōu)化的標準化管理。目前很多云服務(wù)的成本管理標準有很大差異。
在CNCF的項目中,很多也并沒有將云成本優(yōu)化當回事兒,像KubeCost項目其實也還在早期階段。Linux基金會最近啟動了FinOps基金會,以幫助生態(tài)創(chuàng)新。
5、Rust在云原生技術(shù)中將更為常見
Rust仍是一個比較年輕的編程語言,如果以Redmonk編程語言排名來看,Rust雖然小眾但有一定的影響力潛能。鑒于目前少數(shù)CNCF項目在一些非常有趣的云原生項目中開始使用Rust,如microvm Firecracker,未來Rust可能會出現(xiàn)在越來越多的云原生項目中。
盡管CNCF的很多項目是用Golang編寫的,但預(yù)計隨著Rust社區(qū)的成熟,基于Rust的項目將在未來幾年內(nèi)與Go的項目相提并論。
6、GitOps+CD/PD模型顯著增長
GitOps是云原生技術(shù)的持續(xù)交付模型,提供了一套可以統(tǒng)一部署、管理和監(jiān)測應(yīng)用(最初由Weaveworks知名人士Alexis Richardson創(chuàng)建)的最佳實踐。
GitOps最核心的部分,是描述通過聲明方式在Git中進行版本化的期望系統(tǒng)狀態(tài)。這實際使得一組復(fù)雜的系統(tǒng)更改能夠被正確應(yīng)用,并通過Git和其他工具啟用的日志進行驗證。
從實用的角度講,GitOps改善了開發(fā)者體驗,并伴隨Argo、GitLab、Flux等項目的增長,GitOps工具預(yù)計在今年對企業(yè)生產(chǎn)將帶來更大影響。結(jié)合目前GitLab上的數(shù)據(jù),GitOps仍處于早期實踐中,大多數(shù)公司都沒有太多相關(guān)的探索,這取決于是否有越來越多的公司在大規(guī)模采用云原生軟件。
7、服務(wù)目錄2.0:云原生開發(fā)者看板
服務(wù)目錄不是一個新概念,對于多數(shù)成熟的技術(shù)人而言,可能大家只會記得CMDB等類似的挑戰(zhàn)。
但是,隨著微服務(wù)的興起和云原生的發(fā)展,對各類服務(wù)進行分類,并為各種實時服務(wù)源數(shù)據(jù)進行索引的能力,對于推動開發(fā)人員自動化至關(guān)重要。這包括使用服務(wù)目錄以處理事件管理、管理SLO等。
還有一種趨勢是:開發(fā)者看板不僅具備服務(wù)目錄,同時還具備自動化擴展的能力。不過值得一提的是,任何具有一定云原生部署能力的公司往往會有一個試圖構(gòu)建類似能力的平臺基礎(chǔ)架構(gòu)團隊。
8、跨云不再是夢想
Kubernetes和云原生技術(shù)浪潮表明,生產(chǎn)環(huán)境中可以使用云原生和多云管理的方式。相關(guān)數(shù)據(jù)清晰地表明:“93%的企業(yè)會選擇Microsoft Azure,Amazon Web Services和Google Cloud等多個云服務(wù)商的使用策略。”
隨著Kubernetes在云市場的應(yīng)用成熟,未來有望解鎖編程式的跨云托管服務(wù)。一個具體示例是Crossplane項目,該項目提供了一個開源的跨云控制平臺,可利用Kubernetes API的可擴展性來實現(xiàn)跨云工作負載管理。
9、eBPF成為主流
eBPF允許開發(fā)者在Linux內(nèi)核中運行程序,而無需更改內(nèi)核代碼或加載模塊,這種方式可以視為沙盒擴展機制。eBPF允許新一代軟件擴展Linux內(nèi)核,以支持改進的網(wǎng)絡(luò)、監(jiān)視和安全性等能力。
從歷史上看,eBPF的缺點是需要一個高版本的內(nèi)核才能利用,并且在很長一段時間里這對跟多公司都不是一個切實的選擇。
但情況在發(fā)生變化,因為新版RHEL開始支持eBPF了,預(yù)計很快越來越多的項目開始采用這一方式。根據(jù)Sysdig發(fā)布的最新容器報告,可以看到Falco在生產(chǎn)環(huán)境中的采用率最近正大幅上升。