KubeVela 成为 CNCF 沙箱项目,让云端应用交付更加简单
作者:KubeVela 社區(qū)
2021 年 6 月 22 日,在云原生計算基金會(CNCF)的 TOC 例會上投票決議通過,KubeVela 正式成為 CNCF 官方沙箱項目。透明、開放、開源中立的 KubeVela,未來將持續(xù)致力于打造統(tǒng)一、標準、跨云的應(yīng)用管理和交付體驗。
“KubeVela 就是這樣一個面向用戶的上層平臺項目。對于業(yè)務(wù)開發(fā)者來說,KubeVela 簡單、易用,它可以讓開發(fā)者以極低的心智負擔(dān)和上手成本在 Kubernetes 上定義與部署應(yīng)用... 但更重要的是,對于平臺團隊來說,KubeVela 可不是一個簡單的 PaaS 或者 Serverless,它是一個能夠以 Kubernetes 原生的方式進行任意擴展的 PaaS 內(nèi)核,平臺工程師可以基于它構(gòu)建出任意的垂直業(yè)務(wù)系統(tǒng)。”
—張磊,CNCF TOC Member
KubeVela 項目地址:
_https://github.com/oam-dev/kubevela
_
項目介紹
云原生技術(shù)正在以 Kubernetes 作為通用抽象層,朝著跨云追求一致的應(yīng)用交付邁進。Kubernetes 雖然在底層基礎(chǔ)結(jié)構(gòu)細節(jié)抽象方面表現(xiàn)出色,但帶來了額外的復(fù)雜性。基于 Kubernetes 打造的各類 PaaS 林立卻又互不相通,導(dǎo)致服務(wù)應(yīng)用開發(fā)的平臺團隊,沒有一個合適的框架來構(gòu)建用戶友好且高度可擴展的抽象。與此同時,混合云、多云、分布式云這些日益復(fù)雜的業(yè)務(wù)場景中,應(yīng)用交付也在逐漸變得碎片化。
?
用 Go 語言開發(fā)的應(yīng)用交付引擎 KubeVela,能幫我們克服以上所有難題。作為 OAM(Open Application Model)在 Kubernetes 上的實現(xiàn),KubeVela 項目從 oam-kubernetes-runtime 演進至今,發(fā)展勢頭非常迅猛,不僅連續(xù)登上 GitHub Go 語言趨勢榜首和 HackerNews 首頁,更是迅速收獲了包括 MasterCard、Springer Nature、第四范式、SILOT、Upbound 等來自世界各地、不同行業(yè)的終端用戶,甚至還出現(xiàn)了像 Oracle Cloud、Napptive 等基于它構(gòu)建的商業(yè)化產(chǎn)品。就在 2021 年 3 月底,KubeVela 社區(qū)宣布包含所有穩(wěn)定版 API 的 v1.0版本 發(fā)布,正式開始向企業(yè)級生產(chǎn)可用邁進。
KubeVela 技術(shù)架構(gòu)圖
?
核心思路
?
對于平臺開發(fā)人員而言,KubeVela 作為框架,通過執(zhí)行以下操作來減輕構(gòu)建以開發(fā)人員為中心的平臺的煩惱:
- 以開發(fā)人員為中心。KubeVela 通過引入 Application 的概念來抽象基礎(chǔ)架構(gòu)級別的原語,從而捕獲微服務(wù)的完整部署,然后根據(jù)應(yīng)用程序的需求構(gòu)建操作功能。
- 本地擴展。Application 由模塊化的構(gòu)建塊組成,這些構(gòu)建模塊支持 CUELang【1】 和 Helm 【2】作為模板引擎。這使你能夠以樂高風(fēng)格抽象 Kubernetes 的功能,并通過簡單的 kubectl apply -f 將它們發(fā)布給最終用戶。對抽象模板所做的更改將在運行時生效,無需重新編譯或重新部署 KubeVela。
- 簡單而可靠的抽象機制。與大多數(shù) IaC(基礎(chǔ)設(shè)施即代碼)解決方案不同,KubeVela 中的抽象是用 Kubernetes Control Loop 【3】構(gòu)建的,所以它們永遠不會在集群中留下配置漂移。作為 Kubernetes 自定義資源【4】,KubeVela可以與任何 CI/CD 或 GitOps 工具無縫協(xié)作,不需要進行集成工作。
?
有了 KubeVela,平臺構(gòu)建者終于有了工具支持,可以設(shè)計易于使用的抽象,并以高信心和低周轉(zhuǎn)時間將它們交付給終端用戶。
?
對于終端用戶(例如應(yīng)用程序開發(fā)人員)來說,這種用 KubeVela 構(gòu)建的抽象將使他們能夠以最少的努力設(shè)計并向 Kubernetes 發(fā)布應(yīng)用程序 —他們要做的只是定義一個簡單的應(yīng)用程序,可以輕松地與任何 CI/CD 集成,而不需要管理一些基礎(chǔ)設(shè)施細節(jié)。
?
更進一步,KubeVela 目前典型的應(yīng)用場景有很多,比如:
?
?
未來展望
?
為了更好的滿足云原生下應(yīng)用交付的更加快速、多變和復(fù)雜等業(yè)務(wù)需求特性,KubeVela 將遵循以下的 Roadmap 進一步演進:
?
- 目前 Component 接入需要通過 CUE 來實現(xiàn)對接轉(zhuǎn)換。接下來,我們打算對已有的體系做更好的支持 -- 這包括已有的 Helm Chart、Kustomize 目錄、Terraform Module 能夠直接接入成為 Component。以 Helm Chart 為例,它的 values.schema.json 將對接成為 properties,輸出的資源等同于 helm template 渲染后的結(jié)果。
- 添加環(huán)境初始化 (Initializer) 的能力,為開發(fā)團隊提供公共的部署環(huán)境,比如集群、系統(tǒng) Operators & CRDs、公共服務(wù) (Load Balancer, VPC, DB) 等。
- 添加面相應(yīng)用發(fā)布過程的 Workflow 能力,讓用戶可以定義面向過程的運維命令。所有內(nèi)置運維操作也將往 Workflow 方向改造,包括 apply resources、灰度升級、流量管理、多集群等。同時也會新增配置差異化、數(shù)據(jù)傳遞等新功能。同時 Workflow 能力整體設(shè)計是可插拔的,用戶可以實現(xiàn)自己的能力(比方說灰度發(fā)布)來添加或替換。
- Vela 系統(tǒng)部署上提供 standalone 模式,不需要 K8s 作為運行時底座,可以在單個容器/VM 里面運行起來,適應(yīng)一些比較復(fù)雜的管控部署環(huán)境。
- 用戶體驗這一側(cè),velacp 項目將去除 mongodb 依賴而轉(zhuǎn)為直接使用 CRD 做存儲。添加更多的垂直場景,實現(xiàn)端到端一鍵交付能力,產(chǎn)出 App Profile 這種可被分享復(fù)用的場景制品解決方案。
- 跟 CICD 系統(tǒng)做更好的集成,包括 Github Actions、Jenkins 等,能夠讓用戶實現(xiàn) git push 就將應(yīng)用發(fā)布出去。
?
2021 年 5 月 26 日,由阿里云計算有限公司、中國信息通信研究院等 10 余家單位聯(lián)合發(fā)起的《云計算開放應(yīng)用架構(gòu)》標準文件在“云原生產(chǎn)業(yè)大會”現(xiàn)場發(fā)布。該架構(gòu)以阿里云、微軟云聯(lián)合發(fā)起的開源項目“開放應(yīng)用架構(gòu)模型(Open Application Model,以下簡稱 OAM)”為實現(xiàn)基礎(chǔ),旨在為云端應(yīng)用管理者提供統(tǒng)一的應(yīng)用描述規(guī)范及開放應(yīng)用程序能力管理框架,以期推動簡潔、高效、可控的云原生應(yīng)用管理與交付方式在更多行業(yè)和企業(yè)中的大規(guī)模落地。
?
我們可以看到作為 KubeVela API Specification 的 OAM 正在匯聚行業(yè)共識,KubeVela 社區(qū)目前也在 GitHub 上獲得 2.2k+ Star 認可,吸引到 3+ Maintainer、85+ Contributor 共建,以及 SheIn、滴普、諧云和風(fēng)變科技等眾多用戶開始運用 KubeVela 在生產(chǎn)環(huán)境上。
?
我們歡迎所有對應(yīng)用交付感興趣的開發(fā)者一起加入進來!訪問官網(wǎng) kubevela.io,加入社區(qū)群組,學(xué)習(xí)使用 KubeVela。如果您已經(jīng)在使用 KubeVela,歡迎在社區(qū)案例登記 issue(https://github.com/oam-dev/kubevela/issues/1662)留下您的信息,讓社區(qū)知道您最真實的需求。
?
KubeVela 將會一如既往地和社區(qū)一起前進,讓云端應(yīng)用交付更加簡單!
?
相關(guān)鏈接
?
【1】 CUELang
https://github.com/cuelang/cue
【2】 Helm
https://helm.sh/
【3】 Kubernetes Control Loop
https://kubernetes.io/docs/concepts/architecture/controller/
【4】Kubernetes 自定義資源
https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
如果你想更好的了解 KubeVela 項目,歡迎搜索釘釘群號 23310022
原文鏈接:https://developer.aliyun.com/article/785175?
版權(quán)聲明:本文內(nèi)容由阿里云實名注冊用戶自發(fā)貢獻,版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的KubeVela 成为 CNCF 沙箱项目,让云端应用交付更加简单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国内首次 Istio Meetup 来了
- 下一篇: 7.24 杭州站 | 阿里云 Serve