掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
作者:Pan Liangbiao 2022-12-15 11:26:44
云計算
云原生 本文會詳細(xì)介紹vivo在容器集群高可用建設(shè)中的具體實(shí)踐,包括在容器集群高可用建設(shè)、容器集群自動化運(yùn)維、容器平臺架構(gòu)升級、容器平臺能力增強(qiáng)、容器生態(tài)打通等層面的打磨和建設(shè)。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、鷹手營子網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、鷹手營子網(wǎng)絡(luò)營銷、鷹手營子企業(yè)策劃、鷹手營子品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供鷹手營子建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
2018年起,vivo以容器作為基礎(chǔ)底座,打造了一站式云原生機(jī)器學(xué)習(xí)平臺。向上支撐了算法中臺,為算法工程師提供數(shù)據(jù)管理、模型訓(xùn)練、模型管理、模型部署等能力,為廣告、推薦和搜索等業(yè)務(wù)賦能,成功為算法實(shí)現(xiàn)了降本、提效,讓云原生和容器價值初露鋒芒?;跈C(jī)器學(xué)習(xí)平臺的試點(diǎn)成果,經(jīng)過算法場景的試點(diǎn)實(shí)踐和價值分析,對內(nèi)部戰(zhàn)略做了升級。確定基于云原生理念去構(gòu)建行業(yè)一流的容器生態(tài),實(shí)現(xiàn)規(guī)模化的降本提效目標(biāo)。
本文會詳細(xì)介紹vivo在容器集群高可用建設(shè)中的具體實(shí)踐,包括在容器集群高可用建設(shè)、容器集群自動化運(yùn)維、容器平臺架構(gòu)升級、容器平臺能力增強(qiáng)、容器生態(tài)打通等層面的打磨和建設(shè)。目前,vivo容器產(chǎn)品能力矩陣逐漸趨于完善,并將圍繞全面容器化、擁抱云原生和在離線混部三個方向繼續(xù)發(fā)力。
云原生和容器,是當(dāng)下比較火熱的話題,其中 Kubernetes更是成為容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。
國內(nèi)外各企業(yè)在內(nèi)部落地云原生和容器的過程中,基于自己的業(yè)務(wù)場景和發(fā)展階段,會遇到各種問題和挑戰(zhàn),本文是vivo在云原生容器領(lǐng)域的探索和落地實(shí)踐,希望能對讀者有一些借鑒和幫助。
首先是容器技術(shù)和云原生理念的介紹。
容器技術(shù)不是一個新技術(shù),從1979年unix系統(tǒng)的chroot誕生到現(xiàn)在,歷經(jīng)40多年的發(fā)展,共經(jīng)過了四個階段,分別是:技術(shù)萌芽期、技術(shù)迸發(fā)期、商用探索期和商用拓展期。
每個階段,解決了不同的技術(shù)問題,分別是:環(huán)境隔離、軟件分發(fā)和編排、商用服務(wù)形態(tài)、規(guī)模化和場景拓展。
相比于虛擬機(jī),容器技術(shù)少了一層虛擬操作系統(tǒng)的損耗,因此它比虛擬機(jī)具有更好的性能表現(xiàn)。另外容器在系統(tǒng)資源、啟動時間、集群規(guī)模、高可用策略等方面,也有非常明顯的優(yōu)勢。
2020年CNCF中國云原生調(diào)查報告顯示,接受調(diào)查的中國企業(yè),有68%已經(jīng)在生產(chǎn)環(huán)境使用容器技術(shù)。
從行業(yè)發(fā)展看,不管是云廠商還是各大科技公司,都在基于容器技術(shù)構(gòu)建自己的新一代基礎(chǔ)架構(gòu),推動企業(yè)數(shù)字創(chuàng)新。容器技術(shù)已經(jīng)得到廣泛的認(rèn)可和普及。
容器技術(shù)催生了云原生思潮,云原生生態(tài)推動了容器技術(shù)的發(fā)展。那么云原生的準(zhǔn)確定義和含義是什么呢?
云原生其實(shí)沒有標(biāo)準(zhǔn)定義,如果非要給他一個定義,行業(yè)有兩種觀點(diǎn):
它把云原生分為3種核心技術(shù)和2個核心理念:
但是,不管是那一種定義,容器都是其基礎(chǔ),是云原生落地的核心技術(shù)手段。
任何技術(shù)和理念,都必須有實(shí)際的業(yè)務(wù)價值。從效率、成本、質(zhì)量三個維度,來分析云原生和容器的技術(shù)價值,可總結(jié)如下:
新技術(shù)的引入帶來新的價值,也必然會引入新的問題,接下來介紹vivo在容器技術(shù)上的探索和實(shí)踐。
在vivo的算法場景中,機(jī)器學(xué)習(xí)平臺負(fù)責(zé)算法模型迭代,是互聯(lián)網(wǎng)算法業(yè)務(wù)中核心的一環(huán),早期的平臺基于傳統(tǒng)的架構(gòu),在效率、成本、性能和體驗(yàn)上均有一定的不足,無法滿足算法業(yè)務(wù)快速增長的訴求?;诖耍覀兪紫仍谒惴▓鼍斑M(jìn)行容器的試點(diǎn)探索。從2018年開始,我們以容器作為基礎(chǔ)底座,打造了vivo的一站式云原生機(jī)器學(xué)習(xí)平臺,向上支撐了公司的算法中臺,為算法工程師提供數(shù)據(jù)管理、模型訓(xùn)練、模型管理、模型部署等能力,為廣告、推薦和搜索等業(yè)務(wù)賦能。
vivo的云原生機(jī)器學(xué)習(xí)平臺具備如下5大優(yōu)勢:
vivo云原生機(jī)器學(xué)習(xí)平臺,成功為算法實(shí)現(xiàn)了降本、提效,讓云原生和容器價值初露鋒芒。
基于前面機(jī)器學(xué)習(xí)平臺的試點(diǎn)成果,我們深入分析和挖掘容器和云原生的價值,結(jié)合vivo的情況,我們發(fā)現(xiàn)容器和云原生是企業(yè)大規(guī)模降本和提效的最佳方案。
1)在降本方面
當(dāng)前我們內(nèi)部服務(wù)器資源的利用率較低,以CPU利用率為例,當(dāng)前vivo服務(wù)器整體利用率均值在25%左右,相比行業(yè)一流水平的40%~50%,還有不少的提升空間。
容器在資源隔離、統(tǒng)一調(diào)度和在離線混部等方面的優(yōu)勢,均是提升資源ROI的有效技術(shù)手段。
2)在提效方面
當(dāng)前我們在中間件版本升級、機(jī)器遷移、測試環(huán)境管理、突發(fā)流量應(yīng)對和全球化部署的環(huán)境一致性等方面均有業(yè)務(wù)痛點(diǎn)。
容器的快速交付、彈性自運(yùn)維、微服務(wù)、服務(wù)網(wǎng)格等云原生技術(shù)和架構(gòu),則是提效的有力措施。
經(jīng)過算法場景的試點(diǎn)實(shí)踐和價值分析,我們對內(nèi)部戰(zhàn)略做了升級, 確定基于云原生理念去構(gòu)建行業(yè)一流的容器生態(tài),實(shí)現(xiàn)規(guī)模化的降本提效目標(biāo)。
為了更好匹配戰(zhàn)略落地,擁抱云原生,我們還對內(nèi)部技術(shù)架構(gòu)重新規(guī)劃和升級,新增引入統(tǒng)一流量接入平臺、容器運(yùn)維管理平臺、統(tǒng)一名字服務(wù)、容器監(jiān)控等平臺和能力,支撐容器生態(tài)在公司內(nèi)部的全面建設(shè)和推廣。
2.4.1 集群挑戰(zhàn)
要提供大規(guī)模的生產(chǎn)可用的容器服務(wù),容器集群的可用性首先會面臨諸多挑戰(zhàn)。下面介紹vivo容器化,在生產(chǎn)集群建設(shè)過程中遇到的4個比較大的挑戰(zhàn)。
針對挑戰(zhàn),我們的應(yīng)對方案分別是:高可用、可觀測、標(biāo)準(zhǔn)化和自動化。其中容器監(jiān)控和k8s版本無損升級的挑戰(zhàn),vivo公眾號有詳細(xì)技術(shù)方案的介紹,本文側(cè)重介紹集群高可用和運(yùn)維自動化兩部分。
2.4.2 平臺挑戰(zhàn)
除了集群穩(wěn)定性的挑戰(zhàn),平臺也將面臨各種挑戰(zhàn),由于容器平臺和周邊生態(tài)能力不完善,對業(yè)務(wù)存在較高的適配和遷移成本??偨Y(jié)起來我們遇到的挑戰(zhàn)主要有4點(diǎn):
上面這些挑戰(zhàn),推動我們要進(jìn)行容器周邊生態(tài)打通,同時通過增強(qiáng)容器平臺產(chǎn)品能力,來適配各種業(yè)務(wù)場景,降低用戶的遷移成本。
2.5.1 容器集群高可用建設(shè)
接下來,介紹vivo在容器集群高可用建設(shè)中的最佳實(shí)踐,我們是從故障預(yù)防、故障發(fā)現(xiàn)和故障恢復(fù),3個維度來構(gòu)建容器集群可用性保障體系的。
1、在故障預(yù)防上,我們分別從流程工具、容災(zāi)能力和基礎(chǔ)架構(gòu)3個方面來進(jìn)行建設(shè):
2、在故障發(fā)現(xiàn)上,我們主要是通過,自建的監(jiān)控大盤、日常集群巡檢、核心組件監(jiān)控、集群外撥測等措施,對故障及時發(fā)現(xiàn)和處理,降低對業(yè)務(wù)影響。
3、在故障恢復(fù)上,主要是基于前面的故障預(yù)案,快速恢復(fù),及時止損,并做好故障的復(fù)盤,不斷改進(jìn)我們的故障預(yù)防和發(fā)現(xiàn)機(jī)制,沉淀寶貴經(jīng)驗(yàn)。
另外,集群的可觀測性是可用性保障的一個重要依據(jù),我們通過建設(shè)自己的SLO面板,對集群狀態(tài)實(shí)時地進(jìn)行監(jiān)控,只有對運(yùn)營狀況了如指掌,才能做到穩(wěn)如泰山,沉著應(yīng)對一切變化。
2.5.2 容器集群自動化運(yùn)維
除了容器集群自身穩(wěn)定性建設(shè),在運(yùn)維自動化方面,我們建設(shè)了容器多集群管理平臺,實(shí)現(xiàn)集群配置標(biāo)準(zhǔn)化,核心運(yùn)維場景白屏化,來提升運(yùn)維效率。
我們的容器集群管理平臺,是以云原生的方式來管理云原生,簡單來說,就是基于k8s的operator機(jī)制,實(shí)現(xiàn)k8s on k8s。
當(dāng)前,我們的平臺已經(jīng)能夠?qū)崿F(xiàn)多集群的統(tǒng)一納管,集群部署也是自動化、標(biāo)準(zhǔn)化的,還實(shí)現(xiàn)了底層IAAS層打通,集群節(jié)點(diǎn)能全流程化、可視化的一鍵擴(kuò)縮容,而集群巡檢功能,可以幫助我們及時發(fā)現(xiàn)集群的問題和隱患。
通過平臺進(jìn)行日常運(yùn)維和操作,不僅能提升效率,也具備審計能力,有操作和變更日志可追溯,便于問題定位。
2.5.3 容器平臺架構(gòu)升級
為適應(yīng)業(yè)務(wù)容器化在內(nèi)部的快速普及和推廣,我們升級了vivo的容器平臺架構(gòu)。
新的架構(gòu)分為4層,容器+k8s則作為基礎(chǔ)的統(tǒng)一底座,向下對接公司IAAS層的基礎(chǔ)設(shè)施,向上提供容器產(chǎn)品和平臺能力,并通過開放API供上層調(diào)用和定制自己的上層邏輯。
API之上是容器支持的各種服務(wù)類型,包括在線服務(wù)、中間件服務(wù)、大數(shù)據(jù)計算、算法訓(xùn)練、實(shí)時計算等,最上面是為vivo互聯(lián)網(wǎng)各個業(yè)務(wù)進(jìn)行賦能。
基于這套容器平臺架構(gòu),業(yè)務(wù)能實(shí)現(xiàn)資源隔離部署、快速交付和按需使用,同時也具備更好的彈性伸縮能力。對平臺,我們可以統(tǒng)一資源的調(diào)度,實(shí)現(xiàn)資源的分時復(fù)用、在離線混部等,來提升資源的利用率。
2.5.4 容器平臺能力增強(qiáng)
vivo內(nèi)部容器化場景比較多樣化,為了讓業(yè)務(wù)能夠安心、低成本的接入和使用容器的能力,在推廣過程中,我們基于開源+自研做了容器的適配和原生能力的增強(qiáng)。
下面對6個產(chǎn)品能力增強(qiáng)進(jìn)行簡單的分享:
當(dāng)然,在充分享受開源紅利的同時,我們也持續(xù)地參與開源協(xié)同,回饋社區(qū)。在使用和自研的過程中,我們也把自己生產(chǎn)實(shí)踐過程中發(fā)現(xiàn)的問題和積累的經(jīng)驗(yàn)提交到社區(qū),例如Dragonfly2、Karmada等。
2.5.5 容器CICD一體化
除了平臺能力的增強(qiáng),容器平臺作為一個PaaS平臺,需要和周邊的生態(tài)打通,才能讓業(yè)務(wù)更好的遷移和使用,其中最重要的就是發(fā)布系統(tǒng)的打通,也就是CICD平臺。
幾乎每個科技公司都會有自己的CICD,它是一個DevOps自動化的工具,可進(jìn)行業(yè)務(wù)構(gòu)建和編排部署的流水線。
vivo的CICD平臺底層架構(gòu)是基于JenKins+Spinnaker實(shí)現(xiàn)的,整個容器構(gòu)建和部署流程如下:
2.5.6 統(tǒng)一流量接入
接下來,介紹容器生態(tài)里,最重要的業(yè)務(wù)流量接入層的打通。
早期,vivo內(nèi)部是基于Nginx,來實(shí)現(xiàn)的南北流量和東西流量的轉(zhuǎn)發(fā)。在虛擬機(jī)和物理機(jī)場景能比較好的支撐,隨著容器在內(nèi)部全面的推廣,傳統(tǒng)的Nginx架構(gòu)已不能適配。
主要體現(xiàn)在,容器場景業(yè)務(wù)實(shí)例數(shù)量,相比原來虛擬機(jī)和物理機(jī)成倍數(shù)增長,容器發(fā)布過程IP的頻發(fā)變化和狀態(tài)同步,都會對Nginx集群造成非常大的壓力,在業(yè)務(wù)請求量非常大的情況下,接入層的配置文件刷新和加載,會造成業(yè)務(wù)的抖動,這是我們不能接受的。
基于這個背景,我們基于APISIX構(gòu)建了云原生流量接入層,來適應(yīng)全面容器化的需求。經(jīng)過一年多的建設(shè),當(dāng)前我們的統(tǒng)一流量接入平臺已經(jīng)能夠很好的支撐容器化的接入,同時具備更好的擴(kuò)展能力。
2.6.1 產(chǎn)品能力矩陣完善
經(jīng)過多年的打磨和建設(shè),vivo容器產(chǎn)品能力矩陣趨于完善,整個產(chǎn)品能力矩陣,分為4層:
2.6.2 業(yè)務(wù)接入成果凸顯
接下來,會具體介紹下vivo容器推廣情況。
目前容器在vivo內(nèi)部主要覆蓋4大場景,分別是:互聯(lián)網(wǎng)在線業(yè)務(wù)、算法在線、大數(shù)據(jù)計算和AI算法訓(xùn)練等。接下來,會從接入規(guī)模和價值來簡單介紹。
業(yè)務(wù)容器化后,給業(yè)務(wù)在降本提效上帶來的效果非常明顯,包括但不限于擴(kuò)縮容效率、彈性伸縮能力、業(yè)務(wù)自愈能力、資源成本等方面。
基于我們的探索和實(shí)踐,可總結(jié)為技術(shù)價值、推廣策略、平臺建設(shè)和云原生突破4個維度的思考。
總的來說,技術(shù)服務(wù)于業(yè)務(wù),企業(yè)應(yīng)基于自身現(xiàn)狀,尋找合適的解決方案,并為業(yè)務(wù)創(chuàng)造價值。
從過去看未來發(fā)展,回顧過去10年歷程,vivo基礎(chǔ)架構(gòu)的發(fā)展經(jīng)歷了3個階段:
回歸事物本源思考,做正確的事,并把事情做正確。不盲從,有定力,基于價值,客觀看待新技術(shù)發(fā)展,大膽假設(shè)、小心驗(yàn)證、實(shí)踐出真知。
vivo云原生的未來,將會朝著3個方向發(fā)展,分別是全面容器化、擁抱云原生和在離線混部。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流