B站容器云平臺(tái)VPA技術(shù)實(shí)踐
一、背景
B站基于k8s構(gòu)建的私有云平臺(tái)已達(dá)萬級(jí)節(jié)點(diǎn)規(guī)模,托管了公司大部分的在線業(yè)務(wù)以及機(jī)器學(xué)習(xí)、大數(shù)據(jù)、轉(zhuǎn)碼等離線業(yè)務(wù)。在推進(jìn)降本增效的過程中,我們發(fā)現(xiàn)業(yè)務(wù)申請(qǐng)的容器資源規(guī)格存在不合理的現(xiàn)象,通常設(shè)置的資源配額會(huì)比實(shí)際負(fù)載偏大很多。這就造成節(jié)點(diǎn)的cpu分配率很高,已經(jīng)無法調(diào)度新容器,但是節(jié)點(diǎn)的實(shí)際cpu峰值利用率卻很低(如圖所示)。
這種不合理的容器規(guī)格導(dǎo)致整體集群資源產(chǎn)生了很大的浪費(fèi)。面對(duì)這個(gè)問題,我們主要從兩個(gè)角度進(jìn)行解決:一是利用混部技術(shù),通過調(diào)用一些低優(yōu)業(yè)務(wù)到這類機(jī)器上,實(shí)現(xiàn)對(duì)閑置資源的有效利用,在之前的文章《B站云原生混部技術(shù)實(shí)踐》【1】 中有詳細(xì)介紹;二是從業(yè)務(wù)容器本身出發(fā),采用垂直彈性伸縮(Vertical Pod Autoscaler,簡(jiǎn)稱VPA)技術(shù),基于業(yè)務(wù)的歷史真實(shí)負(fù)載計(jì)算得到推薦的資源量,并自動(dòng)調(diào)整容器資源規(guī)格。從我們的大規(guī)模實(shí)踐效果來看,VPA技術(shù)有效地釋放出了節(jié)點(diǎn)的空閑算力資源,滿足了新增業(yè)務(wù)的資源需求,降低了新機(jī)器的采購(gòu)成本。同時(shí),作為一種自動(dòng)化調(diào)整的機(jī)制,也極大地降低了人工進(jìn)行容量管理的成本。下面,我們將詳細(xì)介紹VPA技術(shù)的一些具體技術(shù)細(xì)節(jié)和實(shí)踐經(jīng)驗(yàn)。
二、業(yè)界現(xiàn)狀
VPA一般需要具備以下三種關(guān)鍵能力:
1、容器資源規(guī)格推薦?;趹?yīng)用的真實(shí)負(fù)載,根據(jù)特定的算法計(jì)算出容器的合理資源規(guī)格。
2、對(duì)于新創(chuàng)建的Pod,需要基于k8s webhook,在創(chuàng)建Pod對(duì)象的過程中將資源規(guī)格修改為推薦值。
3、對(duì)于已經(jīng)創(chuàng)建的Pod,需要定時(shí)動(dòng)態(tài)調(diào)整容器的資源規(guī)格。
目前,社區(qū)開源的VPA技術(shù)只支持上述1和2,存量pod如果要進(jìn)行VPA,必須先驅(qū)逐,從而在重建時(shí)修改pod資源規(guī)格。很多業(yè)務(wù)不希望VPA調(diào)整資源配額時(shí)發(fā)生pod驅(qū)逐,因此業(yè)界也有部分公司選擇修改K8S源代碼來支持in-place VPA的能力,從而實(shí)現(xiàn)動(dòng)態(tài)修改容器資源規(guī)格。K8S社區(qū)對(duì)于 in-place VPA已經(jīng)有相關(guān)issue討論 【2】,預(yù)計(jì)后續(xù)的k8s版本會(huì)合入該特性。目前,我們也是選擇通過修改K8S源碼來支持in-place VPA功能,同時(shí)自研了整體VPA的控制框架和管理平臺(tái),使得整體功能更加穩(wěn)定易用。
三、VPA原理
3.1 整體架構(gòu)
VPA相關(guān)CRD
VPA Generator對(duì)象:由VPA管理平臺(tái)創(chuàng)建的VPA策略模板對(duì)象,該對(duì)象基于label selector匹配業(yè)務(wù)應(yīng)用的Pod,并創(chuàng)建應(yīng)用維度的VPA對(duì)象。
VPA 對(duì)象:由控制器根據(jù)VPA Generator對(duì)象自動(dòng)生成。主要包含Pod的匹配信息、推薦值算法相關(guān)的參數(shù)、當(dāng)前的資源推薦值、容器資源的更新模式等。
VPA核心組件
VPA Generator控制器。主要用于降低VPA的管理復(fù)雜度,我們可以針對(duì)同一類的應(yīng)用創(chuàng)建一個(gè)VPA策略模板對(duì)象VPA Generator,由控制器自動(dòng)匹配這一類應(yīng)用,并逐個(gè)創(chuàng)建出每個(gè)應(yīng)用關(guān)聯(lián)的VPA對(duì)象。
VPA Recommender控制器。主要是獲取VPA對(duì)象所關(guān)聯(lián)應(yīng)用的歷史負(fù)載值,計(jì)算出業(yè)務(wù)容器推薦的資源規(guī)格,并記錄到VPA對(duì)象的Status字段中。
VPA Updater控制器。當(dāng)VPA對(duì)象調(diào)整資源請(qǐng)求量的模式為自動(dòng)模式或者直接更新模式時(shí),該控制器會(huì)把VPA對(duì)象中Status字段里記錄的資源推薦值更新到存量的業(yè)務(wù)Pod中,并立即生效。
VPA Webhook服務(wù)。當(dāng)VPA對(duì)象調(diào)整資源請(qǐng)求量的模式為自動(dòng)模式或者初始化模式時(shí),該組件會(huì)把VPA對(duì)象中Status字段里記錄的資源推薦值更新到新創(chuàng)建的業(yè)務(wù)Pod中。
VPA-API服務(wù)。作為VPA管理平臺(tái)和kube-apiserver服務(wù)進(jìn)行交互的中間代理,實(shí)現(xiàn)對(duì)K8S集群中VPA Generator對(duì)象的增刪改查操作,同時(shí)也負(fù)責(zé)匯總收集VPA相關(guān)的可觀測(cè)數(shù)據(jù)。
其他依賴模塊
Kube-apiserver服務(wù):是K8S集群的API訪問入口。
Cadvisor服務(wù):用于采集pod中每個(gè)容器的資源使用量指標(biāo)。
Prometheus服務(wù):用于聚合匯總Cadvisor采集的資源指標(biāo),供VPA Recommender控制器查詢業(yè)務(wù)容器的歷史資源使用量。
下面分別介紹一下VPA Generator控制器、VPA Updater控制器和VPA Recommender控制器。
3.2 VPA Generator控制器
一般業(yè)界的VPA系統(tǒng)只會(huì)定義VPA CRD,會(huì)給每個(gè)應(yīng)用建一個(gè)VPA。但實(shí)際場(chǎng)景中應(yīng)用數(shù)量非常多,如果逐個(gè)應(yīng)用維護(hù)VPA對(duì)象會(huì)產(chǎn)生較大的運(yùn)維成本。B站內(nèi)部業(yè)務(wù)是區(qū)分服務(wù)等級(jí)的,而相同服務(wù)等級(jí)的應(yīng)用通常所需的VPA推薦策略是一樣的,因此我們考慮引入VPA Generator CRD,在其中定義某一類VPA的生成策略,然后通過控制器來動(dòng)態(tài)維護(hù)VPA對(duì)象的生命周期。上層不再需要關(guān)心每個(gè)應(yīng)用的VPA怎么配置,而只需要為不同服務(wù)等級(jí)的應(yīng)用制定好VPA策略即可。
VPA Generator控制器的主要邏輯如下:
1、VPA Generator控制器監(jiān)聽管理平臺(tái)創(chuàng)建的策略模板VPA Generator對(duì)象,根據(jù)其中的selector信息匹配到集群中的相關(guān)pod;
2、將步驟1中匹配到的pod按所屬應(yīng)用分組,分別創(chuàng)建應(yīng)用級(jí)別的VPA對(duì)象;
3、對(duì)于已經(jīng)下線的業(yè)務(wù)Pod,相關(guān)聯(lián)的VPA對(duì)象會(huì)保留一段時(shí)間,之后控制器會(huì)自動(dòng)刪除這批VPA對(duì)象。
如下圖所示,VPA Generator對(duì)象的分組標(biāo)簽是:level=L0,它會(huì)命中集群中所有l(wèi)evel=L0的服務(wù),并劃歸為一個(gè)服務(wù)群,這樣控制器就會(huì)為這個(gè)服務(wù)群的所有應(yīng)用創(chuàng)建出關(guān)聯(lián)的VPA對(duì)象?;谶@個(gè)策略,業(yè)務(wù)SRE針對(duì)同一個(gè)應(yīng)用等級(jí)的服務(wù)群,只需要維護(hù)一個(gè)VPA Generator對(duì)象,控制器可以動(dòng)態(tài)創(chuàng)建或者刪除該服務(wù)群對(duì)應(yīng)的VPA對(duì)象,減少對(duì)VPA對(duì)象的管理運(yùn)維成本。
3.3 VPA Updater控制器
VPA Updater控制器會(huì)根據(jù)VPA對(duì)象中的匹配策略,過濾出VPA對(duì)象關(guān)聯(lián)的業(yè)務(wù)Pod,并結(jié)合設(shè)定的更新模式,完成業(yè)務(wù)Pod資源量的更新動(dòng)作。這里更新模式包含四種:預(yù)跑模式、初始化模式、直接更新模式和自動(dòng)模式。各個(gè)模式分別適用于不同的應(yīng)用場(chǎng)景。
模式一:預(yù)跑模式,僅僅對(duì)創(chuàng)建的VPA對(duì)象進(jìn)行推薦值計(jì)算,不進(jìn)行Pod資源配額的動(dòng)態(tài)更新,主要用在VPA策略預(yù)估和對(duì)照的場(chǎng)景。
模式二:初始化模式,在創(chuàng)建Pod的時(shí)候,VPA Webhook根據(jù)pod的標(biāo)簽信息匹配到對(duì)應(yīng)的VPA對(duì)象,然后根據(jù)VPA對(duì)象中的資源推薦值來更新Pod的資源配額。由于公有云不支持in-place Vpa能力,一般只能使用這種模式。
模式三:直接更新模式,VPA Updater控制器直接動(dòng)態(tài)更新存量pod的資源配額。IDC內(nèi)部k8s集群(私有云)支持了in-place Vpa能力,因此可以開啟該模式。
模式四:自動(dòng)模式,這個(gè)模式相當(dāng)于同時(shí)開啟了模式二和模式三,可以更新增量Pod或者存量Pod的資源配額。我們內(nèi)部集群一般使用該模式。
如下圖所示,模式二代表VPA Webhook組件監(jiān)聽到創(chuàng)建Pod的動(dòng)作,然后根據(jù)VPA對(duì)象設(shè)定的模式來決定是否更新Pod的資源配額。模式三代表VPA Updater組件監(jiān)聽到VPA對(duì)象中的推薦值被更新之后,會(huì)根據(jù)VPA對(duì)象設(shè)定的模式?jīng)Q定是否直接更新存量Pod的資源配額。通過多種更新模式,很好地支撐了私有云和公有云場(chǎng)景的VPA需求。
3.4 VPA Recommender控制器
VPA Recommender控制器根據(jù)VPA對(duì)象的指標(biāo)策略,從Prometheus服務(wù)中獲取業(yè)務(wù)服務(wù)的歷史負(fù)載,然后結(jié)合推薦值算法計(jì)算出業(yè)務(wù)Pod的資源推薦值,并更新到VPA對(duì)象的Status中。其中可以根據(jù)VPA對(duì)象中設(shè)定的Schedule字段,約定VPA計(jì)算資源推薦值的周期,控制資源推薦值更新的節(jié)奏。
目前VPA推薦組件的推薦算法主要覆蓋了兩個(gè)場(chǎng)景。
場(chǎng)景一:自動(dòng)化調(diào)整業(yè)務(wù)實(shí)例的資源request值,釋放空閑資源,提高集群資源利用率
我們引入容器資源飽和率的概念,即“容器的資源使用量/資源request”。假設(shè)當(dāng)前VPA對(duì)象使用業(yè)務(wù)容器的7天資源使用量的95分位值作為歷史負(fù)載targetUsed,以及bufferFactor表示預(yù)期的資源飽和率,我們按如下公式計(jì)算得到推薦的資源值targetRequest,并更新到VPA對(duì)象的Status中??梢钥吹剑A(yù)期資源飽和率實(shí)際上決定了給容器留多少配額buffer。對(duì)于服務(wù)等級(jí)較高的應(yīng)用,我們希望其峰值飽和率相對(duì)較低,例如40%,以確保其在流量突發(fā)等場(chǎng)景下的穩(wěn)定性;對(duì)于服務(wù)等級(jí)較低的應(yīng)用,我們會(huì)把預(yù)期飽和率設(shè)的高一些,雖然犧牲了一定的穩(wěn)定性,但是可以節(jié)省更多的配額資源。
在計(jì)算推薦值targetRequest時(shí),需要約束推薦值的邊界值,一般在生產(chǎn)環(huán)境中推薦下限MinAllowed默認(rèn)為0.1C或者0.1G,推薦上限值MaxAllowed=資源的limit值-資源預(yù)留值,這樣保證業(yè)務(wù)容器的推薦資源值合理有效。
場(chǎng)景二:業(yè)務(wù)Pod發(fā)生OOM事件,自動(dòng)調(diào)整資源的limit值,提高運(yùn)維效率
業(yè)務(wù)容器因?yàn)橘Y源評(píng)估不準(zhǔn)確,內(nèi)存的limit值設(shè)置的較低而觸發(fā)OOM事件,如果不及時(shí)調(diào)整limit值,業(yè)務(wù)容器會(huì)頻繁O(jiān)OM重啟。針對(duì)這個(gè)現(xiàn)象,VPA Recommender控制器可以實(shí)時(shí)捕捉到Pod的OOM事件,并利用下面的公式評(píng)估出新的內(nèi)存limit值。方式是根據(jù)最近內(nèi)存使用量memoryUsed、擴(kuò)容因子oomFactor以及發(fā)生內(nèi)存泄漏的次數(shù)oomCount,計(jì)算出新的內(nèi)存limit值,保證重建的Pod不會(huì)頻繁發(fā)生OOM事件。
四、VPA管理平臺(tái)
VPA管理平臺(tái)基于Paas層的VPA技術(shù),實(shí)現(xiàn)對(duì)集群資源的自動(dòng)化治理能力。該平臺(tái)主要負(fù)責(zé)VPA策略調(diào)優(yōu),VPA策略避讓,VPA效果分析以及VPA異常檢測(cè)等功能,下圖展示了VPA管理平臺(tái)的功能矩陣。
VPA策略調(diào)優(yōu),主要包含業(yè)務(wù)容器資源指標(biāo)管理,維護(hù)VPA策略模板以及VPA策略預(yù)估和對(duì)照分析。
VPA策略避讓,主要用于在壓測(cè)、活動(dòng)等場(chǎng)景中臨時(shí)關(guān)閉某些應(yīng)用的VPA策略。
VPA效果分析,主要用于VPA策略的數(shù)據(jù)運(yùn)營(yíng)和分析工作,著重統(tǒng)計(jì)了資源的覆蓋率,VPA調(diào)整前后的資源量以及調(diào)整記錄。
VPA異常檢測(cè),主要用來監(jiān)控VPA策略的一些異常行為,比如調(diào)整業(yè)務(wù)容器資源發(fā)生失敗,單個(gè)應(yīng)用命中了多個(gè)VPA策略等異常事件。
4.1 VPA策略管理
業(yè)務(wù)容器資源指標(biāo)
資源指標(biāo)用于計(jì)算業(yè)務(wù)容器的歷史負(fù)載情況,一般約定容器前7天資源使用量的95分位值(指標(biāo)名字:app_cpu_usage_7day_p95)作為VPA策略中的指標(biāo)策略,同時(shí)根據(jù)當(dāng)前策略的調(diào)整效果可以靈活變更指標(biāo)策略。
VPA策略模板
VPA策略模板主要是定義了VPA Generator對(duì)象的核心屬性,比如匹配的應(yīng)用等級(jí)、自動(dòng)擴(kuò)縮的執(zhí)行周期、資源推薦值上下限值、指標(biāo)策略以及預(yù)期資源飽和率。平臺(tái)可以根據(jù)VPA的策略模板在K8s集群中創(chuàng)建出VPA Generater對(duì)象。
VPA的預(yù)跑和對(duì)照能力
基于VPA對(duì)象的預(yù)跑模式,平臺(tái)可以下發(fā)預(yù)跑的VPA策略,用于分析該策略的效果是否符合預(yù)期,確保完全符合預(yù)期后再下發(fā)正式的VPA策略。對(duì)于已經(jīng)生效的VPA策略,我們也可以下發(fā)一個(gè)預(yù)跑模式的VPA策略作為對(duì)照組,精細(xì)化對(duì)比分析VPA調(diào)整效果,最終選取出最優(yōu)的VPA策略。
4.2 VPA策略避讓
在生產(chǎn)環(huán)境中,存在部分場(chǎng)景需要臨時(shí)關(guān)閉某些應(yīng)用的VPA策略。例如業(yè)務(wù)經(jīng)常會(huì)針對(duì)大型活動(dòng)進(jìn)行提前壓測(cè),在壓測(cè)期間,業(yè)務(wù)流量比平時(shí)高出多倍,相應(yīng)的業(yè)務(wù)容器的資源負(fù)載也會(huì)增加不少。此時(shí)VPA如果繼續(xù)按歷史峰值來計(jì)算推薦值,會(huì)造成資源池的分配率突增。因此,VPA管理平臺(tái)聯(lián)動(dòng)壓測(cè)平臺(tái),支持了策略避讓的能力,可以指定具體的應(yīng)用以及避讓的時(shí)間窗口。
4.3 VPA效果分析
VPA效果分析主要記錄了一些關(guān)鍵的運(yùn)營(yíng)數(shù)據(jù),可用于評(píng)估VPA策略是否符合預(yù)期。運(yùn)營(yíng)數(shù)據(jù)包含以下幾個(gè)關(guān)鍵指標(biāo):覆蓋的應(yīng)用數(shù)量、覆蓋的資源量以及資源擴(kuò)縮記錄等。
VPA策略覆蓋的應(yīng)用數(shù)量,下圖記錄了VPA策略命中應(yīng)用數(shù)量的趨勢(shì)圖,其中區(qū)分了VPA可以調(diào)整的應(yīng)用數(shù)量和不可調(diào)整的應(yīng)用數(shù)量
VPA策略覆蓋的資源量(以cpu為例),下圖記錄了VPA策略命中的所有應(yīng)用占用資源請(qǐng)求量的趨勢(shì)圖(即覆蓋cpu容量),其中包含VPA策略預(yù)估調(diào)整之后應(yīng)用所占cpu容量和不可被調(diào)整的cpu容量。通過趨勢(shì)圖的對(duì)比可以看出該VPA策略預(yù)估應(yīng)用被調(diào)整后所占cpu容量和覆蓋cpu容量比較接近,說明資源調(diào)整的比較充分。
VPA策略調(diào)整記錄明細(xì),記錄了VPA策略命中的每個(gè)應(yīng)用擴(kuò)縮資源請(qǐng)求量的情況。其中包含應(yīng)用資源調(diào)整前后的容量和變化量,以及該策略覆蓋的應(yīng)用數(shù),整體釋放的空閑資源容量。
資源的飽和度指標(biāo),記錄了業(yè)務(wù)服務(wù)的資源飽和度(即資源使用量/資源請(qǐng)求量)的變化趨勢(shì)圖。VPA就是根據(jù)預(yù)期的資源飽和度進(jìn)行資源推薦值計(jì)算的,因此我們根據(jù)服務(wù)的實(shí)際資源飽和率趨勢(shì)圖,可以有效地評(píng)估VPA的整體調(diào)整效果。
4.4 VPA異常檢測(cè)
VPA異常檢測(cè)主要是通過對(duì)VPA核心組件錯(cuò)誤日志、錯(cuò)誤事件的自動(dòng)分析以及定期對(duì)關(guān)鍵指標(biāo)的巡檢來實(shí)現(xiàn)。例如VPA強(qiáng)依賴于監(jiān)控系統(tǒng)的可用性,如果VPA Recommender控制器獲取容器歷史指標(biāo)的錯(cuò)誤日志頻率超過了閾值,值班同學(xué)就會(huì)收到告警。此外,系統(tǒng)底層也記錄了非常詳細(xì)的應(yīng)用資源使用率數(shù)據(jù)、VPA調(diào)整明細(xì)數(shù)據(jù)等,基于這些數(shù)據(jù),VPA管理平臺(tái)可以靈活地自定義一些巡檢規(guī)則,例如VPA策略命中的應(yīng)用是否能達(dá)到預(yù)期的峰值飽和率、VPA調(diào)整失敗率是否高于閾值等。這一系列的異常檢測(cè)和報(bào)警手段,使得我們能快速感知到VPA系統(tǒng)存在的潛在風(fēng)險(xiǎn)并及時(shí)介入處理。
五、基于VPA的集群資源治理
集群容量管理是一個(gè)逐步優(yōu)化的過程,有了這套VPA系統(tǒng)之后,我們?nèi)匀恍枰掷m(xù)地優(yōu)化VPA策略,以及治理業(yè)務(wù)方的一些不合理的資源配置。
1、VPA存在一些無法生效的場(chǎng)景,VPA管理平臺(tái)會(huì)把這部分問題記錄下來,便于制定優(yōu)化資源調(diào)整的策略。比如某些低服務(wù)等級(jí)的應(yīng)用,其Pod Qos等級(jí)卻是guaranteed,此時(shí)VPA是無法調(diào)整業(yè)務(wù)容器的資源請(qǐng)求量的。對(duì)于這類問題,我們會(huì)梳理出應(yīng)用列表,找業(yè)務(wù)服務(wù)的負(fù)責(zé)人進(jìn)行溝通并修改配置。當(dāng)然對(duì)于新增應(yīng)用,我們也會(huì)在應(yīng)用創(chuàng)建時(shí)增加一些預(yù)檢措施,提前規(guī)避此類問題。
2、優(yōu)化業(yè)務(wù)容器指標(biāo)。我們一開始采用前一天的99分位值作為歷史負(fù)載來計(jì)算推薦值,忽略了周末的流量高峰對(duì)第二天推薦值的影響,導(dǎo)致資源推薦值波動(dòng)比較大。替換為前七天的95分位值作為歷史負(fù)載計(jì)算推薦值之后,整體推薦值變得平穩(wěn)很多。
3、精細(xì)化配置VPA策略的預(yù)期飽和率,不同保障等級(jí)的應(yīng)用期望飽和率不盡相同。例如,對(duì)于多活場(chǎng)景下的應(yīng)用,保證VPA對(duì)象的資源飽和率設(shè)置低于50%,確保單機(jī)房故障之后,多活機(jī)房可以承載全部流量。對(duì)于非多活場(chǎng)景下的非高保障的應(yīng)用,VPA對(duì)象的資源飽和率設(shè)置為70%~80%,從而減少資源浪費(fèi)。
六、相關(guān)收益
基于上述VPA技術(shù),我們較好地解決了IDC以及公有云集群中的容器規(guī)格不合理問題,從而在存量機(jī)器中釋放出了大量閑置資源。在測(cè)試集群中,整體釋放了約60%的cpu容量空間以及30%的內(nèi)存容量空間;在生產(chǎn)集群中,釋放了約30%的cpu容量空間,累計(jì)節(jié)省了超千臺(tái)機(jī)器的采購(gòu)成本。
七、總結(jié)與展望
本文介紹了B站云平臺(tái)垂直彈性伸縮(VPA)的技術(shù)實(shí)踐,主要涉及VPA的核心控制器邏輯,包括策略生成模板、推薦值計(jì)算、推薦值更新模式等。同時(shí)介紹了VPA管理平臺(tái)的VPA策略調(diào)優(yōu)、VPA策略避讓、VPA效果分析以及VPA異常檢測(cè)等功能。我們充分結(jié)合了實(shí)際的業(yè)務(wù)場(chǎng)景,將VPA技術(shù)產(chǎn)品化并推廣落地。在未來的VPA技術(shù)迭代過程中,我們會(huì)結(jié)合應(yīng)用畫像、算力標(biāo)準(zhǔn)化等技術(shù)能力,制定精細(xì)化的VPA策略,進(jìn)一步助力降本增效。
參考資料:
[1] https://mp.weixin.qq.com/s/pPEkfrLm0XEpgMU1KjiD4A
[2] https://github.com/kubernetes/enhancements/issues/1287
本期作者
許龍
嗶哩嗶哩資深開發(fā)工程師
崔超杰
嗶哩嗶哩高級(jí)開發(fā)工程師
張鶴
嗶哩嗶哩資深SRE工程師