天天看點

KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

在雲原生理念迅速普及的今天,混合環境部署(混合雲/多雲/分布式雲/邊緣)已經成為了大多數企業應用、SaaS 服務、應用持續傳遞平台的必然選擇,而雲原生技術的發展趨勢也正在朝着“一緻的、跨雲、跨環境的的應用傳遞”不斷邁進。然而,無論是 Kubernetes 本身還是現有的各類應用傳遞系統,都沒有在現今混合、分布式的部署環境之上引入一緻的上層抽象來為應用傳遞進行模組化。這種缺乏統一上層抽象的應用傳遞過程,往往同底層基礎設施緊密耦合,導緻使用者心智負擔很重并且嚴重依賴于使用者個人的經驗和能力。這不僅會大幅影響使用者體驗、降低生産效率,甚至還會導緻錯誤和故障的發生。

而現在,這個問題終于有了一個開源、标準,又不失靈活度的解法。它就是:

KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

KubeVela 作為一個開箱即用、面向現代微服務架構的應用傳遞與管理平台,今天正式釋出了 1.1 版本,以更加使用者友好和完善的功能集,開啟了“讓混合環境應用傳遞更加簡單高效”的重要裡程碑。

具體來說,1.1 版本的 KubeVela 與現有各類應用傳遞系統相比,有着顯著的不同和優勢:

  • 完全以應用為中心 - 與各類“搭積木”式的 PaaS 系統或者應用平台不同,KubeVela 項目本身是建構于一套完善的應用傳遞模型與理論基礎之上的,這就是“開放應用模型(OAM)”技術。OAM 模型能夠通過聲明式的定義來捕獲面向混合環境的微服務應用傳遞的整個過程,甚至包括雲服務的拉起與綁定、可觀測性、多叢集分發政策、流量調配和滾動更新等各種運維行為和特征。通過這樣一個統一的、基礎設施無關的上層模型,KubeVela 天然就能夠做到讓使用者無需關心任何基礎設施細節、隻專注于業務價值和傳遞過程,真正實作了完全 Serverless 化的應用管理與傳遞體驗。
  • 可程式設計式傳遞工作流 - 在 Kubernetes 面向終态的基礎上,KubeVela 還通過“傳遞流水線(Workflow)“來支援面向過程的應用傳遞流程,同時通過 Kubernetes 終态能力來保證該流水線執行的正确性與幂等性。在核心中,KubeVela 流水線是通過 CUE 來實作的。CUE 是一種誕生自 Google Borg 系統的資料配置語言(即:borgcfg),它可以将應用傳遞過程的所有步驟、所需資源、關聯的運維動作以可程式設計的方式定義成一個 DAG(有向無環圖),并以此作為使用者最終的傳遞計劃。這使得 KubeVela 的傳遞流水線不僅使用簡單、擴充性極強,也更符合現代 GitOps 應用傳遞的趨勢與要求。
  • 基礎設施無關 - 在 1.1 版本中,KubeVela 完成了 100% 的“控制平面化”。這意味着它本身成為了一個運作在管控叢集中的、完全與應用運作基礎設施無關的傳遞控制平面。這種“使用 Kubernetes 作為管控平面、面向任何基礎設施進行應用傳遞與管理”的新架構,使得 KubeVela 可以按照使用者定義的工作流與傳遞政策,面向任何環境傳遞和管理任意類型的應用元件,包括:容器、雲函數、資料庫、雲服務、虛拟機執行個體等等。

KubeVela 1.1 介紹

自 Kubevela 1.0 版本釋出以來,KubeVela 社群發展非常迅速,截止目前已經有超過 100+ 名開發者參與貢獻,而且就在上個月,KubeVela 和 OAM 項目也已經整體捐贈給了 CNCF 基金會進行托管。在 1.1 版本中,KubeVela 更加聚焦面向混合環境的應用傳遞流程,帶來了多叢集傳遞、傳遞流程定義、灰階釋出、公有雲資源接入等多個開箱即用的能力和更加友好的使用者體驗。這其中,有兩個核心能力值得特别關注:

  • 天然支援多環境、多叢集應用傳遞:Kubevela 将底層環境的基礎設施進行了面向應用的标準化抽象,涵蓋了傳遞制品、算力(基礎計算、AI計算、雲邊協同計算)、運維特征(監控、流量治理、日志收集等)等多個次元。使用者能夠非常友善的将應用描述跟不同的待傳遞環境(叢集)進行比對、定義不同環境下的配置 Patch,進而把應用差異化地傳遞到不同環境或者叢集當中。
  • 天然支援聲明式傳遞工作流:衆所周知,Kubernetes 的資源模型是以終态來維護的,但是實際的應用傳遞場景,卻往往是一個面向過程的系列操作(比如:聲明元件 A - 部署元件 A 到測試叢集 - 切 50% 流量到元件 A - 運作測試 - 釋出到生成叢集等等)。是以在社群中,使用者希望簡單、透明的控制應用傳遞流程的訴求非常強烈,但往往又不希望是以引入一套全新的、完整的 CI/CD 系統。為此,KubeVela 1.1 在應用模型中增加了 Workflow 語義來精細化的描述整個應用傳遞工作流,并且内置就提供“人工審批”、“復原”、“資料傳遞”、“Slack/釘釘通知”等多個工作流步驟(Step)。更重要的是,這種實作在應用模型層的聲明式 Workflow  天然具備被內建能力,可以非常自然的同現有 CI/CD 系統或者 GitOps 工具通過擴充的方式做內建,而不需要使用者在取舍間痛苦。

正是通過上述設計,KubeVela 可以幫助你從“靜态配置、模闆、膠水代碼”的初級階段,直接更新至“自動化、聲明式、統一模型、天然面向多環境”的下一代以工作流為核心的傳遞體驗當中。

KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

基于上述能力,使用者現在可以通過 KubeVela 非常輕松的處理以下場景:

多環境、多叢集應用傳遞

面向 Kubernetes 的多環境、多叢集傳遞已是一個标準性需求。您或許是需要環境隔離,開發、預發和生産三套叢集;或許是需要傳遞不同的客戶,每個客戶獨立一套叢集;或許是需要傳遞到不同區域,在北京、廣州多套叢集;又或許您業務規模大,單個 Kubernetes 叢集無法滿足您的資源需求。從 1.1 版本開始,KubeVela 不僅實作了多叢集的應用傳遞,并且既可以獨立工作直接納管多個叢集,也可以內建 OCM、Karmada 等各類多叢集管理工具來進行更複雜的傳遞動作。

KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

多叢集應用釋出Demo(結合Workflow)

在上述例子中,我們就将一個應用差異化的傳遞到了不同的叢集環境中。這種“傳遞差異”在 KubeVela 中屬于傳遞政策(Policy)的一種,它可以是環境配置差異、元件數量差異等等。值得一提的是,KubeVela 支援 Kustomize 風格的 Patch 來定義這種差異,但又不需要使用者學習任何 Kustomize 相關的知識。在多叢集傳遞政策的基礎上,使用者還可以通過定義 Workflow 來控制傳遞到不同叢集的順序、條件等工作流步驟。

進一步嘗試多叢集應用傳遞,請參考最佳實踐文檔。

後續版本中,KubeVela 在多叢集傳遞方面會提供全局流量分發、多叢集自動排程政策、多叢集灰階釋出等更多進階特性特性。

定義傳遞工作流(Workflow)

Workflow 的背景前面已經提到過,而它的具體使用場景則很多,比如:在多環境應用傳遞場景中,使用者可以定義不同的環境傳遞的順序和前置條件;再例如最簡單的需求,部署完成後需要通知開發者;再例如我們需要控制灰階釋出的程序,流量切換的比例,再例如我們需要應用部署完成後執行E2E測試等。KubeVela 的工作流是面向持續傳遞(CD)過程的,同時也是聲明式的,是以它既可以作為 CD 系統直接同 CI 系統(比如 Jenkins 等)對接,也可以嵌入到現有 CI/CD 體系中作為增強和補充,落地方式非常靈活。

在模型上,Workflow 是由一系列 Step 組成的,而在實作上,每一個 Step 則是一個獨立的能力子產品,由其具體的類型和參數來決定其具體步驟的能力。在 1.1 版本中,KubeVela 内置的 Step 已經比較豐富,歡迎大家試用、回報。并且,Step 非常容易擴充,也能夠讓大家去對接已有的平台能力,做到無縫遷移。

連接配接 service mesh 提供灰階釋出等進階運維操作

通過統一的應用模型內建各種不同的底層能力,依然是 KubeVela 最大的亮點之一。具體來說,KubeVela 通過 OAM 模型可以使得使用者不需要任何“髒亂差”的膠水代碼或者腳本就可以同任何雲原生技術或工具(比如 Service Mesh)實作內建,進而為傳遞過程帶來更多的雲原生應用運維能力。在 1.1 版本中,KubeVela 已經内置了與 Istio 內建的案例。系統管理者可以通過 KubeVela 的插件管理機制便捷的啟用 Istio 插件 。KubeVela 則負責将 Istio 的能力進行封裝和抽象後傳遞給使用者使用,使得使用者無需成為 Istio 專家就可以直接使用這個金絲雀釋出的場景(KubeVela 會為使用者提供一個封裝好的 Rollout 運維特征)。這種體驗開發者來說是相當友好的,他既無需花費大量的時間去學習和掌握Istio的使用和配置,也無需關注 Istio 體系和各種雲上托管版 Service Mesh 的差異,徹底解耦廠商鎖定。

KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

應用漸進式釋出Demo(結合Workflow)

您可以參考 Rollout Demo 實作圖示效果,或參考最佳實踐 基于 Istio 的漸進式釋出,體驗完整的微服務漸進式釋出和復原。

以應用為中心的雲資源傳遞

雲廠商資源已經成為大多數應用開發者生産業務會采用的計算資源,它包括了基礎設施、SaaS 服務、中間件服務、托管服務等。對此,KubeVela 的設計是從“以應用為中心”的視角出發,幫助開發者以完全 Serverless 的方式更好、更友善的管理雲資源,而不是疲于應付各種不同的雲産品和控制台。在實作上,KubeVela 内置內建了 Terraform 來作為雲資源的編排工具,并且能夠以統一的應用模型支援各個雲廠商上百種不同類型雲服務的部署、綁定和管理。

在使用上,我們目前将雲資源分為以下三類:

  • 作為元件:比如資料庫、中間件、SaaS 服務等。比如 KubeVela 中的 Alibaba-RDS服務就屬于這種。
  • 作為運維特征:比如日志分析、監控可視化、監控報警等服務。
  • 作為應用運作基礎設施:比如 Kubernetes 托管叢集、SLB 負載均衡、NAS檔案存儲服務等。

在後續的版本,KubeVela 會進一步增加更加豐富的雲服務使用場景,對各個雲廠商分散的資源和計算能力進行有效整合,降低開發者的使用門檻和服務觸達路徑,實作資源的複用和有效、安全的回收機制,降低使用者費用。KubeVela 的 Terraform 雲服務管理是目前社群中非常火熱的一個元件,有大量來自北美、歐洲的貢獻者參與其中,非常歡迎大家試用、貢獻和提出需求。

更容易落地的 GitOps 持續傳遞實踐

KubeVela 作為一個聲明式的應用傳遞控制平面,天然就可以以 GitOps 的方式進行使用(可單獨使用,也可配合 ArgoCD 等工具),并且能夠為 GitOps 場景提供更多端到端的能力和增強、幫助 GitOps 理念以更加親民和解決實際問題的方式在企業中落地。這些能力包括:

  • 定義應用傳遞工作流(CD 流水線)
    • 即:KubeVela 支援在 GitOps 模式中描述過程式的應用傳遞流程,而不隻是簡單的聲明終态;
  • 處理部署過程中的各種依賴關系和拓撲結構;
  • 在現有各種 GitOps 工具的語義之上提供統一的上層抽象,簡化應用傳遞與管理過程;
  • 統一進行雲服務的聲明、部署和服務綁定;
  • 提供開箱即用的傳遞政策(金絲雀、藍綠釋出等);
  • 提供開箱即用的混合環境/多叢集部署政策(放置規則、叢集過濾規則、跨環境 Promotion 等);
  • 在多環境傳遞中提供 Kustomize 風格的 Patch 來描述部署差異,而使用者無需學習任何 Kustomize 本身的細節;
  • …… 等等。

使用 KubeVela 踐行 GitOps 理念,請參考 GitOps 最佳實踐。

Kubevela 社群與生态

KubeVela 是一個從第一天就誕生在雲原生社群的開源項目。截止目前,KubeVela 現已被 Salesforce、位元組跳動、騰訊、網易遊戲等 35+ 家不同行業的領先企業應用在實際生産環境,幫助他們在不同場景下實作更高效的雲原生應用的傳遞和管理。而 KubeVela 在社群使用者中的大規模實踐,也正在促進 OAM 成為混合雲/多雲/分布式雲領域應用傳遞的事實标準,并在微軟、Oracle Cloud 等多家國際廠商中被采用。近日,以 OAM 模型為核心的《雲計算開放應用架構》标準檔案也已經由阿裡雲計算有限公司、中國資訊通信研究院等 10 餘家機關聯合發起并在“雲原生産業大會”現場釋出。

在未來,在雲原生社群和 CNCF 應用傳遞領域工作組(TAG App Delivery)的共同推動下,KubeVela 将繼續在傳遞定義标準化、運維能力多樣化、管理體系生态化三個方面發展,真正實作讓混合環境下的應用傳遞就像我們今天使用 App Store 一樣簡單。我們看到開源社群正在圍繞 KubeVela 的傳遞模型提出更多标準化元件、運維特征、插件、傳遞 Step 等能力,也非常歡迎新老社群使用者前往:

https://github.com/oam-dev/kubevela/issues/1662

進行登記、讓社群聽到每一位參與者的聲音。

後續版本規劃

打造天然面向混合環境的企業應用作業系統、讓開發者享受傳遞應用的過程,這是 Kubevela 項目的目标和願景:

  • 1.0 版本,KubeVela 實作了基礎的應用傳遞核心模型,解決了”傳遞一切“的關鍵能力問題,打造了可程式設計的應用傳遞和管理引擎。
  • 1.1 版本,KubeVela 進一步完善了面向多環境應用傳遞的能力集和工作流,并且讓使用者可以通過指令行進行完整體驗,并且上線了完整的中文文檔。

而在接下來的 1.2 版本,KubeVela 将帶來以應用為中心的控制台 UI,實作便捷的企業應用組裝、分發、傳遞流程,提供給開發者更簡單的應用傳遞體驗,同時覆寫邊緣應用傳遞等更多的使用場景。

KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

更多項目 Roadmap 資訊,詳見 Kubevela RoadMap

參考資訊

立即安裝使用,請參考文内相關連結中的【安裝指南】

您可以通過如下材料了解更多關于 KubeVela 以及 OAM 項目的細節:

  • 項目代碼庫: https://github.com/oam-dev/kubevela 歡迎 Star/Watch/Fork!
  • 項目官方首頁與文檔: https://kubevela.io ,從 1.1 版本開始,已提供中文、英文文檔,更多語言文檔歡迎開發者進行翻譯。
  • 項目釘釘群:23310022;Slack:CNCF #kubevela Channel
  • 加入微信群:請先添加以下 maintainer 微信号,表明進入KubeVela使用者群:
KubeVela 1.1 釋出,開啟混合環境應用傳遞新裡程碑KubeVela 1.1 介紹Kubevela 社群與生态後續版本規劃參考資訊

文内相關連結:

1)最佳實踐文檔:

https://kubevela.io/docs/case-studies/multi-cluster/

2)Rollout Demo:

https://github.com/oamdev/kubevela/tree/master/docs/examples/workflow/canary-rollout

3)基于 Istio 的漸進式釋出:

https://kubevela.io/docs/case-studies/canary-blue-green/

4)GitOps 最佳實踐:

https://kubevela.io/docs/case-studies/gitops/

5)Kubevela RoadMap:

https://kubevela.io/docs/roadmap/README/

6)安裝指南:

https://kubevela.io/docs/install/

戳連結(

),檢視 KubeVela 項目官方首頁與文檔!!