摘要:作者丨魏旸騰訊高級工程師,具有年運(yùn)維經(jīng)驗(yàn)的專家。月日,首期沙龍海量運(yùn)維實(shí)踐大曝光在騰訊大廈圓滿舉行。您也可以在騰訊織云公眾號下載本次演講。相關(guān)文章騰訊云運(yùn)維干貨沙龍海量運(yùn)維實(shí)踐大曝光一騰訊云運(yùn)維干貨沙龍海量運(yùn)維實(shí)踐大曝光三沙龍下載地址
作者丨魏旸:騰訊高級工程師,具有15年運(yùn)維經(jīng)驗(yàn)的專家。負(fù)責(zé)QQ空間、微云、QQ空間相冊等的運(yùn)維工作。
12月16日,首期沙龍“海量運(yùn)維實(shí)踐大曝光”在騰訊大廈圓滿舉行。沙龍出品人騰訊運(yùn)維技術(shù)總監(jiān)、復(fù)旦大學(xué)客座講師、DevOps專家梁定安,講師騰訊手機(jī)QQ運(yùn)維負(fù)責(zé)人郭智文,騰訊高級工程師魏旸,騰訊SNG資深運(yùn)維專家周小軍出席沙龍,并帶來精彩的技術(shù)分享。為了便于大家學(xué)習(xí),特將本次沙龍講師的演講內(nèi)容進(jìn)行了整理。您也可以在騰訊織云公眾號下載本次演講PPT。
背景騰訊社交業(yè)務(wù)包括QQ、QQ空間、QQ相冊等核心業(yè)務(wù)。核心業(yè)務(wù)按深圳、天津和上海三地分布,各支撐華南、華中、華東、華北、西北、西南等大區(qū)的用戶訪問。
大家都知道核心業(yè)務(wù)多地部署物理容災(zāi),名字服務(wù)、負(fù)載均衡等手段架構(gòu)容災(zāi)。但是當(dāng)機(jī)房、網(wǎng)絡(luò)等大范圍故障真正發(fā)生時(shí),我們要怎么做才能保證業(yè)務(wù)持續(xù)可用?拿前一段時(shí)間騰訊深圳某個(gè)機(jī)房光纖被挖斷的案例來講,業(yè)務(wù)碰到的問題:
機(jī)房爆炸了,會影響多少用戶?
是否需要調(diào)度?
怎么調(diào)度?
天津機(jī)房覆蓋范圍的用戶調(diào)度到哪里?調(diào)多少?
怎么調(diào)度?
帶著這些問題,我簡單介紹一下空間SET化分布異地多活方案。
為什么要做SET?提升質(zhì)量,提升速度,提升效率,節(jié)約成本。
業(yè)務(wù)通過SET化部署在多個(gè)物理機(jī)房,當(dāng)某個(gè)機(jī)房故障時(shí),我們可以快速切換服務(wù)到其他機(jī)房,可以做到物理容災(zāi)。同時(shí),多地部署也提供了用戶就近接入的能力,提升用戶體驗(yàn)。再者,業(yè)務(wù)關(guān)聯(lián)的服務(wù)部署在同一個(gè)城市或者機(jī)房,能夠極大減少業(yè)務(wù)之間的機(jī)房穿越帶寬,降低成本。最后,SET的復(fù)制結(jié)合織云的快速部署能力,我們能夠快速復(fù)制并在不同地域部署多個(gè)業(yè)務(wù)SET。
SET的屬性簡單來說,SET是一個(gè)包含了多個(gè)標(biāo)準(zhǔn)化模塊的集合,同時(shí)包含了更多的業(yè)務(wù)屬性,比如業(yè)務(wù)形態(tài),核心指標(biāo),柔性策略,地域,調(diào)度策略等等。
怎么分SET?橫向分布與條帶化的思維 ? 海量用戶按不同比例被分流到不同的專區(qū)訪問。比如用戶接入維度,我們劃分了PC、移動端SET,同時(shí)在移動端我們又可以細(xì)分為安卓和蘋果用戶。比如運(yùn)營商,比如地域分布。每一個(gè)SET都需要有可度量的指標(biāo),空間業(yè)務(wù)主要根據(jù)SET內(nèi)模塊負(fù)載、可支撐的用戶量、和實(shí)時(shí)交易量等維度來評估一個(gè)SET。
SET模型在有了可度量的SET標(biāo)準(zhǔn)后,我們就可以基于自己的業(yè)務(wù)形態(tài)來創(chuàng)建SET模型了。以空間為例,用戶登錄進(jìn)空間首先會看到自己發(fā)表的歷史說說,相冊,好友動態(tài)等等信息,我們把這一類的業(yè)務(wù)場景劃分為讀數(shù)據(jù)SET。用戶會在空間上發(fā)說說,上傳照片或視頻,我們把這一類的業(yè)務(wù)場景劃分為寫數(shù)據(jù)SET。同時(shí)深圳的PC或者移動端用戶更新了空間,數(shù)據(jù)需要同步到其他地域的后端存儲上,空間有一套專用的同步中心架構(gòu)來保證數(shù)據(jù)同步。
我們基于空間的業(yè)務(wù)場景制定的一個(gè)大致的模型就是這樣:根據(jù)接入層區(qū)分用戶,單點(diǎn)寫,多點(diǎn)讀,數(shù)據(jù)同步模塊保證多點(diǎn)讀的數(shù)據(jù)一致性。
命名規(guī)范:初步模型制定好以后,我們需要針對不同的架構(gòu)和業(yè)務(wù)場景來劃分不同的SET。比如空間首屏,主要由空間的信息中心模塊來負(fù)責(zé)數(shù)據(jù)拉取展現(xiàn),我們把信息中心相關(guān)聯(lián)的業(yè)務(wù)模塊都統(tǒng)一劃分為I類SET。再根據(jù)不同的
我們還根據(jù)不同數(shù)字代表不同的地域信息和SET順序。
1) 名稱分為2段,用“_”分割;第1段固定為SET,表示專區(qū);
2) 第二段分為4節(jié),每節(jié)占一位,前3位與目前規(guī)則一致:
3) SET類型,簡寫為A、D 、B、I,分別代表接入、數(shù)據(jù)SET、基礎(chǔ)數(shù)據(jù),信息中心等;
4) 地域信息,分別有深圳,上海、西安等,用0、1、2分別按序增加,最多到16進(jìn)制等
5) SET數(shù)序號,從1、2、3開始,最多到16進(jìn)制的F;
6) 業(yè)務(wù)產(chǎn)品信息,即Qzone為各業(yè)務(wù)搭建的SET,用一個(gè)字母代替,如P、G、U分別代表如PENGYOU、3G、UGC等
同步中心同步中心是空間業(yè)務(wù)SET化能力的一個(gè)重要組件,業(yè)務(wù)數(shù)據(jù)的同步都依賴同步中心。簡單介紹一下同步中心的架構(gòu):單寫多度的業(yè)務(wù)講數(shù)據(jù)接入同步中心后,同步中心通過多種技術(shù)手段保證數(shù)據(jù)同步到多地的讀SET。同步中心架構(gòu)較復(fù)雜,這里主要介紹一下同步中心的有序轉(zhuǎn)發(fā):
許多業(yè)務(wù)對用戶請求處理的先后順序有很嚴(yán)格的要求,為了實(shí)現(xiàn)用戶請求的有序轉(zhuǎn)發(fā),同步中心做了三個(gè)功能:
接入機(jī)轉(zhuǎn)發(fā)請求到存儲機(jī)使用有狀態(tài)l5,確保同一個(gè)號碼的請求流水落到同一臺機(jī)器上。
固定進(jìn)程讀取固定號段,平均分配每個(gè)進(jìn)程處理的號段,并且確保同一個(gè)號碼的請求由同一個(gè)進(jìn)程處理。
使用半異步方式進(jìn)行轉(zhuǎn)發(fā),批量讀取流水,對不同號碼的請求流水并發(fā)轉(zhuǎn)發(fā),對相同號碼的流水進(jìn)行串行轉(zhuǎn)發(fā)。
空間實(shí)際的SET展示 SET鏈路SET內(nèi)部和不同SET的業(yè)務(wù)模塊都是通過名字服務(wù)來相互訪問的
用戶層GSLB->STGW=TGW+Nginx,Nginx自動獲取vip
接入->邏輯:L5,vip->l5名字服務(wù)。負(fù)載均衡的時(shí)候有過載保護(hù)
邏輯->存儲:L5。Stgw和L5都是騰訊自研的路由、名字服務(wù)組件。調(diào)度都是基于名字
服務(wù)來實(shí)施。L5有SET化的標(biāo)簽,可以讓SET的服務(wù)配置文件保持一致的情況下,服務(wù)只在SET內(nèi)調(diào)度??梢詷O大提升SET的部署效率。
SET容量管理:指定好的SET,需要通過壓測來找出SET內(nèi)業(yè)務(wù)模塊資源的最優(yōu)配比。我們會通過調(diào)度現(xiàn)網(wǎng)用戶來對SET做壓測,通過壓測找出SET內(nèi)某個(gè)模塊的短板并及時(shí)調(diào)整資源配比。同時(shí),隨著SET內(nèi)模塊服務(wù)的升級,服務(wù)性能也在變化,我們會定期做調(diào)度演習(xí)來壓測SET的完整鏈路,及時(shí)更新SET內(nèi)模塊的資源配比,可支撐用戶數(shù)等SET核心指標(biāo)。
SET的部署和擴(kuò)容在制定好SET模型,明確了每個(gè)SET可以支撐多少用戶量,對應(yīng)的業(yè)務(wù)場景,包含了多少個(gè)模塊,可以支撐多少用戶后,就可以開始著手SET部署了。每個(gè)SET建立一個(gè)模板,錄入SET內(nèi)包含的模塊,模塊內(nèi)服務(wù)、權(quán)限、文件等信息保持一致,不同SET的配置不同
SET的復(fù)制根據(jù)SET模板快速部署。這些信息最后會同步到織云,由織云來快速部署服務(wù)。一個(gè)SET內(nèi)幾十個(gè)模塊,幾百臺服務(wù)器可在10分鐘內(nèi)完成自動化部署上線 。
SET的監(jiān)控針對SET內(nèi)不同的業(yè)務(wù)架構(gòu),業(yè)務(wù)形態(tài),我們也開發(fā)了配套的監(jiān)控工具。
SET的調(diào)度前面主要說了為什么要做SET,怎么做,以及怎么維護(hù)和監(jiān)控,回到深圳機(jī)房光纖被挖斷的問題上來,我們是怎么做的?
每個(gè)SET都有可衡量的指標(biāo),模塊設(shè)備的平均負(fù)載都在40%左右。
如果網(wǎng)絡(luò)故障影響到了用戶接入W01 SET,我們會調(diào)整stgw將用戶轉(zhuǎn)移到部署在另一個(gè)機(jī)房的W02 SET。如果W01 訪問I01故障,我們可以把W01的訪問切換到W02。如果整個(gè)深圳機(jī)房都不可訪問,我們則會把請求切換到上海、天津的SET中。
柔性策略:重大活動期間,用戶量可能會突增幾倍甚至十幾倍,靠堆設(shè)備不現(xiàn)實(shí)。我們針對這類場景制定了柔性策略,當(dāng)SET容量達(dá)到一定的標(biāo)準(zhǔn)時(shí),比如CPU負(fù)載達(dá)到70%,我們就會開啟業(yè)務(wù)的柔性策略,犧牲用戶部分非核心功能體驗(yàn)來保證業(yè)務(wù)整體可持續(xù)可用。柔性策略有分級,SET容量沒達(dá)到一個(gè)標(biāo)準(zhǔn)就會自動啟用不同的柔性策略。
相關(guān)文章騰訊云運(yùn)維干貨沙龍-海量運(yùn)維實(shí)踐大曝光 (一)
騰訊云運(yùn)維干貨沙龍-海量運(yùn)維實(shí)踐大曝光 (三)
沙龍PPT下載地址:https://share.weiyun.com/5c406a57164ed4cf7e248160aebf74c3
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/8024.html
摘要:月日,首期沙龍海量運(yùn)維實(shí)踐大曝光在騰訊大廈圓滿舉行。六總結(jié)相關(guān)文章騰訊云運(yùn)維干貨沙龍海量運(yùn)維實(shí)踐大曝光二騰訊云運(yùn)維干貨沙龍海量運(yùn)維實(shí)踐大曝光三沙龍下載地址 作者丨郭智文:騰訊高級工程師,手機(jī)QQ運(yùn)維負(fù)責(zé)人。多年來,對移動互聯(lián)網(wǎng)應(yīng)用的接入質(zhì)量度量、優(yōu)化有豐富的實(shí)踐經(jīng)驗(yàn),專注于業(yè)務(wù)架構(gòu)優(yōu)化、彈性伸縮、運(yùn)營服務(wù)管理、幫助產(chǎn)品打造極致的技術(shù)基礎(chǔ)和質(zhì)量口碑。 12月16日,首期沙龍海量運(yùn)維實(shí)踐大...
摘要:月日,首期沙龍海量運(yùn)維實(shí)踐大曝光在騰訊大廈圓滿舉行??椩聘咝У膶?shí)踐是,它是以運(yùn)維標(biāo)準(zhǔn)化為基石,以為核心的自動化運(yùn)維平臺。 作者丨周小軍,騰訊SNG資深運(yùn)維工程師,負(fù)責(zé)社交產(chǎn)品分布式存儲的運(yùn)維及團(tuán)隊(duì)管理工作。對互聯(lián)網(wǎng)網(wǎng)站架構(gòu)、數(shù)據(jù)中心、云計(jì)算及自動化運(yùn)維等領(lǐng)域有深入研究和理解。 12月16日,首期沙龍海量運(yùn)維實(shí)踐大曝光在騰訊大廈圓滿舉行。沙龍出品人騰訊運(yùn)維技術(shù)總監(jiān)、復(fù)旦大學(xué)客座講師、De...
閱讀 3840·2021-11-11 16:55
閱讀 1726·2021-10-08 10:04
閱讀 3675·2021-09-27 13:36
閱讀 2893·2019-08-30 15:53
閱讀 1940·2019-08-30 11:17
閱讀 1339·2019-08-29 16:55
閱讀 2173·2019-08-29 13:57
閱讀 2594·2019-08-29 13:13