IBM加入Crossplane社群
今天,IBM高興地宣布加入Crossplane社群,並發布了一個實驗性的IBM Cloud的Crossplane提供者版本。這使得能夠從Crossplane利用IBM Cloud管理的資源。
什麼是Crossplane?
Crossplane是一個雲原生計算基金會(CNCF)沙箱項目,提供使用Kubernetes CRD管理基礎設施和資源(包括雲管理服務)的能力,並得到了包括微軟、阿里巴巴、GitLab和紅帽在內的多家主要廠商的貢獻和支持,以及兩年前創立Crossplane項目的Upbound。
其中一個獨特功能是能夠定義組合來代表諸如數據庫之類的資源,並支持一個或多個可插拔提供者部署和管理資源實例。
這使得創建在雲提供商之間可移植且仍然使用雲管理資源的應用成為可能:應用通過使用Crossplane組合CRD定義資源(例如PostgreSQL數據庫)的部署,然後該數據庫由配置的提供者創建和控制。
這一能力擴展了來自Kubernetes和OpenShift已有的混合多雲可移植性。您可以將相同的應用部署到亞馬遜AWS和IBM Cloud,分別使用亞馬遜關聯式數據庫服務和PostgreSQL數據庫服務。這一概念也擴展到混合雲場景,使用集群內提供者部署PostgreSQL的容器化實例。
混合多雲應用
混合多雲策略有潛力減少對單一供應商的依賴、降低服務中斷風險,並能夠更好地實現災難恢復,同時提供敏捷性、可擴展性和彈性等核心雲服務優勢。企業廣泛採取此種方法,35%的IT基礎設施支出用於私有雲,21%用於公共雲(IDC,2020年),且81%的企業與兩個或更多提供商合作(Gartner,2019年)。
然而,要充分實現混合多雲策略的潛力,需要應用的可移植性:
- 部署工作負載到多個雲中,以避免服務中斷並實現災難恢復
- 根據地理位置、安全性、合規性或數據治理要求放置工作負載
- 作為雲採用路線圖的一部分遷移工作負載
- 當前應用可移植性問題意味著“一旦應用在生產中部署並被業務採用,它們幾乎從未移動”(Gartner,2020年)。
雖然Kubernetes日益被視為容器化雲原生應用的普遍應用可移植性層,但額外的應用可移植性挑戰仍然存在。這是因為任何特定的雲平台都超出了Kubernetes本身。每個管理的Kubernetes服務由於其運行的基礎設施實現以及提供的特定於供應商的功能、服務和API而提供略有不同的風味。如無服務器功能、管理服務(例如,數據庫、數據存儲和消息服務)、負載均衡和代理服務、身份和訪問管理以及可觀察性等能力的使用,都增加了應用可移植性的摩擦和障礙。
Red Hat OpenShift的使用通過為Kubernetes和許多其他服務(如服務網格和無服務器)提供跨混合多雲部署的一致層解決了這些問題中的許多。Crossplane將這一範圍擴展到更廣泛的資源集合。
提升應用可移植性
Crossplane“為你的Kubernetes集群增加動力,使你能夠從kubectl配置和管理基礎設施、服務和應用”(Crossplane.io)。本質上,Crossplane提供了一個框架,用於發布Kubernetes CRD來管理基礎設施和資源。
對於管理服務,這使得可以發布一種組合資源類型,例如PostgreSQLInstance CRD,應用可以使用它來創建、配置和管理PostgreSQL數據庫的實例。那個PostgreSQLInstance資源是一個接口層,由一個或多個能夠管理提供PostgreSQL數據庫具體實現的基礎設施資源的提供者組成。這些具體實現可能是在集群內運行的管理服務,在亞馬遜AWS、微軟Azure、Google Cloud Platform、阿里巴巴雲,以及現在的IBM雲上運行。
雖然管理服務是提高應用可移植性的關鍵,但Crossplane可以用來部署和管理廣泛的資源,包括用來配置集群本身,例如在混合多雲管理場景中。
IBM雲供應商適用於Crossplane
IBM剛剛發布了一個IBM雲供應商的實驗性發布版適用於Crossplane。這提供了一套自定義資源定義(CRD)和控制器,以從Crossplane控制平面配置和管理IBM雲基礎設施和服務。
供應商目前提供以下功能:
- 從IBM雲目錄中配置和管理85+托管服務及其憑證
- 將現有的IBM雲服務導入供應商
- 使用Go模板為應用的要求塑造憑證。
- 在接下來的幾周內,我們將尋求通過對IBM雲服務的OpenAPI規格進行代碼生成,使用額外的IBM雲API包括IBM雲數據庫和IAM來增強供應商,並維持供應商的API兼容性。
訪問GitHub在Crossplane貢獻組織中找到IBM雲供應商。