日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

阿里云携手微软与 Crossplane 社区发布 OAM Kubernetes 标准实现与核心依赖库

發(fā)布時(shí)間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云携手微软与 Crossplane 社区发布 OAM Kubernetes 标准实现与核心依赖库 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者 | 張磊 阿里云高級(jí)技術(shù)專家、CNCF 官方大使,CNCF 應(yīng)用交付領(lǐng)域 co-chair,Kubernetes 項(xiàng)目資深維護(hù)者

美國(guó)西部時(shí)間 2020 年 5 月 27 日,阿里云和微軟云共同宣布,Open Application Model (OAM) 社區(qū)攜手知名混合云管理項(xiàng)目 Crossplane,聯(lián)合發(fā)布了 OAM 在 Kubernetes 平臺(tái)上的標(biāo)準(zhǔn)實(shí)現(xiàn)與核心依賴庫(kù)項(xiàng)目。新版的 OAM 核心依賴庫(kù)以 Go 語(yǔ)言編寫(xiě),由來(lái)自阿里、微軟和 Crossplane 三方的工程師共同維護(hù),能夠以 Kubernetes 插件或者 Go 語(yǔ)言依賴庫(kù)的方式被社區(qū)所使用。在內(nèi)置了 OAM 核心依賴庫(kù)之后,Crossplane 項(xiàng)目也實(shí)現(xiàn)了“華麗升級(jí)”,從原先的混合云管理項(xiàng)目一躍成為了一個(gè)能夠面向所有云環(huán)境、提供“應(yīng)用 + 云服務(wù)”一站式管理與交付體驗(yàn)的 OAM 標(biāo)準(zhǔn)實(shí)現(xiàn)平臺(tái)。

  • OAM 核心依賴庫(kù)項(xiàng)目:https://github.com/crossplane/oam-kubernetes-runtime
  • Crossplane 項(xiàng)目:https://github.com/crossplane/crossplane

OAM 是阿里云與微軟云在 2019 年末聯(lián)合推出的標(biāo)準(zhǔn)化云原生應(yīng)用管理模型。相比于傳統(tǒng) PaaS 封閉、不能同“以 Operator 為基礎(chǔ)的云原生生態(tài)”銜接的現(xiàn)狀,基于 OAM 和 Kubernetes 構(gòu)建的現(xiàn)代云原生應(yīng)用管理平臺(tái),本質(zhì)上是一個(gè)“以應(yīng)用為中心”的 Kubernetes ,保證了這個(gè)應(yīng)用平臺(tái)在能夠無(wú)縫接入整個(gè)云原生生態(tài)。同時(shí),OAM 可以進(jìn)一步屏蔽掉容器基礎(chǔ)設(shè)施的復(fù)雜性和差異性,為平臺(tái)的使用者帶來(lái)低心智負(fù)擔(dān)的、標(biāo)準(zhǔn)化的、一致的應(yīng)用管理與交付體驗(yàn)。

OAM 項(xiàng)目:https://github.com/oam-dev/spec

“Cloud 2.0”時(shí)代的應(yīng)用定義模型

應(yīng)用容器技術(shù)自誕生開(kāi)始,就以“徹底改變了軟件打包與分發(fā)方式”的魅力迅速征服了幾乎所有的云廠商與數(shù)據(jù)中心。 不過(guò),軟件打包與分發(fā)方式的革新,并沒(méi)有能夠讓軟件本身的定義與描述發(fā)生本質(zhì)的變化,基于 K8s 的應(yīng)用管理體驗(yàn),也沒(méi)有讓業(yè)務(wù)研發(fā)與運(yùn)維的工作變得更簡(jiǎn)單。

實(shí)際上,Kubernetes 帶來(lái)的云原生技術(shù)革命,在于實(shí)現(xiàn)了基礎(chǔ)設(shè)施層的標(biāo)準(zhǔn)化和抽象,但這一層抽象距離業(yè)務(wù)研發(fā)與運(yùn)維還是太過(guò)遙遠(yuǎn)了。一個(gè)最典型的例子,直到今天,Kubernetes 里面始終都沒(méi)有“應(yīng)用”這個(gè)概念,它提供的是更細(xì)粒度的“工作負(fù)載”原語(yǔ),比如 Deployment 或者 DaemonSet。而在實(shí)際環(huán)境中,一個(gè)應(yīng)用往往是由一系列獨(dú)立組件的組合,比如一個(gè)“PHP 應(yīng)用容器”和一個(gè)“數(shù)據(jù)庫(kù)實(shí)例”組成的電商網(wǎng)站;一個(gè)“參數(shù)服務(wù)節(jié)點(diǎn)”和一個(gè)“工作節(jié)點(diǎn)”組成的機(jī)器學(xué)習(xí)訓(xùn)練任務(wù);一個(gè)由“Deployment + StatefulSet + HPA + Service + Ingress”組成的** Kubernetes 應(yīng)用**。

而 OAM 項(xiàng)目,是一個(gè)基于 Kubernetes API 資源模型(Kubernetes Resource Model)的標(biāo)準(zhǔn)應(yīng)用定義規(guī)范。在 OAM 中,它強(qiáng)調(diào)一個(gè)現(xiàn)代應(yīng)用是多個(gè)組件的集合,而非一個(gè)簡(jiǎn)單的工作負(fù)載或者 K8s Operator。所以在 OAM 的語(yǔ)境中,一個(gè) PHP 容器和它所依賴的數(shù)據(jù)庫(kù),以及它所需要使用的各種云服務(wù),都是一個(gè)“電商網(wǎng)站”應(yīng)用的組成部分。更進(jìn)一步的,OAM 把這個(gè)應(yīng)用所需的“運(yùn)維策略”也認(rèn)為是一個(gè)應(yīng)用的一部分,比如這個(gè) PHP 容器所需的 HPA(水平自動(dòng)擴(kuò)展策略):

與此同時(shí),OAM 模型依據(jù)“關(guān)注點(diǎn)分離”的思想,對(duì)上述應(yīng)用的組成部分進(jìn)行了分類。其中,應(yīng)用研發(fā)所關(guān)注的部分被稱作“Component”,應(yīng)用運(yùn)維所關(guān)注的運(yùn)維策略等被稱作“Traits” 和 “Scope”,如下所示:

自發(fā)布 6 個(gè)月以來(lái),OAM 模型正在迅速成為了阿里和微軟內(nèi)部進(jìn)行應(yīng)用定義的事實(shí)標(biāo)準(zhǔn),并且已經(jīng)成為了阿里云企業(yè)級(jí)分布式應(yīng)用服務(wù) EDAS 等云端應(yīng)用管理產(chǎn)品的核心架構(gòu)。在 2020 年 4 月,國(guó)外知名技術(shù)媒體 TheNewStack 提出了一個(gè)《為什么 Kubernetes 時(shí)代的應(yīng)用如此與眾不同》的疑問(wèn),引發(fā)了巨大的反響。TheNewStack 在文中把 OAM 稱作“Cloud 2.0 時(shí)代的應(yīng)用定義模型”,并在最后講到:

“OAM 的核心思想是,業(yè)務(wù)研發(fā)人員的工作以從編寫(xiě)源代碼開(kāi)始,到構(gòu)建完容器鏡像結(jié)束。而應(yīng)用運(yùn)維人員或者應(yīng)用管理平臺(tái)會(huì)負(fù)責(zé)將這個(gè)應(yīng)用所需的所有組件配置和部署為一個(gè)完整的應(yīng)用程序。而我們已經(jīng)能夠看到,在以 Kubernetes 為代表的 Cloud 2.0 時(shí)代,一個(gè)現(xiàn)代化應(yīng)用程序是由許多對(duì)象組成的,其中一些對(duì)象已經(jīng)超出了業(yè)務(wù)研發(fā)人員的認(rèn)知范圍。 這可能是互聯(lián)網(wǎng)歷史上第一次研發(fā)人員不再完全控制自己開(kāi)發(fā)制品的完整生命周期。”

解讀:OAM Kubernetes 核心依賴庫(kù)

社區(qū)在落地 OAM 模型的過(guò)程中,提出了很多關(guān)于 OAM 統(tǒng)一實(shí)現(xiàn)庫(kù)的訴求。一方面,一個(gè)統(tǒng)一的實(shí)現(xiàn)庫(kù)能夠更好的對(duì)規(guī)范進(jìn)行詮釋,增強(qiáng)復(fù)用性;另一方面,大量共性需求比如依賴管理、參數(shù)傳遞、沖突管理、編排等,也可以在這個(gè)核心依賴庫(kù)構(gòu)建。

所以在本次發(fā)布中,三方工程師使用 Go 語(yǔ)言開(kāi)發(fā)了一個(gè) OAM Kubernetes 核心依賴庫(kù)。這個(gè)項(xiàng)目的名字叫做 oam-kubernetes-runtime ,它的主要功能包括:

  • 穩(wěn)定且統(tǒng)一的 OAM 內(nèi)核:所有基于 OAM 的應(yīng)用交付平臺(tái)的構(gòu)建者都將基于這個(gè)依賴庫(kù)開(kāi)始構(gòu)建,OAM 內(nèi)核將會(huì)是統(tǒng)一的。同時(shí)該依賴庫(kù)也由三方的頂級(jí)工程師共同維護(hù),確保其具備生產(chǎn)級(jí)的穩(wěn)定性。

  • 可漂移的 Workload/Trait 能力:基于這個(gè)依賴庫(kù)構(gòu)建的 OAM 平臺(tái),上面新增的所有 Workload 和 Trait,都可以復(fù)用和漂移到其他同樣基于該依賴庫(kù)的平臺(tái),像插件一樣可以輕松插拔,不需要做代碼的變動(dòng)。

  • 通用邏輯內(nèi)置:所有公共的邏輯,如依賴管理等,也將內(nèi)置到這個(gè)依賴庫(kù)中,使得大家使用 OAM 基于 K8s 構(gòu)建以“應(yīng)用為中心”的管理平臺(tái)更加容易。

  • **而 OAM 核心依賴庫(kù)最大的使用場(chǎng)景,就是構(gòu)建開(kāi)放、用戶友好、標(biāo)準(zhǔn)化的應(yīng)用管理平臺(tái)。**這樣一個(gè)管理平臺(tái)的核心架構(gòu)如下圖所示。

    在這樣的平臺(tái)中,平臺(tái)構(gòu)建者可以基于 OAM 模塊化添加 Workload 和 Trait,而這些模塊也可以在不同的 OAM 平臺(tái)復(fù)用。比如,Workload 可以包括函數(shù)、容器、云資源、虛擬機(jī)等多種不同形態(tài)的工作負(fù)載;Trait 則可以包含流量管理、發(fā)布策略、彈性策略、可觀測(cè)性策略等多種不同的運(yùn)維能力。最終,平臺(tái)本身可以通過(guò)不同 Workload 和 Trait 組合,來(lái)對(duì)最終用戶提供差異化的場(chǎng)景。

    oam-kubernetes-runtime 使用起來(lái)非常便利,可以直接按照樣例代碼中所描述的那樣,通過(guò)一個(gè) main 函數(shù)把這個(gè)依賴庫(kù)運(yùn)行起來(lái)。OAM Kubernetes 核心依賴庫(kù)本身是一個(gè) Kubernetes Controller ,通過(guò)響應(yīng) ApplicationConfiguration 的變化來(lái)創(chuàng)建和管理 Workload 和 Trait。具體來(lái)說(shuō),OAM Kubernetes 核心依賴庫(kù)會(huì)提供兩個(gè)非常重要的功能:

    功能一:無(wú)縫對(duì)接現(xiàn)有 K8s API 資源

    oam-kubernetes-runtime 支持將任何現(xiàn)有的 CRD 被聲明為 Workload 或者 Trait 而不需要做任何改動(dòng)。當(dāng)然,這也意味著任何 K8s 原生的 API 資源也可以被聲明為 Workload 或者 Trait。通過(guò)這種設(shè)計(jì),現(xiàn)有 Kubernetes 集群里的所有能力進(jìn)行 OAM 化變得就”易如反掌“了。這也使得 OAM 成為了結(jié)構(gòu)化管理當(dāng)前集群中的各種 Operator 的不二之選。

    功能二:Workload 與 Trait 標(biāo)準(zhǔn)化交互機(jī)制

    前面的例子告訴我們,OAM 可以模塊式的接入、部署和管理任何 Kubernetes 工作負(fù)載和運(yùn)維能力。而這些工作負(fù)載和運(yùn)維能力之間的交互,則需要通過(guò)第二個(gè)功能來(lái)實(shí)現(xiàn)標(biāo)準(zhǔn)化和統(tǒng)一化。

    這個(gè)交互關(guān)系在 Kubernetes 里非常常見(jiàn),比如一個(gè) Deployment 和 HPA(自動(dòng)水平擴(kuò)展控制器) 的協(xié)作關(guān)系。這里 Deployment 在 OAM 模型中就屬于 Workload,而 HPA 則屬于 Trait。所以說(shuō)在 OAM 當(dāng)中,一個(gè) ApplicationConfiguration 里引用的 Workload 和 Trait 也必須通過(guò)協(xié)作的方式來(lái)操作具體的 k8s 資源。舉個(gè)例子,一個(gè) HPA Trait 該如何去水平擴(kuò)展上述 OpenFaaS 的 Function Workload 呢?這個(gè)協(xié)作關(guān)系就得依靠 OAM 插件來(lái)去管理了。

    在 OAM Kubernetes 核心依賴庫(kù)中,它會(huì)通過(guò)一種叫做 DuckTyping (鴨子類型)的機(jī)制,在 Trait 對(duì)象上自動(dòng)記錄與之綁定的 Workload 關(guān)系,從而實(shí)現(xiàn)了工作負(fù)載(Workload)和運(yùn)維能力(Trait)之間的雙向記錄關(guān)系:

  • 給定任何一工作負(fù)載(Workload) ,系統(tǒng)可以直接獲取到同它綁定的所有運(yùn)維能力(Trait);

  • 給定任何一個(gè)運(yùn)維能力(Trait),系統(tǒng)可以直接獲取到它所要作用于的所有工作負(fù)載(Workload)。

  • 這種雙向記錄關(guān)系,對(duì)于在一個(gè)大規(guī)模的生產(chǎn)環(huán)境中保證運(yùn)維能力的可管理性、可發(fā)現(xiàn)性和應(yīng)用的穩(wěn)定性,是至關(guān)重要的。

    除此之外,OAM 社區(qū)還 Kubernetes 核心依賴庫(kù)中目前還有幾個(gè)非常重要的基礎(chǔ)功能同大家見(jiàn)面,包括:

    • Component 版本管理:對(duì)于任何一次 Component 的變更,OAM 平臺(tái)都可以記錄下來(lái)它對(duì)于的變更歷史,從而允許運(yùn)維通過(guò) Trait 來(lái)進(jìn)行回滾、藍(lán)綠發(fā)布等運(yùn)維操作。

    • Component 間依賴關(guān)系與參數(shù)傳遞:該功能將解決大家亟需的組件間依賴問(wèn)題,包括 Component 之間的依賴和傳輸傳遞,以及 Trait 與 Component 之間的依賴和參數(shù)傳遞。

    • Component 運(yùn)維策略:該功能將允許研發(fā)在 Component 中聲明對(duì)運(yùn)維能力的訴求,指導(dǎo)運(yùn)維人員或者系統(tǒng)給這個(gè) Component 綁定和配置合理的運(yùn)維能力。

    OAM + Crossplane:定義云原生應(yīng)用的下一階段

    可能大家會(huì)有這樣一個(gè)疑問(wèn),為什么這一次 OAM 會(huì)選擇 Crossplane 社區(qū)來(lái)作為 OAM Kubernetes 核心依賴庫(kù)的合作團(tuán)隊(duì)呢?

    我們知道,OAM 的主要思想是以 Kubernetes API 資源模型為核心、以結(jié)構(gòu)化和平臺(tái)無(wú)關(guān)的方式,對(duì)應(yīng)用進(jìn)行定義和管理。這里的“應(yīng)用”,既包括待運(yùn)行的程序本身(比如一個(gè)容器),也包括它需要的所有其他依賴(比如云資源和運(yùn)維能力的描述)。而如果你熟悉 Kubernetes 生態(tài)的話,就會(huì)知道這種通過(guò) Kubernetes API 模型“定義一切”的思想,也正是 Crossplane 項(xiàng)目的設(shè)計(jì)理念。

    只不過(guò),作為 Kubernetes 混合云場(chǎng)景中的佼佼者,Crossplane 項(xiàng)目以前的關(guān)注點(diǎn)是以結(jié)構(gòu)化和平臺(tái)無(wú)關(guān)的方式對(duì)云服務(wù)進(jìn)行定義和管理而已。而在經(jīng)過(guò) OAM 化之后,今天的 Crossplane 項(xiàng)目,已經(jīng)成為了 OAM 的標(biāo)準(zhǔn)實(shí)現(xiàn),使用 OAM 作為其應(yīng)用定義的入口,并且直接通過(guò) OAM Component 的方式來(lái)為使用者暴露出平臺(tái)無(wú)關(guān)的云服務(wù)定義。這樣,一個(gè)符合 OAM 規(guī)范的待運(yùn)行程序、運(yùn)維能力和它所依賴的云服務(wù),就可以組成一個(gè)整體,在不同的平臺(tái)之間無(wú)縫漂移了。

    這種平臺(tái)無(wú)關(guān)的應(yīng)用定義范式,使得應(yīng)用研發(fā)人員只需要通過(guò) OAM 規(guī)范來(lái)描述他們的應(yīng)用程序,那么該應(yīng)用程序就可以在任何 Kubernetes 群集或者 Serverless 應(yīng)用平臺(tái)甚至邊緣環(huán)境上運(yùn)行而無(wú)需對(duì)應(yīng)用描述做任何修改。 這種體驗(yàn),一直是阿里云和微軟云在努力的構(gòu)建“云、邊、端”一致性體驗(yàn)的核心思想。 而此次 OAM 與 Crossplane 的深度協(xié)作,也終于將標(biāo)準(zhǔn)應(yīng)用定義和標(biāo)準(zhǔn)化的云服務(wù)管理能力統(tǒng)一起來(lái),從而使“云端應(yīng)用交付”的故事真正成為了現(xiàn)實(shí)。

    在未來(lái),這兩個(gè)社區(qū)將進(jìn)一步緊密協(xié)作,在 OAM Kubernetes 標(biāo)準(zhǔn)實(shí)現(xiàn)中提供更好的 Component 和 Trait 可移植性、互操作性,在 OAM 生態(tài)中上線更加豐富的應(yīng)用運(yùn)維能力,共同建立一個(gè)專注于標(biāo)準(zhǔn)應(yīng)用程序與基礎(chǔ)設(shè)施管理的開(kāi)放社區(qū)。

    “阿里巴巴云原生關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢(shì)、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開(kāi)發(fā)者的公眾號(hào)。”

    總結(jié)

    以上是生活随笔為你收集整理的阿里云携手微软与 Crossplane 社区发布 OAM Kubernetes 标准实现与核心依赖库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。