KubeVela v1.2 发布:你要的图形化操作控制台 VelaUX 终于来了
簡介:時間來到 2022 年,KubeVela 也正式進入了第四個階段,在原先核心控制器 API 基本穩(wěn)定的基礎上,我們以插件的形式增加了一系列開箱即用的功能。讓開發(fā)者可以通過 UI 控制臺的方式,連接 CI/CD 完整流程,端到端發(fā)布多集群應用,進一步提升開發(fā)者體驗。
作者:KubeVela 社區(qū)
隨著云原生的不斷發(fā)展和成熟,越來越多的基礎設施能力逐漸標準化成為 PaaS 平臺或者 SaaS 化產(chǎn)品。一個產(chǎn)品的誕生不再像過去那樣需要建立一個團隊,從開發(fā)、測試一直到運維、基礎設施全部分多種角色系統(tǒng)完成。如今,敏捷組織文化和云原生技術(shù)驅(qū)動,使得這些職責更多的是“左移”到了開發(fā)者身上,測試左移、監(jiān)控左移、安全左移,以及 DevOps 等一系列理念都是在強調(diào),通過開源項目或者云的產(chǎn)品和服務將測試、監(jiān)控、安全、運維等一系列事務提前到開發(fā)階段完成。這看似美好的愿景卻給開發(fā)者帶來了巨大的挑戰(zhàn),開發(fā)者對底層五花八門的產(chǎn)品和復雜 API 缺乏掌控力,他們不僅僅是在做選擇,更多的需要去理解和協(xié)調(diào)底層復雜異構(gòu)的基礎設施能力,以便滿足上層業(yè)務的快速發(fā)展和迭代需求。
這種復雜性和不確定性無疑大大降低了開發(fā)者的體驗,降低了業(yè)務系統(tǒng)的交付效率,增加了運維風險。開發(fā)者體驗的核心是“簡單”和“高效率”,不管是開發(fā)者還是企業(yè)都需要更好用的開發(fā)者工具或者平臺來達成。在現(xiàn)代云原生技術(shù)之上打造一款幫助開發(fā)者從開發(fā)、交付以及后續(xù)持續(xù)運維的一體化平臺,一直是 KubeVela 演進的核心目標。如圖 1 所示,在 v1.2 版本中,我們圍繞開發(fā)者體驗新增了 UI 控制臺組件(VelaUX),簡化了編排 YAML 的復雜性,完善了插件體系建設,豐富了云資源的擴展能力,增加了大量 CI/CD 等生態(tài)對接的能力,進一步完善了開發(fā)者端到端的使用體驗。
圖 1:KubeVela 架構(gòu)設計
發(fā)展歷程回顧
讓我們再來簡單回顧一下 OAM 和 KubeVela 的發(fā)展階段和歷程:
- OAM(Open Application Model)誕生和成長
在復雜的世界中要創(chuàng)造簡單,首先我們需要解決的問題就是抽象和標準化。阿里云和微軟聯(lián)合推出 OAM 模型,創(chuàng)新性地提出“關(guān)注點分離”的理念,開發(fā)者關(guān)注業(yè)務本身、運維關(guān)注模塊化能力。OAM 模型圍繞“一切皆服務,全面模塊化”的思想,為各大廠商和云原生的平臺構(gòu)建者們實現(xiàn)自己的應用管理平臺提供了簡單易用與高度可擴展相結(jié)合的標準實踐方式。該模型提出后的短短一年內(nèi)便得到了包括 AWS、Oracle、騰訊、華為在內(nèi)的國內(nèi)外各大廠商響應,被國家信通院立項作為行業(yè)標準。因為大家有共同的目標,降低云原生的使用門檻,讓應用交付和管理更簡單。
- KubeVela 開源項目 v1.0 發(fā)布,為社區(qū)帶來了 OAM 的標準實現(xiàn)
有了 OAM 模型作為實踐指導,社區(qū)高級玩家也開始創(chuàng)造自己的工具來實踐,包括阿里、微軟、Oracle、Upbond、騰訊在內(nèi)的一系列公司都基于 OAM 的指導構(gòu)建了自己的業(yè)務平臺。但對于更廣大的開發(fā)者和中小型企業(yè)群體來說,他們卻無法直接享受模型帶來的紅利,于是,KubeVela 作為 OAM 社區(qū)的官方實現(xiàn)引擎誕生了。它從一開始就由 7 家來自不同組織的 OAM 社區(qū)成員從零到一構(gòu)建。KubeVela 的實現(xiàn)吸收了多家公司針對 OAM 的實踐經(jīng)驗,同時結(jié)合 Kubernetes 社區(qū)生態(tài)優(yōu)勢,實現(xiàn)了自動化、可收斂、冪等且穩(wěn)定的應用發(fā)布控制器,圍繞 IaC(基礎設施即配置)構(gòu)造了用戶友好的抽象層,幫助開發(fā)者實現(xiàn)了開箱基于的 OAM 實現(xiàn)引擎。
- KubeVela v1.1 發(fā)布,實現(xiàn)應用交付工作流,原生支持混合環(huán)境多集群應用交付
隨著企業(yè)上云進程的推進,混合云、分布式云等多元化基礎設施逐漸成為常態(tài)。KubeVela 作為現(xiàn)代應用管理系統(tǒng)也順應潮流,整體架構(gòu)升級為面向混合環(huán)境做應用交付和管理的控制平面,將所有的功能天然構(gòu)筑在多集群技術(shù)之上。我們相信,出于高可用、成本性能、數(shù)據(jù)安全等多方面因素,未來大多數(shù)企業(yè)應用的形態(tài)都將是異構(gòu)多元的。KubeVela v1.1 版本的發(fā)布,同時也實現(xiàn)了高度可擴展的應用發(fā)布工作流,它天然以混合環(huán)境架構(gòu)呈現(xiàn),創(chuàng)新性的實現(xiàn)了交付工作流與應用抽象相結(jié)合的工作模式,實現(xiàn)了面向終態(tài)的應用交付工作流,大大簡化了流程編排的復雜性。
時間來到 2022 年,KubeVela 也正式進入了第四個階段,在原先核心控制器 API 基本穩(wěn)定的基礎上,我們以插件的形式增加了一系列開箱即用的功能。讓開發(fā)者可以通過 UI 控制臺的方式,連接 CI/CD 完整流程,端到端發(fā)布多集群應用,進一步提升開發(fā)者體驗。
v1.2 版本的核心能力
圖形化操作控制臺(VelaUX)
提供好用的圖形化操作界面是降低開發(fā)者使用門檻的首選途徑,從 KubeVela 誕生以來,社區(qū)對 UI 控制臺的呼聲一直很高。從 v1.2 版本開始,它正式到來了。打造 UI 控制臺的目的是幫助開發(fā)者以更標準化的方式組裝和管理異構(gòu)業(yè)務應用,幫助他們分析和更快的發(fā)現(xiàn)業(yè)務故障和阻礙。
VelaUX[1] 是 KubeVela 的前端項目,設計實現(xiàn)時它充分考慮了 KubeVela 的可擴展性這一核心要點。引入了低代碼平臺的理念來打造前端,我們的目標是打造一個可以通過拖拉拽方式就能做到自定義應用交付輸入?yún)?shù),并且實現(xiàn)運行數(shù)據(jù)可觀測的平臺。為此我們設計了前端描述規(guī)范(UISchema[2]),配合 KubeVela 的模塊化定義(X-Definition[3]),通過配置就可以渲染出豐富的前端交互元素。同時為了讓前端的數(shù)據(jù)查詢也配置化,我們設計了多維數(shù)據(jù)自定義查詢語言(VelaQL[4]),這樣的設計形成了 KubeVela 交付和管理異構(gòu)應用的基礎。
目前通過 VelaUX ,用戶可以管理擴展,連接 Kubernetes 集群,分配交付目標,規(guī)劃環(huán)境和交付各類型應用,并觀測應用運行狀態(tài),實現(xiàn)應用交付的完整閉環(huán)。
圖 2:VelaUX 預覽
如圖 2 所示,VelaUX 中出現(xiàn)了一些新名詞,請參考核心概念[5]文檔進行學習和了解。
多環(huán)境統(tǒng)一化管理
KubeVela 將 N 個Kubernetes 集群,N 個云廠商服務或其他私有云服務統(tǒng)一為大的基礎設施資源池。在此基礎上,我們的開發(fā)者可以按照業(yè)務需求、流程需求、團隊需求等多種業(yè)務維度劃分環(huán)境。在大資源池的基礎上形成環(huán)境空間。同一個應用可發(fā)布到不同的環(huán)境,環(huán)境之間從管理到運行態(tài)完全隔離。
圖 3:多環(huán)境/多集群應用管理頁面
如圖 3 所示,應用可被發(fā)布到生產(chǎn)、測試、默認三個環(huán)境中,每一個環(huán)境可以包括多個交付目標,每一個交付目標背后可以是獨立的 Kubernetes 集群。
異構(gòu)應用標準化交付
在云原生體系中,我們交付應用的形式選擇非常多。基于 Kubernetes 基礎設施,我們既可以通過成熟的 Helm Chart 包交付中間件和第三方開源應用,也可以通過鏡像交付企業(yè)業(yè)務應用,還可以通過 OpenYurt 交付管理邊緣應用。基于云服務商的開放能力,我們可以交付數(shù)據(jù)庫、消息、緩存等中間件,也有日志、應用監(jiān)控等運維能力。
對于這么多的可選項,KubeVela 采用標準的 OAM 規(guī)范實現(xiàn)對異構(gòu)應用的統(tǒng)一交付和管理。KubeVela 實現(xiàn)了高度可擴展的交付系統(tǒng),通過內(nèi)置、社區(qū)共享等形態(tài)幫助用戶擴展平臺,以一致化的交付和管理體驗處理異構(gòu)的應用。在 KubeVela 之上,開發(fā)者看到的都是模塊化、一切皆服務的管理形態(tài)。
圖 4:云服務應用管理頁面
如圖 4 所示,我們可以看到,相同的應用管理頁面,用戶可以非常便捷得獲取到云服務應用。開發(fā)者可以通過閱讀下面幾篇文檔查看異構(gòu)應用的交付過程:
擴展體系(Addon)
KubeVela 從一開始就是設計為一款微內(nèi)核高可擴展的系統(tǒng),上文我們說到異構(gòu)應用,KubeVela 可以通過擴展體系,以標準化的形態(tài),擴充無限的應用交付能力。既匹配企業(yè)差異性訴求,也不帶來過多的認知負擔。KubeVela 中可擴展的點包括了組件類型、運維能力、工作流類型、應用交付策略等。在當前版本中,我們發(fā)布了 Addon 擴展體系。Addon 是組織各種擴展能力的承載體,它便于分發(fā)和管理。
圖 5:KubeVela 插件管理頁面
目前在官方倉庫中已經(jīng)存在如圖 5 所示的可用 Addon。同時在實驗性倉庫中我們正在聯(lián)合社區(qū)用戶積極創(chuàng)造更多的擴展能力。當然,這里需要每一個社區(qū)開發(fā)者的積極參與。
截止到現(xiàn)在,KubeVela 已經(jīng)成長為一款可直接服務于廣大開發(fā)者的應用交付平臺,那么企業(yè)哪些場景可以直接利用 KubeVela 呢?我們整理了以下幾個常見場景:
企業(yè)開發(fā)場景解決方案
多集群應用 DevOps
在過往社區(qū)的交流中,我們發(fā)現(xiàn)企業(yè)主流的研發(fā)體系都類似如圖 6 所示的結(jié)構(gòu),他們使用云服務廠商提供的計算資源作為生產(chǎn)、演示環(huán)境。使用自己購買或歷史遺留的服務器搭建開發(fā)、測試環(huán)境。如果業(yè)務有多區(qū)域或災備需求,生產(chǎn)環(huán)境可能需要部署到多個區(qū)域或多云。
圖 6:多集群應用實踐架構(gòu)
對于基礎的 DevOps 流程,包括了代碼托管和 CI/CD 的環(huán)節(jié)。KubeVela 目前為你提供 CD 環(huán)節(jié)的支持。對于企業(yè)實踐的步驟如下:
?
?
?
?
結(jié)合 KubeVela 的多集群應用 DevOps 方案有如下優(yōu)勢:
(1)開發(fā)者無需掌握過多的 Kubernetes 生態(tài)知識,可實現(xiàn)異構(gòu)應用云原生部署。
(2)多集群,多環(huán)境統(tǒng)一管理,原生可部署跨集群應用。
(3)統(tǒng)一的應用管理模式,無論是業(yè)務應用還是開發(fā)工具鏈。
(4)靈活的工作流,幫助企業(yè)打通各種開發(fā)規(guī)范流程。
混合環(huán)境一體化管理
不同的企業(yè)往往都存在不一樣的基礎設施和業(yè)務訴求。在基礎設施側(cè):企業(yè)可能搭建了私有云,可能購買了公有云,可能還有邊緣計算資源。在業(yè)務側(cè):不同的業(yè)務規(guī)模不同,資源需求不同,可能有多云多活應用,也有企業(yè)遺留系統(tǒng)。在研發(fā)側(cè):業(yè)務研發(fā)往往需要開發(fā)、測試、預發(fā)和生產(chǎn)環(huán)境。在管理側(cè):不同的業(yè)務團隊需要相互隔離,又可能需要業(yè)務互通。
隨著時間的累積,企業(yè)由于職責邊界和不同分工的影響,會逐漸形成不同業(yè)務團隊相互獨立甚至割裂的狀態(tài),這種割裂包括了:開發(fā)工具割裂,技術(shù)架構(gòu)割裂,業(yè)務管理形態(tài)割裂。KubeVela 秉持著“尊重現(xiàn)實,積極創(chuàng)新”的原則,帶來的方案是追求統(tǒng)一的過程中用高擴展的能力去兼容差異性。
- 面對基礎設施差異,我們支持以 Kubernetes API、云服務 API 或其他自定義 API 的形態(tài),去對基礎設施進行充分的模型化。最終通過統(tǒng)一的 OAM 模型向上暴露一致的概念。
- 面對業(yè)務架構(gòu)差異,應用模型是開放的,對架構(gòu)無要求的。KubeVela 做的是連接和賦能,連接已有系統(tǒng),通過擴展機制加持新的生態(tài)技術(shù)。
- 面對開發(fā)工具鏈的差異,企業(yè)中可能已經(jīng)存在不同的開發(fā)工具鏈,產(chǎn)出不同的業(yè)務制品。KubeVela 通過擴展和標準模型去支持各類制品,實現(xiàn)其標準化交付。當然,它的標準逐步衍生到前置環(huán)節(jié),幫助企業(yè)逐步實現(xiàn)工具鏈一致化。因此,你不用擔心你是用的 Gitlab 還是 Jenkins,它都能對接。
- 面對運維能力差異,企業(yè)中不同團隊的運維能力、工具方案可以在 KubeVela 的規(guī)范下逐步積累,能力互通。更多運維能力也同樣在社區(qū)的維度進行共享和復用。
因此,使用 KubeVela 來作為企業(yè)打通業(yè)務,進行統(tǒng)一能力建設的基礎平臺,它是可落地、有未來的方案。
自定義企業(yè)發(fā)布平臺
從 Heroku 、Cloud Foundry 時代開始,市場上一直在產(chǎn)生不同的 PaaS 平臺,我們都知道固定模式的發(fā)布平臺往往不適合所有的企業(yè)。舉個例子,某些規(guī)范化程度較高的企業(yè),他們基于業(yè)務的特性,發(fā)布應用時僅需更新鏡像名稱,然而使用通用 PaaS 就不得不去理解大量的概念和參數(shù)。再比如某個企業(yè)生產(chǎn)的是 AI 應用,對于 AI 應用的發(fā)布與普通應用有比較大的區(qū)別,這時就需要定制 AI 場景的 PaaS,企業(yè)不得不付更多的費用和學習更多的概念。
通用產(chǎn)品不符合企業(yè)需求時,自研是真實存在的訴求。但是對于從零開始自研平臺,必然又需要投入大量的人力物力,甚至超過了企業(yè)核心業(yè)務的投入,這顯得得不償失。KubeVela 也考慮到了具備自研能力企業(yè)的獨特訴求,他們可以基于 KubeVela 微內(nèi)核、高可擴展的設計,針對自己的業(yè)務場景和領(lǐng)域知識,打造屬于自己的、更為簡單易用的業(yè)務平臺。
對于需要自研發(fā)布平臺的企業(yè)來說,KubeVela 的微內(nèi)核是一個 PaaS 平臺研發(fā)框架。一方面,企業(yè)可以根據(jù)自己的需求自研或者安裝社區(qū)的各種功能插件;另一方面,企業(yè)也可以基于 OAM 模型修改模塊化配置,新增或裁剪用戶使用的參數(shù)。這種模塊化的設計可以大大降低企業(yè)的投入成本,同時可以跟上社區(qū)的發(fā)展潮流,隨時將社區(qū)更多的先進技術(shù)轉(zhuǎn)化為自身的生產(chǎn)力。
參與社區(qū)
做了這么多的介紹,你是否對 KubeVela 的發(fā)展有了一些新的認識,沒有哪個產(chǎn)品是絕對的銀彈,也沒有一個方案可以解決所有的問題。但是我們的理想是可以創(chuàng)造一個標準化模式,讓更多的企業(yè)和開發(fā)者用戶參與到這場為了“簡單”和“高效”的開發(fā)者體驗戰(zhàn)役中來。KubeVela 還很年輕,我們希望你可以參與進來共同打造。這里非常感謝在過去參與 KubeVela 貢獻的 100 多位開發(fā)者[10],正是因為你們的攜手努力,才讓我們的社區(qū)生態(tài)變得更加繁榮。
共建 OAM 應用規(guī)范
對于 OAM 應用規(guī)范,模型的更新和升級基于 KubeVela 實踐驅(qū)動,但是它并不綁定 KubeVela 實現(xiàn)。它是 KubeVela 在云原生應用交付和管理層面實踐經(jīng)驗的總結(jié)和抽象,是創(chuàng)造規(guī)范化應用管理體系的最佳實踐和核心理念。我們非常歡迎云廠商、平臺廠商、最終用戶可以參與進來,同時我們也欣喜的看到國內(nèi)包括騰訊在內(nèi)的多家廠商對 OAM 應用規(guī)范的關(guān)注和支持。任何人、組織都可以發(fā)表你的想法、建議和思考。
參與 OAM 模型討論:
https://github.com/oam-dev/spec
共建 Addon 擴展生態(tài)
如上文介紹的一樣,我們已經(jīng)開啟了 Addon 的擴展體系,非常歡迎社區(qū)的創(chuàng)造者、開發(fā)者可以來貢獻更多的擴展能力。
如何擴展和貢獻 Addon 參考文檔:
自定義插件 | KubeVela
貢獻云服務能力
KubeVela 通過集成 Terraform Module 來擴展云服務集成能力,我們已經(jīng)支持了常用的云資源[11] ,歡迎社區(qū)朋友參考并貢獻更多的云服務廠商和產(chǎn)品。
如何擴展和貢獻云資源 參考文檔:
擴展云資源 | KubeVela
反饋你的需求或痛點
或許你是普通開發(fā)者,也或許你是云原生領(lǐng)域的從業(yè)者,如果你認可我們的方向,認可我們正在做的事情,我們非常歡迎你可以參與到 KubeVela 社區(qū)討論中來。
社區(qū)討論:
https://github.com/oam-dev/kubevela
KubeVela 網(wǎng)站加速訪問
KubeVela 的官方文檔托管在 GitHub (https://github.com/oam-dev/kubevela.io )上,如果你發(fā)現(xiàn)有任何錯漏或者想要參與翻譯,歡迎直接到項目中貢獻。同時為了國內(nèi)用戶可以加速訪問,我們增加了 kubevela.net 這個域名,可以方便國內(nèi)用戶更快的訪問,內(nèi)容與 kubevela.io 的域名完全一致、實時同步。
KubeVela 是 CNCF 沙箱項目,了解更多信息,請點擊此處查閱官方文檔。
相關(guān)鏈接
[1] VelaUX:
https://github.com/oam-dev/velaux
[2] UISchema:
UI-Schema | KubeVela
[3] X-Definition:
模塊定義(X-Definition) | KubeVela
[4] VelaQL:
VelaQL | KubeVela
[5] 核心概念:
核心概念 | KubeVela
[6] 交付 Docker 鏡像:
交付容器鏡像 | KubeVela
[7] 交付 Helm Chart 包:
交付 Helm Chart | KubeVela
[8] 交付 Kubernetes 資源:
交付 Kubernetes 原生資源 | KubeVela
[9] 交付云服務:
交付云服務 | KubeVela
[10] 100 多位開發(fā)者:
https://github.com/oam-dev/kubevela/graphs/contributors
[11] 常用的云資源:
https://kubevela.io/zh/docs/end-user/components/cloud-services/provider-and-consume-cloud-services#支持的云資源列表
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。?
總結(jié)
以上是生活随笔為你收集整理的KubeVela v1.2 发布:你要的图形化操作控制台 VelaUX 终于来了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL深潜|剖析Performanc
- 下一篇: 海云健康:上云为10万家药店带去了什么价