愛奇藝廣告平臺(tái)的架構(gòu)設(shè)計(jì)與演進(jìn)之路
自動(dòng)運(yùn)維系統(tǒng)架構(gòu)
1. 問(wèn)題發(fā)現(xiàn)和分析定位
業(yè)界通用的方式是全鏈路追蹤系統(tǒng)(dapper & zipkip)和智能運(yùn)維,我們也在正在進(jìn)行這方面的工作;除此之外,我們還做了另外兩件事情:異常檢測(cè)和 Staging 環(huán)境建設(shè);
異常檢測(cè):主要是從業(yè)務(wù)層面發(fā)現(xiàn)各種宏觀指標(biāo)的異常,對(duì)于廣告投放系統(tǒng)、庫(kù)存量、曝光量、點(diǎn)擊率和計(jì)費(fèi)率等都是非常受關(guān)注的業(yè)務(wù)指標(biāo);異常檢測(cè)系統(tǒng)可以預(yù)測(cè)業(yè)務(wù)指標(biāo)在當(dāng)前時(shí)刻的合理范圍值,然后跟實(shí)時(shí)數(shù)據(jù)作對(duì)比;如果實(shí)時(shí)數(shù)據(jù)超出預(yù)測(cè)范圍就會(huì)發(fā)出報(bào)警并附帶分析數(shù)據(jù)輔助進(jìn)行問(wèn)題分析;這部分工作由在線服務(wù)和數(shù)據(jù)團(tuán)隊(duì)共同完成,這個(gè)系統(tǒng)有效地提高了問(wèn)題發(fā)現(xiàn)的效率。
愛奇藝廣告平臺(tái)的架構(gòu)設(shè)計(jì)與演進(jìn)之路
Staging 環(huán)境建設(shè):系統(tǒng)變更(包括運(yùn)維和新功能發(fā)布)是引起線上故障的主要原因,所以我們需要一個(gè)系統(tǒng)幫助我們以很小的代價(jià)快速發(fā)現(xiàn)變更異常。
在功能發(fā)布時(shí)大家都會(huì)采用梯度發(fā)布的方法,譬如先升級(jí) 5% 的服務(wù),然后觀察核心指標(biāo)的變化,沒有明顯異常就繼續(xù)推進(jìn)直到全量;這個(gè)方法并不是總能有效發(fā)現(xiàn)問(wèn)題,假如一個(gè)新功能中的 bug 會(huì)導(dǎo)致 1% 的訂單曝光下降 50%,那么在全量發(fā)布之后系統(tǒng)的整體曝光量也只有 0.5% 的變化,也可能因?yàn)槠渌唵蔚奶畛涫沟谜w曝光量沒有變化,所以僅通過(guò)整體曝光量很難發(fā)現(xiàn)這個(gè)問(wèn)題。只有對(duì)所有訂單的曝光量進(jìn)行對(duì)比分析才能準(zhǔn)確地發(fā)現(xiàn)這個(gè)問(wèn)題。
我們?cè)趯?shí)踐中利用向量余弦相似度來(lái)發(fā)現(xiàn)系統(tǒng)變更引起異常,即把一段時(shí)間內(nèi)(5min)曝光的廣告數(shù)量轉(zhuǎn)換成向量并計(jì)算余弦相似度。那么如何得到兩個(gè)向量呢?可以按照梯度發(fā)布的時(shí)間進(jìn)行分割前后各生成一個(gè)向量,這個(gè)方法不夠健壯,不同時(shí)間的向量本身就有一定的差異。
我們是這樣來(lái)解決的:部署一個(gè)獨(dú)立的投放環(huán)境(我們稱為 Staging 環(huán)境,相對(duì)的原本的投放環(huán)境稱為 Base 環(huán)境)承載線上的小流量(譬如 3%),所有的系統(tǒng)變更都先在這里進(jìn)行;然后用 Staging 環(huán)境的向量與 Base 環(huán)境的向量進(jìn)行相似度計(jì)算。
因?yàn)閷?duì)差異非常敏感,使用余弦相似度做監(jiān)控會(huì)有誤報(bào)發(fā)生;不過(guò)這個(gè)并不難解決,通過(guò)一些 bad case 的分析,我們定位并消除了兩個(gè)環(huán)境之間的差異(非 bug)因素;在正常情況下兩個(gè)環(huán)境的相似度會(huì)保持在 95% 左右,并在遇到真正的異常時(shí)會(huì)有明顯的下降觸發(fā)報(bào)警。Staging 環(huán)境及相似度檢測(cè)功能在實(shí)踐中多次幫助我們發(fā)現(xiàn)系統(tǒng)異常。
上篇:
下篇: