精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

云原生下的灰度體系建設(shè)

云計算 云原生
本篇文章,我們將繼續(xù)為大家介紹 ASI SRE(ASI,Alibaba Serverless infrastructure,阿里巴巴針對云原生應(yīng)用設(shè)計的統(tǒng)一基礎(chǔ)設(shè)施) 是如何探索在 Kubernetes 體系下,建設(shè) ASI 自身基礎(chǔ)設(shè)施在大規(guī)模集群場景下的變更灰度能力的。

 [[399091]]

一周前,我們介紹了《面對大規(guī)模 K8s 集群,如何先于用戶發(fā)現(xiàn)問題》。

本篇文章,我們將繼續(xù)為大家介紹 ASI SRE(ASI,Alibaba Serverless infrastructure,阿里巴巴針對云原生應(yīng)用設(shè)計的統(tǒng)一基礎(chǔ)設(shè)施) 是如何探索在 Kubernetes 體系下,建設(shè) ASI 自身基礎(chǔ)設(shè)施在大規(guī)模集群場景下的變更灰度能力的。

我們面臨著什么

ASI 誕生于阿里巴巴集團(tuán)全面上云之際,承載著集團(tuán)大量基礎(chǔ)設(shè)施全面云原生化的同時,自身的架構(gòu)、形態(tài)也在不斷地演進(jìn)。

ASI 整體上主要采用 Kube-on-Kube 的架構(gòu),底層維護(hù)了一個核心的 Kubernetes 元集群,并在該集群部署各個租戶集群的 master 管控組件:apiserver、controller-manager、scheduler,以及 etcd。而在每個業(yè)務(wù)集群中,則部署著各類 controller、webhook 等 addon 組件,共同支撐 ASI 的各項能力。而在數(shù)據(jù)面組件層面,部分 ASI 組件以 DaemonSet 的形式部署在節(jié)點(diǎn)上,也有另一部分采用 RPM 包的部署形式。

同時,ASI 承載了集團(tuán)、售賣區(qū)場景下數(shù)百個集群,幾十萬的節(jié)點(diǎn)。即便在 ASI 建設(shè)初期,其管轄的節(jié)點(diǎn)也達(dá)到了數(shù)萬的級別。在 ASI 自身架構(gòu)快速發(fā)展的過程中,組件及線上變更相當(dāng)頻繁,早期時單日 ASI 的組件變更可以達(dá)到數(shù)百次。而 ASI 的核心基礎(chǔ)組件諸如 CNI 插件、CSI 插件、etcd、Pouch 等,無論任意之一的錯誤變更都可能會引起整個集群級別的故障,造成上層業(yè)務(wù)不可挽回的損失。

簡而言之,集群規(guī)模大、組件數(shù)量多,變更頻繁以及業(yè)務(wù)形態(tài)復(fù)雜是在 ASI,或其他 Kubernetes 基礎(chǔ)設(shè)施層建設(shè)灰度能力和變更系統(tǒng)的幾大嚴(yán)峻挑戰(zhàn)。當(dāng)時在阿里巴巴內(nèi)部,ASI/Sigma 已有數(shù)套現(xiàn)有的變更系統(tǒng),但都存在一定的局限性。

天基:具備通用的節(jié)點(diǎn)發(fā)布的能力,但不包括集群、節(jié)點(diǎn)集等 ASI 的元數(shù)據(jù)信息。UCP:早期 sigma 2.0 的發(fā)布平臺,年久失修。sigma-deploy:sigma 3.x 的發(fā)布平臺,以鏡像 patch 的形式更新 deployment/daemonset。asi-deploy:早期 ASI 的發(fā)布平臺,管理了 ASI 自身的組件,僅支持鏡像 patch,只針對 Aone 的 CI/CD 流水線做適配,以及支持在多個不同環(huán)境間灰度,但灰度粒度較粗。

由此,我們希望借鑒前面幾代 sigma/ASI 的發(fā)布平臺歷史,從變更時入手,以系統(tǒng)能力為主,再輔以流程規(guī)范,逐步構(gòu)建 ASI 體系下的灰度體系,建設(shè) Kubernetes 技術(shù)棧下的運(yùn)維變更平臺,保障數(shù)以千計的大規(guī)模集群的穩(wěn)定性。

預(yù)設(shè)和思路

ASI 自身架構(gòu)和形態(tài)的發(fā)展會極大地影響其自身的灰度體系建設(shè)方式,因此在 ASI 發(fā)展的早期,我們對 ASI 未來的形態(tài)做了如下大膽的預(yù)設(shè):

以 ACK 為底座:ACK(阿里云容器服務(wù))提供了云的各種能力,ASI 將基于復(fù)用這些云的能力,同時將阿里巴巴集團(tuán)內(nèi)積累的先進(jìn)經(jīng)驗反哺云。集群規(guī)模大:為提高集群資源利用率,ASI 將會以大集群的方式存在,單個集群提供公共資源池來承載多個二方租戶。集群數(shù)量多:ASI 不僅按 Region 維度進(jìn)行集群劃分,還會按照業(yè)務(wù)方等維度劃分獨(dú)立的集群。Addon 數(shù)量多:Kubernetes 體系是一個開放架構(gòu),會衍生出非常多 operator,而這些 operator 會和 ASI 核心組件一起共同對外提供各種能力。變更場景復(fù)雜:ASI 的組件變更場景將不止鏡像發(fā)布形式,Kubernetes 聲明式的對象生命周期管理注定了變更場景的復(fù)雜性。

基于以上幾個假設(shè),我們能夠總結(jié)在 ASI 建設(shè)初期,亟待解決的幾個問題:

如何在單個大規(guī)模集群中建設(shè)變更的灰度能力?如何在多個集群間建立規(guī)?;淖兏叶饶芰??在組件數(shù)量、種類眾多的情況下,如何保證進(jìn)行組件管理并保證組件每次的發(fā)布不會影響線上環(huán)境?

我們轉(zhuǎn)換一下視角,脫離集群的維度,嘗試從組件的角度來解決變更的復(fù)雜性。對于每個組件,它的生命周期可以大體劃分為需求和設(shè)計階段,研發(fā)階段和發(fā)布階段。對于每個階段我們都希望進(jìn)行規(guī)范化,并解決 Kubernetes 本身的特點(diǎn),將固定的規(guī)范落到系統(tǒng)中,以系統(tǒng)能力去保證灰度過程。

結(jié)合 ASI 的形態(tài)和變更場景的特殊性,我們從以下幾點(diǎn)思路出發(fā)去系統(tǒng)化建設(shè) ASI 的灰度體系:

需求和設(shè)計階段方案 TechReview組件上線變更會審組件研發(fā)階段標(biāo)準(zhǔn)化組件研發(fā)流程組件發(fā)布變更階段提供組件工作臺能力進(jìn)行組件的規(guī)?;芾斫ㄔO(shè) ASI 元數(shù)據(jù),細(xì)化灰度單元建設(shè) ASI 單集群、跨集群的灰度能力

灰度體系建設(shè)

1. 研發(fā)流程標(biāo)準(zhǔn)化

ASI 核心組件的研發(fā)流程可以總結(jié)為以下幾個流程:

針對 ASI 自身的核心組件,我們與質(zhì)量技術(shù)團(tuán)隊的同學(xué)共同建設(shè)了 ASI 組件的 e2e 測試流程。除了組件自身的單元測試、集成測試外,我們單獨(dú)搭建了單獨(dú)的 e2e 集群,用作常態(tài)化進(jìn)行的 ASI 整體的功能性驗證和 e2e 測試。

從單個組件視角入手,每個組件的新功能經(jīng)過研發(fā)后,進(jìn)行 Code Review 通過并合入 develop 分支,則立即觸發(fā)進(jìn)行 e2e 流程,通過 chorus(云原生測試平臺) 系統(tǒng)構(gòu)建鏡像后,由 ASIOps(ASI 運(yùn)維管控平臺) 部署到對應(yīng)的 e2e 集群,執(zhí)行標(biāo)準(zhǔn)的 Kubernetes Conformance 套件測試任務(wù),驗證 Kubernetes 范圍內(nèi)的功能是否正常。僅當(dāng)所有測試 case 通過,該組件的版本才可標(biāo)記為可推平版本,否則后續(xù)的發(fā)布將會受到管控限制。

然而正如上文提到,Kubernetes 開放的架構(gòu)意味著它不僅僅包含管控、調(diào)度等核心組件,集群的功能還很大程度依賴于上層的 operator 來共同實現(xiàn)。因此 Kubernetes 范圍內(nèi)的白盒測試并不能覆蓋所有的 ASI 的適用場景。底層組件功能的改變很有大程度會影響到上層 operator 的使用,因此我們在白盒 Conformance 的基礎(chǔ)上增加了黑盒測試用例,它包含對各類 operator 自身的功能驗證,例如從上層 paas 發(fā)起的擴(kuò)縮容,校驗發(fā)布鏈路的 quota 驗證等能力,常態(tài)化運(yùn)行在集群中。

2. 組件規(guī)?;芾?/strong>

針對 ASI 組件多、集群多的特點(diǎn),我們在原有 asi-deploy 功能之上進(jìn)行拓展,以組件為切入點(diǎn),增強(qiáng)組件在多集群間的管理能力,從鏡像管理演進(jìn)成了YAML 管理。

基于 Helm Template 的能力,我們將一個組件的 YAML 抽離成模板、鏡像和配置三部分,分別表示以下幾部分信息:

模板:YAML 中在所有環(huán)境固定不變的信息,例如 apiVersion,kind 等;鏡像:YAML 中與組件鏡像相關(guān)的信息,期望在單一環(huán)境或者所有集群中保持一致的信息;配置:YAML 中與單環(huán)境、單集群綁定的信息,允許存在多樣化的內(nèi)容,不同集群中的配置可能不同;

因此,一個完整的 YAML 則由模板、鏡像和配置共同渲染而成。而 ASIOps 則再會對鏡像信息和配置信息這部分 YAML 分別進(jìn)行集群維度和時間維度(多版本)進(jìn)行管理,計算組件當(dāng)前版本信息在眾多集群眾多分布狀況以及組件在單集群中版本的一致性狀況。

針對鏡像版本,我們從系統(tǒng)上促使其版本統(tǒng)一,以保證不會因版本過低而導(dǎo)致線上問題;而針對配置版本,我們則從管理上簡化它的復(fù)雜性,防止配置錯誤發(fā)入集群。

有了組件的基礎(chǔ)原型后,我們希望發(fā)布不僅僅是“替換 workload 里的 image 字段”這樣簡單的一件事。我們當(dāng)前維護(hù)了整個 YAML 信息,包含了除了鏡像之外的其他配置內(nèi)容,需要支持除了鏡像變動外的變更內(nèi)容。因此我們嘗試以盡可能接近 kubectl apply 的方式去進(jìn)行 YAML 下發(fā)。

我們會記錄三部分的 YAML Specification 信息:

Cluster Spec:當(dāng)前集群中指定資源的狀況;Target Spec:現(xiàn)在要發(fā)布進(jìn)集群的 YAML 信息;DB Spec:上一次部署成功的 YAML 信息,與 kubectl apply 保存在 annotation 中的 last-applied-configuration 功能相同。

對于一個由鏡像、配置和模板共同構(gòu)建的 YAML,我們會采集上述三種 Spec 信息,并進(jìn)行一次 diff,從而獲得到資源 diff patch,再進(jìn)行一次 filter out,篩去不允許變更的危險的字段,最后將整體的 patch 以 strategic merge patch 或者 merge patch 的形式發(fā)送給 APIServer,觸發(fā)使得 workload 重新進(jìn)入 reconcile 過程,以改變集群中該 workload 的實際狀況。

除此之外,由于 ASI 組件之間具有較強(qiáng)的相關(guān)性,存在許多場景需要同時一次性發(fā)布多個組件。例如當(dāng)我們初始化一個集群,或者對集群做一次整體的 release 時。因此我們在單個組件部署的基礎(chǔ)上增加了 Addon Release 的概念,以組件的集合來表明整個 ASI 的 release 版本,并且根據(jù)每個組件的依賴關(guān)系自動生成部署流,保證整體發(fā)布的過程中不會出現(xiàn)循環(huán)依賴。

3. 單集群灰度能力建設(shè)

在云原生的環(huán)境下,我們以終態(tài)的形式去描述應(yīng)用的部署形態(tài),而 Kubernetes 提供了維護(hù)各類 Workload 終態(tài)的能力,Operator 對比 workload 當(dāng)前狀態(tài)與終態(tài)的差距并進(jìn)行狀態(tài)協(xié)調(diào)。這個協(xié)調(diào)的過程,換言之 workload 發(fā)布或者回滾的過程,可以由 Operator 定義的發(fā)布策略來處理這個“面向終態(tài)場景內(nèi)的面向過程的流程”。

相比 Kubernetes 上層的應(yīng)用負(fù)載,底層的基礎(chǔ)設(shè)施組件在發(fā)布的過程中更關(guān)心組件自身的灰度發(fā)布策略和灰度暫停能力,_即不論任何類型的組件,都需要能在發(fā)布過程中具備及時停止發(fā)布的能力,以提供更多的時間進(jìn)行功能檢測、決策以及回滾_。具體而言,這些能力可以歸納為如下幾類:

updateStrategy:流式升級/滾動升級pause/resume:暫停/恢復(fù)能力maxUnavailable:不可用副本數(shù)到達(dá)一定時能夠快速停止升級partition:升級暫停能力,單次僅升級固定數(shù)量副本數(shù),保留一定數(shù)量的老版本副本

ASI 中針對 Kubernetes 原生 workload 能力、節(jié)點(diǎn)能力都進(jìn)行了增強(qiáng)。依托于集群中 Kruise 和 KubeNode 這類 operator 的能力以及上層管控平臺 ASIOps 的共同協(xié)作,我們對 Kubernetes 基礎(chǔ)設(shè)施組件實現(xiàn)了上述灰度能力的支持。對于 Deployment / StatefulSet / DaemonSet / Dataplane 類型的組件,在單集群中發(fā)布時支持的能力如下:

后文將簡要介紹我們針對不同 Workload 類型的組件進(jìn)行灰度的實現(xiàn),詳細(xì)的實現(xiàn)細(xì)節(jié)可以關(guān)注我們開源的項目 OpenKruise 以及后續(xù)準(zhǔn)備開源的 KubeNode。

1)Operator Platform

大多數(shù) Kubernetes 的 operator 以 Deployment 或者 StatefulSet 的方式部署,在 Operator 發(fā)布的過程中,一旦鏡像字段變動,所有 Operator 副本均會被升級。這個過程一旦新版本存在問題,則會造成不可挽回的問題。

針對此類 operator,我們將 controller-runtime 從 operator 中剝離出來,構(gòu)建一個中心化的組件 operator-manager(OpenKruise 開源實現(xiàn)中為 controller-mesh)。同時每個 operator pod 中會增加一個 operator-runtime 的 sidecar 容器,通過 gRPC 接口為組件的主容器提供 operator 的核心能力。

operator 向 APIServer 建立 Watch 連接后,監(jiān)聽到事件并被轉(zhuǎn)化為待 operator 協(xié)調(diào)處理的任務(wù)流(即 operator 的流量),operator-manager 負(fù)責(zé)中心化管控所有 operator 的流量,并根據(jù)規(guī)則進(jìn)行流量分片,分發(fā)到不同的 operator-runtime,runtime 中的 workerqueue 再觸發(fā)實際 operator 的協(xié)調(diào)任務(wù)。

在灰度過程中,operator-manager 支持按照 namespace 級別,哈希分片方式,將 operator 的流量分?jǐn)偨o新舊版本的兩個副本,從而可以從兩個副本處理的負(fù)載 workload 來驗證這次灰度發(fā)布是否存在問題。

2)Advanced DaemonSet

社區(qū)原生的 DaemonSet 支持了 RollingUpdate,但是其滾動升級的能力上僅支持 maxUnavailable 一種,這對于單集群數(shù)千上萬節(jié)點(diǎn)的 ASI 而言是無法接受的,一旦更新鏡像后所有 DaemonSet Pod 將會被升級,并且無法暫停,僅能通過 maxUnavailable 策略進(jìn)行保護(hù)。一旦 DaemonSet 發(fā)布了一個 Bug 版本,并且進(jìn)程能夠正常啟動,那么 maxUnavailable 也無法生效。

此外社區(qū)提供 onDelete 方式,可以在手動刪除 Pod 創(chuàng)建新 Pod,由發(fā)布平臺中心端控制發(fā)布順序和灰度,這種模式無法做到單集群中的自閉環(huán),所有的壓力都上升到發(fā)布平臺上。讓上層發(fā)布平臺來進(jìn)行Pod驅(qū)逐,風(fēng)險比較大。最好的方式就是 Workload 能自閉環(huán)提供組件更新的能力。因此我們在 Kruise 中加強(qiáng)了 DaemonSet 的能力使其支持上述幾種重要的灰度能力。

如下是一個基本的 Kruise Advanced DaemonSet 的例子:

apiVersion: apps.kruise.io/v1alpha1kind: DaemonSetspec: # ... updateStrategy: type: RollingUpdate rollingUpdate: maxUnavailable: 5 partition: 100 paused: false

其中 partition 意為保留老版本鏡像的 Pod 副本數(shù),滾升級過程中一旦指定副本數(shù) Pod 升級完成,將不再對新的 Pod 進(jìn)行鏡像升級。我們在上層 ASIOps 中控制 partition 的數(shù)值來滾動升級 DaemonSet,并配合其他 UpdateStrategy 參數(shù)來保證灰度進(jìn)度,同時在新創(chuàng)建的 Pod 上進(jìn)行一些定向驗證。

3)MachineComponentSet

MachineComponentSet 是 KubeNode 體系內(nèi)的 Workload,ASI 中在 Kubernetes 之外的節(jié)點(diǎn)組件(無法用 Kubernetes 自身的 Workload 發(fā)布的組件),例如 Pouch,Containerd,Kubelet 等均是通過該 Workload 進(jìn)行發(fā)布。

節(jié)點(diǎn)組件以 Kubernetes 內(nèi)部的自定義資源 MachineComponent 進(jìn)行表示,包含一個指定版本的節(jié)點(diǎn)組件(例如 pouch-1.0.0.81)的安裝腳本,安裝環(huán)境變量等信息;而 MachineComponentSet 則是節(jié)點(diǎn)組件與節(jié)點(diǎn)集合的映射,表明該批機(jī)器需要安裝該版本的節(jié)點(diǎn)組件。而中心端的 Machine-Operator 則會去協(xié)調(diào)這個映射關(guān)系,以終態(tài)的形式,比對節(jié)點(diǎn)上的組件版本以及目標(biāo)版本的差異,并嘗試去安裝指定版本的節(jié)點(diǎn)組件。

在灰度發(fā)布這一部分,MachineComponentSet 的設(shè)計與 Advanced DaemonSet 類似,提供了包括 partition,maxUnavailable 的 RollingUpdate 特性,例如以下是一個 MachineComponentSet 的示例:

apiVersion: kubenode.alibabacloud.com/v1kind: MachineComponentSetmetadata: labels: alibabacloud.com/akubelet-component-version: 1.18.6.238-20201116190105-cluster-202011241059-d380368.conf component: akubelet name: akubelet-machine-component-setspec: componentName: akubelet selector: {} updateStrategy: maxUnavailable: 20% partition: 55 pause: false

同樣上層 ASIOps 在控制灰度升級節(jié)點(diǎn)組件時,與集群側(cè)的 Machine-Operator 進(jìn)行交互,修改指定 MachineComponentSet 的 partition 等字段進(jìn)行滾動升級。

相比于傳統(tǒng)的節(jié)點(diǎn)組件發(fā)布模式,KubeNode 體系將節(jié)點(diǎn)組件的生命周期也閉環(huán)至 Kubernetes 集群內(nèi),并將灰度發(fā)布的控制下沉到集群側(cè),減少中心側(cè)對節(jié)點(diǎn)元數(shù)據(jù)管理的壓力。

4. 跨集群灰度能力建設(shè)

阿里巴巴內(nèi)部針對云產(chǎn)品、基礎(chǔ)產(chǎn)品制定了變更紅線 3.0,對管控面組件、數(shù)據(jù)面組件的變更操作的分批灰度、控制間隔、可觀測、可暫停、可回滾進(jìn)行了要求。但變更對象以 region 的單元進(jìn)行灰度不滿足 ASI 的復(fù)雜場景,因此我們嘗試去細(xì)化 ASI 上管控面、數(shù)據(jù)面的變更所屬的變更單元的類型。

我們圍繞集群這一基礎(chǔ)單元向上,向下分別進(jìn)行抽象,得到以下幾個基本單元:

集群組:具有共同業(yè)務(wù)方(ASI 承接的二方用戶)、網(wǎng)絡(luò)域(售賣區(qū)/OXS/集團(tuán))、環(huán)境(e2e/測試/預(yù)發(fā)/金絲雀/小流量/生產(chǎn))信息,因此在監(jiān)控、告警、巡檢、發(fā)布等方面的配置具有共同性。集群:ASI 集群概念,對應(yīng)一個 Kubernetes 集群預(yù)案。節(jié)點(diǎn)集:一組具有共同特征的節(jié)點(diǎn)集合,包括資源池、子業(yè)務(wù)池等信息。Namespace:單個集群中的單個 Namespace,通常 ASI 中一個上層業(yè)務(wù)對應(yīng)一個 Namespace。節(jié)點(diǎn):單臺宿主機(jī)節(jié)點(diǎn),對應(yīng)一個 Kubernetes Node。

針對每種發(fā)布模式(管控組件、節(jié)點(diǎn)組件),我們以最小爆炸半徑為原則,將他們所對應(yīng)的灰度單元編排串聯(lián)在一起,以使得灰度流程能夠固化到系統(tǒng)中,組件開發(fā)在發(fā)布中必須遵守流程,逐個單元進(jìn)行部署。編排過程中,我們主要考慮以下幾個因素:

業(yè)務(wù)屬性環(huán)境(測試、預(yù)發(fā)、小流量、生產(chǎn))網(wǎng)絡(luò)域(集團(tuán) V、售賣區(qū)、OXS)集群規(guī)模(Pod/Node 數(shù))用戶屬性(承載用戶的 GC 等級)單元/中心組件特性

同時我們對每個單元進(jìn)行權(quán)重打分,并對單元間的依賴關(guān)系進(jìn)行編排。例如以下是一條 ASI 監(jiān)控組件的發(fā)布流水線,由于該監(jiān)控組件在所有 ASI 場景都會使用同一套方案,它將推平至所有 ASI 集群。并且在推平過程中,它首先會經(jīng)過泛電商交易集群的驗證,再進(jìn)行集團(tuán) VPC 內(nèi)二方的發(fā)布,最后進(jìn)行售賣區(qū)集群的發(fā)布。而在每個集群中,該組件則會按照上一節(jié)中我們討論的單集群內(nèi)的灰度方式進(jìn)行 1/5/10 批次的分批,逐批進(jìn)行發(fā)布。

進(jìn)行了灰度單元編排之后,我們則可以獲得到一次組件推平流水線的基礎(chǔ)骨架。而對于骨架上的每個灰度單元,我們嘗試去豐富它的前置檢查和后置校驗,從而能夠在每次發(fā)布后確認(rèn)灰度的成功性,并進(jìn)行有效的變更阻斷。同時對于單個批次我們設(shè)置一定的靜默期去使得后置校驗?zāi)軌蛴凶銐虻臅r間運(yùn)行完,并且提供給組件開發(fā)足夠的時間進(jìn)行驗證。目前單批次前置后置校驗內(nèi)容包括:

全局風(fēng)險規(guī)則(封網(wǎng)、熔斷等)發(fā)布時間窗口(ASI 試行周末禁止發(fā)布的規(guī)則)KubeProbe 集群黑盒探測金絲雀任務(wù)(由諾曼底發(fā)起的 ASI 全鏈路的擴(kuò)縮容任務(wù))核心監(jiān)控指標(biāo)大盤組件日志(組件 panic 告警等)主動診斷任務(wù)(主動查詢對應(yīng)的監(jiān)控信息是否在發(fā)布過程中有大幅變化)

將整個多集群發(fā)布的流程串聯(lián)在一起,我們可以得到一個組件從研發(fā),測試至上線發(fā)布,整個流程經(jīng)歷的事件如下圖:

在流水線編排的實現(xiàn)方面,我們對社區(qū)已有的 tekton 和 argo 進(jìn)行了選型調(diào)研,但考慮到我們在發(fā)布流程中較多的邏輯不適合單獨(dú)放在容器中執(zhí)行,同時我們在發(fā)布過程中的需求不僅僅是 CI/CD,以及在設(shè)計初期這兩個項目在社區(qū)中并不穩(wěn)定。因而我們參考了 tekton 的基礎(chǔ)設(shè)計(task / taskrun / pipeline / pipelinerun)進(jìn)行了實現(xiàn),并且保持著和社區(qū)共同的設(shè)計方向,在未來會調(diào)整與社區(qū)更接近,更云原生的方式。

成果

經(jīng)過近一年半的建設(shè),ASIOps 目前承載了近百個管控集群,近千個業(yè)務(wù)集群(包括 ASI 集群、Virtual Cluster 多租虛擬集群,Sigma 2.0 虛擬集群等),400 多個組件(包括 ASI 核心組件、二方組件等)。同時 ASIOps 上包含了近 30 余條推平流水線,適用于 ASI 自身以及 ASI 承載的業(yè)務(wù)方的不同發(fā)布場景。

同時每天有近 400 次的組件變更(包括鏡像變更和配置變更),通過流水線推平的此時達(dá) 7900+。同時為了提高發(fā)布效率,我們在前后置檢查完善的條件下開啟了單集群內(nèi)自動灰度的能力,目前該能力被大多數(shù) ASI 數(shù)據(jù)面的組件所使用。

如下是一個組件通過 ASIOps 進(jìn)行版本推平的示例:

同時我們在 ASIOps 上的分批灰度以及后置檢查變更阻斷,也幫助我們攔住了一定由于組件變更引起的故障。例如 Pouch 組件在進(jìn)行灰度時,由于版本不兼容導(dǎo)致了集群不可用,通過發(fā)布后觸發(fā)的后置巡檢發(fā)現(xiàn)了這一現(xiàn)象,并阻斷了灰度進(jìn)程。

ASIOps 上的組件大多數(shù)都是 ASI/Kubernetes 底層的基礎(chǔ)設(shè)施組件,近一年半以來沒有因為由組件變更所引起的故障。我們努力將指定的規(guī)范通過系統(tǒng)能力固化下來,以減少和杜絕違反變更紅線的變更,從而將故障的發(fā)生逐步右移,從變更引發(fā)的低級故障逐步轉(zhuǎn)變至代碼 Bug 自身引起的復(fù)雜故障。

展望

隨著 ASI 的覆蓋的場景逐步擴(kuò)大,ASIOps 作為其中的管控平臺需要迎接更復(fù)雜的場景,規(guī)模更大的集群數(shù)、組件數(shù)的挑戰(zhàn)。

首先我們亟待解決穩(wěn)定性和效率這一權(quán)衡問題,當(dāng) ASIOps 納管的集群數(shù)量到達(dá)一定量級后,進(jìn)行一次組件推平的耗時將相當(dāng)大。我們希望在建設(shè)了足夠的前后置校驗?zāi)芰?,提供變更全托管的能力,由平臺自動進(jìn)行發(fā)布范圍內(nèi)的組件推平,并執(zhí)行有效的變更阻斷,在 Kubernetes 基礎(chǔ)設(shè)施這一層真正做到 CI/CD 自動化。

同時目前我們需要手動對灰度單元進(jìn)行編排,確定灰度順序,在未來我們希望建設(shè)完全整個 ASI 的元數(shù)據(jù),并自動對每次發(fā)布范圍內(nèi)的所有單元進(jìn)行過濾、打分和編排。

最后,目前 ASIOps 暫時只做到針對組件相關(guān)的變更進(jìn)行灰度的能力,而 ASI 范圍內(nèi)的變更遠(yuǎn)不止組件這一點(diǎn)?;叶润w系應(yīng)該是一個通用的范疇,灰度流水線需要被賦能到注入資源運(yùn)維、預(yù)案執(zhí)行的其他的場景中。此外,整個管控平臺的灰度能力沒有與阿里巴巴有任何緊耦合,完全基于 Kruise / KubeNode 等 Workload 進(jìn)行打造,未來我們會探索開源整套能力輸出到社區(qū)中。

責(zé)任編輯:梁菲 來源: 阿里云云棲號
相關(guān)推薦

2020-09-01 13:13:59

云原生MySQL高可用

2022-06-06 21:53:08

云原生云計算

2021-09-16 10:57:20

云原生

2022-05-21 23:38:01

云原生IT企業(yè)

2024-04-23 10:16:29

云原生

2025-09-01 08:49:24

2019-03-13 14:56:28

華為云

2023-01-18 07:58:54

云原生數(shù)據(jù)采集

2021-12-29 12:52:04

云原生架構(gòu)

2022-06-07 14:38:40

云原生架構(gòu)云計算

2015-12-17 19:13:22

2022-09-13 11:40:49

智慧城市

2021-10-19 09:32:08

云原生數(shù)據(jù)中心網(wǎng)絡(luò)

2022-12-26 16:34:51

開源云原生

2009-02-09 14:04:01

2023-09-27 07:32:30

標(biāo)簽體系大數(shù)據(jù)

2017-04-13 09:50:56

互聯(lián)網(wǎng)

2022-12-07 21:28:43

數(shù)據(jù)庫運(yùn)維云原生

2022-06-30 10:32:36

vivo數(shù)據(jù)分析體系數(shù)據(jù)模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产精品97在线| 91久久精品国产91久久性色tv| 亚洲一级av无码毛片精品| 蜜桃视频动漫在线播放| 99国产精品久久| 日本成人精品在线| 五月天免费网站| 国产日韩一区二区三免费高清| 一区二区三区免费观看| 国产精品免费区二区三区观看| 国产成人一区二区三区影院在线| 亚洲精品无吗| 欧美日韩国产另类一区| 国产精品88久久久久久妇女| 免费国产黄色片| 日韩中文欧美在线| 久久电影一区二区| 亚洲欧美色图视频| 美女视频一区| 亚洲一区二区三区视频在线| 欧美日韩在线观看一区| 91黄色在线视频| 黄色国产精品| 夜夜嗨av色一区二区不卡| 欧美视频国产视频| 亚洲精品88| 亚洲四区在线观看| 欧美极品色图| 国产乱码久久久久| 久久精品日产第一区二区| 久久精彩免费视频| 欧美亚一区二区三区| 国产专区精品| 色综合视频在线观看| 国产a级黄色大片| 国产福利片在线| 国产99一区视频免费| 国产精品免费视频xxxx| 日韩av无码中文字幕| 99久久精品国产亚洲精品 | 精品久久久久久久久久久久久久久 | 日韩一区二区在线播放| 北条麻妃在线观看| 久草在线视频网站| 中文字幕一区二区三区四区不卡| 久久av一区二区| www.蜜臀av.com| 毛片基地黄久久久久久天堂| 日本精品免费一区二区三区| 久久久久久久久久久久久久免费看 | 欧美激情xxxxx| 四虎精品免费视频| 久久人人88| 亚洲无线码在线一区观看| 亚洲麻豆一区二区三区| 欧美h版在线观看| 欧美老年两性高潮| 在线观看免费视频高清游戏推荐| 人人鲁人人莫人人爱精品| 精品国产乱码久久久久久天美| 91视频成人免费| 日本在线观看| 亚洲欧洲精品成人久久奇米网| 色一情一乱一伦一区二区三区| 偷拍25位美女撒尿视频在线观看| www.爱久久.com| 国产精华一区二区三区| 亚洲精品成人电影| 高清不卡一区二区在线| 99re视频在线观看| 精品人妻一区二区三区含羞草| 精品夜夜嗨av一区二区三区| 国产精自产拍久久久久久蜜| 黄色一区二区视频| 美腿丝袜一区二区三区| 国产精品亚洲精品| 一级特黄aaa大片| 久久国产精品第一页| 国产在线高清精品| 国产精品久久久久久久久久久久久久久久久久 | 欧美一级片免费| www.激情成人| 欧美成熟毛茸茸复古| 欧美另类自拍| 国产精品污网站| 中文字幕乱码一区二区三区| 麻豆av在线免费看| 亚洲午夜激情网站| 熟女少妇在线视频播放| 精品欧美一区二区三区在线观看| 欧美主播一区二区三区美女| 日本免费色视频| 人人九九精品视频| 亚洲第一在线视频| 免费在线观看污| 久久网站免费观看| 欧美—级高清免费播放| 日本午夜精品理论片a级app发布| 西西裸体人体做爰大胆久久久| 国产精品91一区| 国产精品乱码久久久| 成人综合婷婷国产精品久久| 久久精品中文字幕一区二区三区| 国产日本在线| 亚洲激情欧美激情| 欧美 日韩精品| 黄色日韩网站| 欧美成人a视频| 中文字幕一区二区三区人妻不卡| 日韩亚洲一区在线| 性色av一区二区三区免费| 在线观看日本网站| 国产麻豆成人精品| 欧美成熟毛茸茸复古| 免费黄色在线| 精品人伦一区二区三区蜜桃网站 | 欧美寡妇偷汉性猛交| 91porny在线| 精品亚洲欧美一区| 欧美性xxxx69| 国模雨婷捆绑高清在线| 欧美午夜精品久久久久久超碰| 国产成人精品综合久久久久99| 免费看av成人| 欧美丰满少妇xxxxx| 波多野结衣大片| 国产69精品久久99不卡| 亚洲精品高清视频| 亚洲人成在线网站| 精品久久久久一区二区国产| 国产视频123区| 午夜一区二区三区不卡视频| 91精品国产综合久久久久久丝袜| 国产高清美女一级毛片久久| 亚洲国产aⅴ天堂久久| 成 人 黄 色 小说网站 s色| 欧美成人一区在线观看| 欧美成人精品在线| 亚洲影视一区二区| 久久久无码精品亚洲日韩按摩| 少妇大叫太大太粗太爽了a片小说| jvid一区二区三区| 亚洲视频在线看| 日韩精品视频播放| 国产成人亚洲综合a∨婷婷图片| 亚洲成人蜜桃| 欧美天堂视频| 亚洲精品成人久久久| 欧美激情一区二区视频| 国产一区二区三区国产| 亚洲春色在线视频| 成人免费福利| 亚洲欧洲一区二区三区在线观看| 国产在线视频你懂的| 国产另类ts人妖一区二区| 亚洲欧美日韩在线综合 | 中文字幕在线网站| 国产欧美日韩卡一| 国产精品久久久久9999小说| 妖精视频一区二区三区免费观看| 性色av一区二区三区红粉影视| 丰满人妻一区二区三区免费| 亚洲精品ww久久久久久p站| 三日本三级少妇三级99| 亚洲精品久久久| 91久久国产婷婷一区二区| 色多多视频在线观看| 欧美午夜电影一区| 国产一区在线观看免费| 美女视频免费一区| 在线观看成人av电影| 日韩欧美专区| 久久综合国产精品台湾中文娱乐网| 一本大道伊人av久久综合| 国产精品福利一区| 欧美一级小视频| 91成人精品| 不卡视频一区二区| h片在线观看视频免费免费| 亚洲第一中文字幕在线观看| 日韩一区二区视频在线| 久久久欧美精品sm网站| 国产精品区在线| 影音先锋日韩在线| 成人在线免费网站| 在线观看网站免费入口在线观看国内 | 国产探花视频在线播放| 奇米四色…亚洲| 在线视频欧美一区| 网站一区二区| 4438全国成人免费| 在线免费看黄| 日韩一区二区三区精品视频| 久久久久成人网站| www国产精品av| 99热这里只有精品在线播放| 888久久久| 精品无人乱码一区二区三区的优势 | 国产在视频一区二区三区吞精| 精品国产一区二区三区久久狼黑人| 99精品在线看| 精品免费在线观看| 国产一区第一页| 懂色av中文一区二区三区| 日本wwww视频| 99久久99热这里只有精品 | 一级特黄aaa| 亚洲一二三区不卡| 免费看黄色三级| 国产精品456露脸| 欧美aⅴ在线观看| 亚洲国产老妈| 欧美日韩在线精品一区二区三区| 91精品视频一区二区| 97在线视频一区| 日本中文在线观看| 亚洲欧美第一页| www.桃色av嫩草.com| 在线中文字幕一区二区| 国产亚洲小视频| 国产精品二区一区二区aⅴ污介绍| 亚洲午夜久久久久久久久| 久久精品久久综合| 亚洲欧洲日产国码无码久久99| 羞羞答答成人影院www| 欧美日韩在线一二三| 大奶一区二区三区| 成人乱人伦精品视频在线观看| 三级资源在线| 久久精品国产欧美亚洲人人爽| 欧美孕妇孕交| 精品国产麻豆免费人成网站| 夜夜躁很很躁日日躁麻豆| 一本大道久久精品懂色aⅴ| 精品少妇爆乳无码av无码专区| 中文天堂在线一区| 欧美一区二区三区成人精品| 成人午夜看片网址| 波多野结衣免费观看| 日本成人在线不卡视频| 免费在线a视频| 精品二区视频| 91大学生片黄在线观看| 999久久久免费精品国产| 欧美中日韩免费视频| 欧美电影在线观看完整版| 91免费在线观看网站| 国语精品视频| 成人啪啪免费看| 欧美videos粗暴| 国产精品激情av在线播放| 最近在线中文字幕| 97国产成人精品视频| 国产偷倩在线播放| 欧美精品video| 日本h片在线| 欧美高清在线播放| 欧美黑人猛交的在线视频| 久久亚洲电影天堂| 黄色国产网站在线播放| 日韩小视频在线观看| 91精彩视频在线播放| 在线视频欧美日韩| 97视频在线观看网站| 在线a欧美视频| 成人在线免费视频| 日日骚av一区| 国产精品va在线观看视色| 久久久999国产| av毛片在线免费| 欧美男插女视频| 欧美xxxx视频| 国内精品视频在线| 精品极品在线| 国产v综合ⅴ日韩v欧美大片| 国产超碰精品| 国产精品久久久久久久av电影| 国产精品亲子伦av一区二区三区| 国产欧美日韩精品在线观看 | 视频二区在线| 亚洲福利在线观看| 亚洲av成人精品毛片| 亚洲美女在线视频| 97在线观看免费观看高清| 欧美成年人视频| free性欧美16hd| 日本国产欧美一区二区三区| 日韩毛片一区| 91在线看网站| 日韩精品福利一区二区三区| 相泽南亚洲一区二区在线播放| 99re6这里只有精品| 日韩一级特黄毛片| 亚洲欧美日韩精品一区二区| 欧美 日韩 国产 激情| 久久国产精品免费| 亚洲激情 欧美| 国产精品视频九色porn| 久久久久久久久艹| 在线观看免费亚洲| 国产成人麻豆精品午夜在线 | 午夜精品福利视频| 少妇精品视频一区二区免费看| 91视频国产高清| 日韩精选在线| 精品日韩在线播放| 亚洲尤物在线| 图片区乱熟图片区亚洲| 91丨porny丨蝌蚪视频| 久久久久久久久久97| 精品日韩美女的视频高清| 一级欧美一级日韩| 日韩av影视在线| 精品51国产黑色丝袜高跟鞋| 91国产美女视频| 国产精品久久久久久av公交车| 国产精品手机视频| 首页国产精品| 鲁一鲁一鲁一鲁一色| 精品一区二区免费在线观看| 91av在线免费| 亚洲精品免费在线观看| 亚洲黄色三级视频| 欧美一区二区三区日韩| 毛片网站在线| 孩xxxx性bbbb欧美| 精品久久亚洲| 亚洲三区在线| 久久男女视频| 欧美做受高潮中文字幕 | www.5588.com毛片| 日韩欧美在线免费| 动漫av一区二区三区| 久久视频国产精品免费视频在线| 无码小电影在线观看网站免费| 99久久久久国产精品免费| 日韩久久综合| 密臀av一区二区三区| 91亚洲资源网| 国产在线拍揄自揄拍无码视频| 91麻豆精品91久久久久同性| 成人在线免费看| 日本亚洲欧美成人| 日韩超碰人人爽人人做人人添| 国产夫妻自拍一区| 丰满岳乱妇一区二区三区| 手机在线免费看毛片| 69精品人人人人| 日本电影全部在线观看网站视频| 国产精品96久久久久久| 深爱激情综合| 欧美女人性生活视频| 91美女视频网站| 你懂的国产视频| 亚洲国产精品va在线| 91av久久| 国产亚洲欧美一区二区| 欧美日韩少妇| 无码人妻丰满熟妇区毛片蜜桃精品| 亚洲色图欧美激情| 国产黄色av网站| 久久亚洲精品毛片| 国产一区二区三区黄网站| 狠狠精品干练久久久无码中文字幕| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲天堂精品一区| 777久久久精品| 色屁屁www国产馆在线观看| 91九色蝌蚪成人| 亚洲黄色高清| 人妻av一区二区| 偷窥少妇高潮呻吟av久久免费| 天堂在线资源库| 青青草成人在线| 欧美色图一区| 天天干天天操天天玩| 亚洲欧美日韩国产手机在线| 国产福利第一视频| 久久免费精品视频| 亚洲伊人春色| 亚洲 欧美 日韩系列| 中文字幕中文字幕一区二区| 国产内射老熟女aaaa∵| 欧美极品在线视频| 美女网站一区| 自拍偷拍一区二区三区四区| 依依成人综合视频| 色欲av永久无码精品无码蜜桃| 青青草国产精品一区二区| 久久大综合网| 黑人无套内谢中国美女| 精品国产乱码久久久久久虫虫漫画| 国产资源在线看| 7777奇米亚洲综合久久| 亚洲欧美日韩一区在线观看| 日韩精品电影一区二区三区| 日韩欧美一区电影| 欧美黄色网页| 中文字幕の友人北条麻妃| 99精品视频一区二区|