Rainbond V5.12 版本發布,支持平台級插件和能力擴展

rainbond開源 發佈 2024-04-09T15:26:46.020598+00:00

在這個版本中,我們主要支持了平台級的插件和能力擴展。希望能通過外部插件擴展平台能力,實現微內核的效果;同時以後將會繼續精簡安裝,能讓用戶按需擴展平台功能。在 Kubernetes 兼容性這方面,我們也通過平台級的能力將對應資源暴露出來,交給用戶處理。

在這個版本中,我們主要支持了平台級的插件和能力擴展。希望能通過外部插件擴展平台能力,實現微內核的效果;同時以後將會繼續精簡安裝,能讓用戶按需擴展平台功能。在 Kubernetes 兼容性這方面,我們也通過平台級的能力將對應資源暴露出來,交給用戶處理。

概述

在之前的版本中,用戶一開始會依賴於平台的功能簡化管理,但到了高級使用場景,就有可能遇到平台當前已有的功能無法滿足用戶需求,此時給用戶擴展平台能力的機制就非常重要。如果為了擴展平台功能,升級整個底層平台,將會面臨複雜性和穩定性的挑戰。

同時由於 Rainbond 主要在應用這一層進行抽象,所以對於 Kubernetes 中集群所提供的一些能力,並不能全部在平台上進行展示,如 StorageClass、GatewayAPI 等能力也無法在平台上直接進行管理。為了給用戶提供更高級的功能,在之前的版本中,我們在 Kubernetes 生態的兼容性上做了許多工作,如應用級別的 K8s 資源創建、組件級的 K8s 屬性配置等。

而在 5.12 版本以後,我們將通過 Rainbond 的插件體系擴展平台的功能。在這裡有以下兩個概念,平台級的插件和能力。

插件:

插件在 Rainbond 中其實對應的是應用市場中的應用,但是該應用包含插件的元數據定義(通過 CRD 資源定義),這樣當用戶安裝該插件時,可以在平台管理-擴展-插件中獲取到該插件的信息,並可以快速跳轉到該應用進行管理。這樣可以利用已有的應用商店體系,實現平台插件體系的分發和管理。

通常來說,一個插件包含以下內容:

  1. 一個能正常運行的應用:這個應用是插件的完整實現,即使單獨部署也可以正常進行工作。
  2. 插件的描述文件(CRD):這個文件主要定義了插件的基本信息、如名稱、描述、版本、作者等。
  3. 能力的描述文件(CRD):這個文件主要定義了該插件可以提供哪些能力,在這個 K8s 集群中所有該能力的實現都會被展示出來。如 ServiceMesh 類型的插件提供了應用治理的能力,那麼在安裝這類插件時,將會列出其能夠提供的能力資源。

這樣安裝插件後,我們就可以一目了然的知道當前 k8s 集群提供的能力,比如支持應用治理的各類 ServiceMesh 框架、不同的 GatewayAPI 實現,不同的存儲能力等等。

能力:

能力擴展主要是將 Kubernetes 底層所提供的一些能力展示給用戶。通過 CRD 資源定義,將 Kubernetes 集群中一些資源同步到平台內,可以快速預覽和編輯這些資源。如定義集群中的 storageClass 作為存儲能力的展現,那麼就可以在這裡預覽到所有的 storageClass 資源並進行操作。

而插件中則可以包含能力這種資源的定義,這樣在安裝插件時,即可同時暴露出該插件可提供的能力,由用戶處理。如下圖所示:

為什麼使用插件

對於用戶而言,安裝插件與安裝應用的體驗完全一致。那為什麼還要使用插件呢?主要可以從以下幾點來看:

  1. 插件可以實現全局的管理,對於企業管理員而言,更關注於平台提供了哪些能力,這些都可以一目了然。而僅僅使用應用時,管理員無法對這些提供能力的應用做統一管理。
  2. 插件可以按需安裝,與平台解耦,不會與平台一起安裝,這樣不需要該插件時則不會占用資源。
  3. 利用應用商店的分發體系,可以單獨升級插件,Bug 修復也會更及時。
  4. 不同的插件都可以為平台的用戶提供不同的能力,如 GatewayAPI 插件,可以為平台提供額外網關的能力;各類 ServiceMesh 插件,可以為平台提供應用治理模式注入的能力;雲廠商的各類雲服務,可以為平台提供存儲的能力等等。

後續我們也會繼續發布一些平台級的插件和能力,通過應用市場進行分發,供用戶使用。目前已有Rainbond Pipeline 插件可以豐富平台的 CI 流程,具體使用參考文檔:Pipeline 使用文檔

詳細變更點

新增功能

  • 支持平台級插件和能力擴展 #1480
  • 新增流水線插件,擴充平台 CI 能力 #1180

優化功能

  • 支持通過 OpenAPI 創建組件 #1266
  • 優化 Helm 倉庫安裝應用邏輯 #1570

BUG 修復

  • 修復Gitlab OAuth 倉庫最多只顯示20個倉庫的問題 #1560
  • 修復團隊頁面排序問題 #1571 #1274
  • 修復 DockerCompose 放棄創建後,應用名重複的問題 #1573

感謝

流水線插件由 拓維信息 提供,感謝 丁鵬、劉進文、朱智陽 在社區中的貢獻,才能使產品變得更好,我們歡迎大家任何形式的參與和貢獻。

關鍵字: