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

阿里千億交易背后,運(yùn)維如何做到“0”故障發(fā)布?

運(yùn)維 系統(tǒng)運(yùn)維
阿里巴巴千億交易背后,如何盡量避免發(fā)布故障?面對(duì)實(shí)際運(yùn)維過程中遇到的問題該如何解決?近日,阿里巴巴運(yùn)維技術(shù)專家少荃,給我們帶來了解決方案和思路。

阿里巴巴千億交易背后,如何盡量避免發(fā)布故障?面對(duì)實(shí)際運(yùn)維過程中遇到的問題該如何解決?近日,阿里巴巴運(yùn)維技術(shù)專家少荃,給我們帶來了解決方案和思路。

近幾年,我們?cè)诎l(fā)布效率和穩(wěn)定性方面做了不少工作,其中效率簡(jiǎn)單的說就是發(fā)布耗時(shí)。

一個(gè)是發(fā)布的速度,比如一個(gè)應(yīng)用是 1 個(gè)小時(shí)發(fā)布完成,還是 5 分鐘發(fā)布完成?

另一個(gè)是人員介入,開發(fā)在發(fā)布過程中是否需要介入處理各種發(fā)布過程中出現(xiàn)的問題?這兩者都做好了,才能說是發(fā)布效率提升了。

穩(wěn)定性最基礎(chǔ)的是系統(tǒng)的穩(wěn)定性,保障系統(tǒng)的可用,而最關(guān)鍵的是要保障通過系統(tǒng)來進(jìn)行發(fā)布的應(yīng)用的穩(wěn)定性,不會(huì)因?yàn)榘l(fā)布而導(dǎo)致服務(wù)不可用等故障出現(xiàn)。

效率這塊我們?cè)诩瘓F(tuán)內(nèi)比較受好評(píng)的產(chǎn)品是 SP2P 的文件分發(fā)系統(tǒng),叫做蜻蜓。

根據(jù)阿里自身的一些特點(diǎn),我們實(shí)現(xiàn)了一套安全高效的 P2P 分發(fā),同時(shí)在 P2P 的協(xié)議上引入了超級(jí)節(jié)點(diǎn),就是 S,提升了 P2P 網(wǎng)絡(luò)的啟動(dòng)速度,目前已經(jīng)開源。

穩(wěn)定性這塊我們?nèi)ツ曜隽艘粋€(gè)產(chǎn)品,叫做無人值守發(fā)布,對(duì)發(fā)布進(jìn)行檢測(cè),看看發(fā)布是否會(huì)引起問題,來提升發(fā)布的可靠性,今天就和大家一起交流這方面的心得。

線上發(fā)布之痛

我們?yōu)槭裁匆诜€(wěn)定性方面投入大量精力呢?先看一個(gè)笑話。

變更故障

這個(gè)笑話可能沒那么好笑,但是它真真切切的說明了一個(gè)問題:理想和現(xiàn)實(shí)的差異,你以為是有四個(gè)單身狗陪你,但是實(shí)際卻是另外兩對(duì)情侶。

這個(gè)和我們做生產(chǎn)環(huán)境的發(fā)布是一樣的,我們以為憑借我們出色的邏輯思維能力,已經(jīng)把所有場(chǎng)景都想到了,測(cè)試也做的很充分了,但是,發(fā)布上線后,經(jīng)常會(huì)遇到實(shí)際結(jié)果和預(yù)期不一致,故障發(fā)生了。

我們針對(duì)阿里的故障產(chǎn)生原因做了統(tǒng)計(jì),其中很大一部分都是線上變更引起的,相信在座各位也會(huì)遇到或者制造過故障,開發(fā)和運(yùn)維的同學(xué)對(duì)故障都是很敬畏的。

故障大家都遇到過,但是故障的影響差異會(huì)比較大。有些故障可能是故障發(fā)現(xiàn)后處理了一會(huì)就恢復(fù)了,有些故障則可能會(huì)導(dǎo)致嚴(yán)重的后果。所以我們需要盡量避免變更帶來的故障。

業(yè)務(wù)挑戰(zhàn):阿里的特殊業(yè)務(wù)場(chǎng)景

回到阿里,我們都知道,去年雙 11 的成交額已經(jīng)達(dá)到了 1682 億,想象下,這么大的交易額下,如果出現(xiàn)了故障,那會(huì)怎么樣?

阿里現(xiàn)在的業(yè)務(wù)多樣化發(fā)展,新零售、線下支付等一些新的業(yè)務(wù)場(chǎng)景,要求我們對(duì)故障更加敏感,要能夠更好地避免故障,更快地發(fā)現(xiàn)和處理故障。

還有,如果是線下場(chǎng)景,比如用支付寶坐地鐵,如果出現(xiàn)幾分鐘的服務(wù)不可用,那會(huì)怎么樣?

如何才能有效的避免故障發(fā)生呢?

那么,如何才能在發(fā)布的時(shí)候有效的避免故障發(fā)生呢?

靠“蒙”?大家知道肯定不行。可是細(xì)想一下,很多時(shí)候確實(shí)或多或少在“蒙”。我個(gè)人是有過類似感受的。

我們雖然不會(huì)隨便到不經(jīng)過測(cè)試就進(jìn)行線上發(fā)布,但是雖然已經(jīng)經(jīng)過了多輪測(cè)試,肯定還是沒有辦法覆蓋線上各種復(fù)雜多樣的場(chǎng)景的。

而這些沒有辦法覆蓋的場(chǎng)景,就只能靠運(yùn)氣去"蒙"了,運(yùn)氣好的,這些場(chǎng)景沒有問題;運(yùn)氣不好,剛好就其中一個(gè)場(chǎng)景出問題,出現(xiàn)故障了。

通常來講,為了盡可能不要去“蒙”,我們會(huì)對(duì)上線流程加入各種驗(yàn)證環(huán)節(jié),來保證發(fā)布盡可能可靠。

例如發(fā)布前,我們會(huì)通過各種測(cè)試來驗(yàn)證功能是否 ok,包括單元測(cè)試、集成測(cè)試等。

發(fā)布過程中,我們會(huì)通過一些發(fā)布策略,例如先預(yù)發(fā)(預(yù)發(fā)布是一種特殊的線上環(huán)境,和線上使用同樣的資源,比如數(shù)據(jù)庫(kù)等,但是不會(huì)有用戶流量進(jìn)來)、然后灰度、然后分批滾動(dòng)發(fā)布等方式,逐步將變更更新到線上。

發(fā)布完成后,又會(huì)借助一些故障預(yù)警系統(tǒng),例如像阿里有 GOC 來盡早的發(fā)現(xiàn)故障,進(jìn)行處理,這些環(huán)節(jié)的這些手段都已經(jīng)有成熟的系統(tǒng)來進(jìn)行支持,但是發(fā)布的時(shí)候,我們常常還是心里沒有底。

"人工智能"的解決方案

還有什么辦法能夠幫助我們盡可能地保障發(fā)布質(zhì)量呢?大家可能都已經(jīng)在做了:就是"人工"智能的發(fā)布保障。

在發(fā)布過程中,盯著各種屏幕,去看各種數(shù)據(jù),來人肉的判斷本次發(fā)布有沒有問題。

在阿里,這些屏幕包括監(jiān)控、發(fā)布單、機(jī)器、GOC 故障預(yù)警等:

  • 監(jiān)控,能夠反映出來當(dāng)前系統(tǒng)的一些狀況,例如機(jī)器的負(fù)載是否上去了,接口的成功率是否下降了。
  • 發(fā)布單,能讓我們了解當(dāng)前的發(fā)布情況,有多少機(jī)器已經(jīng)更新到新版本了,有多少還在跑舊版本,有多少機(jī)器啟動(dòng)又遇到異常了等等。
  • 盯著機(jī)器,可以看一些日志信息,是否有一些新的異常出現(xiàn)了,異常的量是否很大等等。
  • GOC,讓我們?cè)诠收习l(fā)生的***時(shí)間就能結(jié)合自己發(fā)布的內(nèi)容判斷是否是本次發(fā)布引起,需要進(jìn)行處理。

這種方式相比之前讓人放心多了,是因?yàn)楝F(xiàn)在我們看到的是最真實(shí)的線上環(huán)境的情況,而不是單單的測(cè)試數(shù)據(jù)。

但是這種人肉盯屏的方式也存在著很大的問題,首先是成本太高了,發(fā)布過程中需要有熟練工盯著各種屏幕去看,片刻不離。

其次是人的因素太大了,同樣的發(fā)布情況,不同的人分析出來的結(jié)果可能完全是不一樣的,即使是同一個(gè)人,因?yàn)闋顟B(tài)或者其他方面的原因,針對(duì)同樣的一些數(shù)據(jù),可能分析出來的結(jié)果也不一樣。

另外,人也有局限性,各種數(shù)據(jù)刷新很快,肉眼分析的方式根本都來不及看。

既然這種盯屏的方式被證明是有效的,但是存在一些問題,那么我們就考慮通過系統(tǒng)化來解決這些問題,所以,就有了"無人值守發(fā)布"。

無人值守發(fā)布

無人值守發(fā)布主要是把上述過程自動(dòng)化、智能化。通過自動(dòng)化采集這些實(shí)時(shí)的線上核心數(shù)據(jù),進(jìn)行智能化分析,迅速對(duì)發(fā)布狀況進(jìn)行判斷,是否有故障發(fā)生,有的話則立即終止當(dāng)前發(fā)布。

無人值守發(fā)布的兩大核心能力,一個(gè)是故障檢測(cè),一個(gè)是異常推薦。故障檢測(cè)主要是發(fā)現(xiàn)現(xiàn)在的問題。

異常推薦主要是防范于未然,是指發(fā)布出現(xiàn)了問題,但是不一定會(huì)引起故障。

這些異常給開發(fā)的同學(xué)透明出來,需要開發(fā)注意,比較常見的是出現(xiàn)了一些異常,這些異常從絕對(duì)數(shù)量或者漲幅來看沒有非常明顯,但可能是需要處理的。

什么是無人值守發(fā)布

首先是發(fā)布單詳情頁(yè)面中的無人值守信息展示,發(fā)布單詳情頁(yè)面是發(fā)布過程中最常會(huì)去看的頁(yè)面。

所以我們選擇把無人值守檢測(cè)出來的一些信息展示到這個(gè)頁(yè)面,在一個(gè)頁(yè)面中把可以做的事情都做掉。

當(dāng)然,并不是說開發(fā)同學(xué)一定要自己去刷這個(gè)頁(yè)面才能夠知道當(dāng)前發(fā)布是否有異常,當(dāng)發(fā)布出現(xiàn)異常的情況下,系統(tǒng)會(huì)先自動(dòng)暫停當(dāng)前的發(fā)布。

然后通過釘釘?shù)纫恍┩ㄖ绞剑嬷_發(fā)的同學(xué),你的某個(gè)發(fā)布出現(xiàn)了異常,需要你去看下。

這些展示的信息包括了左側(cè)的當(dāng)前發(fā)布是否有異常的概要信息,通過概要信息,可以知道當(dāng)前發(fā)布有沒有問題。

如果有問題,可以看右側(cè)的問題分類,是基礎(chǔ)監(jiān)控指標(biāo)出問題了,還是業(yè)務(wù)指標(biāo)出問題了,或者是日志出問題了,日志出問題具體是哪個(gè)日志有問題了,在這里都可以看到。

如果這里的信息還不夠來判斷是否發(fā)布有問題,那么點(diǎn)擊查看詳情,可以看到更加詳細(xì)明確的異常信息,來進(jìn)行判斷。

無人值守發(fā)布的時(shí)候需要應(yīng)用接入到無人值守發(fā)布系統(tǒng),當(dāng)然大部分情況下這是一個(gè)自動(dòng)化的過程,系統(tǒng)會(huì)判斷應(yīng)用是否符合接入標(biāo)準(zhǔn)。

如果符合,會(huì)自動(dòng)接入,但是也有一些情況會(huì)導(dǎo)致應(yīng)用無法自動(dòng)接入,這種情況下,也會(huì)告知用戶當(dāng)前應(yīng)用是否接入了,如果未接入,需要做一些配置或者改造來接入。

無人值守發(fā)布詳情

這個(gè)是無人值守發(fā)布信息展示的詳情頁(yè)面,在這個(gè)上面,可以看到更加明細(xì)的一些信息,比如異常數(shù)量的發(fā)布前后趨勢(shì)對(duì)比,業(yè)務(wù)監(jiān)控各個(gè)指標(biāo)的變化情況等。

通過這個(gè)頁(yè)面,開發(fā)的同學(xué)基本上有足夠的信息來判斷本次攔截是否有效,是否需要進(jìn)行回滾等操作。

無人值守接入

這個(gè)是應(yīng)用接入無人值守發(fā)布的一個(gè)頁(yè)面,主要需要配置業(yè)務(wù)監(jiān)控指標(biāo)、日志路徑等。

無人值守的實(shí)戰(zhàn)案例

這是一個(gè)典型的案例,其中一些數(shù)據(jù)做了隱藏或者處理。發(fā)布過程中日志中某個(gè)異常出現(xiàn)了大幅度增長(zhǎng),我們可以從左側(cè)看到異常的數(shù)量。

點(diǎn)擊異常信息還可以看到更加明確的異常堆棧信息,右側(cè)可以看到異常數(shù)量出現(xiàn)了明顯增加,下面可以看到這個(gè)檢測(cè)被用戶判斷為確實(shí)有問題,最終執(zhí)行了關(guān)閉發(fā)布單進(jìn)行回滾的操作。

用戶反饋

這些是用戶的一些反饋。應(yīng)用接入無人值守發(fā)布,對(duì)提升發(fā)布的穩(wěn)定性起了立竿見影的效果。

指標(biāo)

上面這些案例都代表了一部分用戶的感受和反饋,那么整體效果怎么樣,還是要拿數(shù)據(jù)來說話。

業(yè)界對(duì)于異常檢測(cè)這塊有兩個(gè)主要的指標(biāo):一個(gè)是召回率,一個(gè)是準(zhǔn)確率。

召回率主要用來反映漏報(bào)的情況,準(zhǔn)確率主要用來反饋誤報(bào)的情況。漏報(bào)和誤報(bào)的概念比較好理解。

漏報(bào)就是本來有 10 個(gè)故障,系統(tǒng)報(bào)了 9 個(gè),那么漏報(bào)了 1 個(gè),召回率是 90%,誤報(bào)就是只有 10 個(gè)故障,報(bào)了 20 個(gè)出來,多出來的 10 個(gè)就屬于誤報(bào),那么準(zhǔn)確率就是 50%。

目前準(zhǔn)確率方面,我們已經(jīng)做到了 60% 左右,也就是說差不多每報(bào) 2 次,就有一次確實(shí)是有問題的,這種體驗(yàn)應(yīng)該算還不錯(cuò)。

召回率方面,我們已經(jīng)做到了 90%,這個(gè) 90% 是指出現(xiàn)了一次故障我們沒有報(bào)出來,我們有效攔截了 9 次,這 9 次中可能會(huì)引起故障,也可能只是有問題,但是不會(huì)造成故障,但是因?yàn)榧皶r(shí)發(fā)現(xiàn)了,都沒有造成故障。

很難明確說這 9 次里面到底有多少是會(huì)造成故障的,所以計(jì)算召回率的時(shí)候沒有單獨(dú)計(jì)算故障的召回率,而是把故障和異常一起計(jì)算進(jìn)去了。

關(guān)于先重點(diǎn)抓哪個(gè)指標(biāo),我們也經(jīng)歷過一些波折。一開始的目標(biāo)是攔截盡可能多的故障,所以比較注重召回率,導(dǎo)致長(zhǎng)期一段時(shí)間內(nèi),準(zhǔn)確率很低,攔是攔了不少,但是誤報(bào)相當(dāng)多,報(bào) 10 次里面可能只有一次是有效的。

如果我們是用戶,可能幾次誤報(bào)以后,就對(duì)這個(gè)產(chǎn)品失去信心了,這個(gè)導(dǎo)致我們不敢大面積推廣。

后來調(diào)整策略,優(yōu)先解決準(zhǔn)確率的問題,反正沒我們系統(tǒng)之前這些故障也是存在,有了系統(tǒng),能減少一些就是好的。

所以先不追求召回率,把準(zhǔn)確率做上去后,可以大面積進(jìn)行推廣了,受益面大了,避免的故障也自然多了。當(dāng)然,后面還是繼續(xù)抓了召回率的。

無人值守發(fā)布實(shí)現(xiàn)

前面說了不少,但是都沒有提到系統(tǒng)的具體實(shí)現(xiàn),接下來我們看是怎么去實(shí)現(xiàn)無人值守發(fā)布的?

首先看下我們的產(chǎn)品分層和業(yè)務(wù)流程。

產(chǎn)品架構(gòu)和業(yè)務(wù)流程

我們的系統(tǒng)大致分了三層:

  • 最上面一層是發(fā)布系統(tǒng)層,我們的產(chǎn)品叫海狼,主要是發(fā)布單的提交、執(zhí)行以及無人值守信息的展示和反饋,這一層是可以擴(kuò)展的,除了發(fā)布系統(tǒng)外,也可以對(duì)接其他的一些變更系統(tǒng)。
  • 中間是無人值守的核心系統(tǒng),根據(jù)收集到的分析任務(wù),采集對(duì)應(yīng)的數(shù)據(jù),進(jìn)行分析檢測(cè)。
  • 最下面一層是離線分析層,主要用來做一些算法的訓(xùn)練、回放驗(yàn)證等,后面再具體介紹。

大致的業(yè)務(wù)過程是,用戶在發(fā)布系統(tǒng)中提交了一個(gè)發(fā)布計(jì)劃,這個(gè)時(shí)候會(huì)通過 Normandy(諾曼底)這個(gè)平臺(tái)進(jìn)行發(fā)布(海狼是諾曼底平臺(tái)的一部分,負(fù)責(zé)發(fā)布的執(zhí)行)。

海狼開始執(zhí)行發(fā)布單后,無人值守系統(tǒng)就會(huì)收到發(fā)布單執(zhí)行的事件,然后開始分析,分析的時(shí)候會(huì)利用離線算出來的一些特征集,然后和當(dāng)前的指標(biāo)進(jìn)行比較檢測(cè)。

如果有異常,那么會(huì)通過海狼的接口進(jìn)行暫停發(fā)布單的操作,用戶可以在發(fā)布單頁(yè)面看到對(duì)應(yīng)信息,然后進(jìn)行一些判斷后提交反饋,是有效攔截,還是誤報(bào)等。

兩個(gè)階段

上述是一個(gè)大致的過程,具體實(shí)現(xiàn)方面,我們經(jīng)過了兩個(gè)大的版本迭代,下面針對(duì)兩個(gè)版本分別介紹下。

1.0 實(shí)現(xiàn)

通過前面的介紹,應(yīng)該大致了解,無人值守發(fā)布就是分析發(fā)布過程中各種指標(biāo)數(shù)據(jù),來判斷發(fā)布是否有異常,那么具體有哪些指標(biāo)數(shù)據(jù)可以用來分析呢?

大致總結(jié)了下,有以下幾類:

  • 業(yè)務(wù)指標(biāo),這個(gè)最直接反映當(dāng)前發(fā)布有沒有問題,如果影響到了業(yè)務(wù),那么基本上就是有問題的。

如果業(yè)務(wù)指標(biāo)能夠覆蓋所有的故障場(chǎng)景,那么理論上只要分析業(yè)務(wù)指標(biāo)就行了,但是現(xiàn)實(shí)往往是很多業(yè)務(wù)指標(biāo)的完善都跟不上業(yè)務(wù)發(fā)展的,業(yè)務(wù)上去了,指標(biāo)還沒上,這是很現(xiàn)實(shí)的事情。

  • 基礎(chǔ)指標(biāo),例如機(jī)器的內(nèi)存使用情況,cpu 使用率,load 情況,磁盤 io 等,這些指標(biāo)一般在發(fā)布過程中不太會(huì)發(fā)生明顯的變化,但是一旦發(fā)生了明顯變化,就可能有問題了。
  • 中間件指標(biāo),阿里內(nèi)部廣泛使用的 hsf、tair、metaq 等,都有相應(yīng)的 qps、rt、成功率等指標(biāo),如果發(fā)布后成功率突然跌的比較明顯或者 qps 跌 0 等,那么也很有可能是有問題了。
  • 日志,阿里比較多的應(yīng)用是 Java 的,我們會(huì)在日志中把一些異常的堆棧信息都打印出來,這些異常信息反映了代碼運(yùn)行過程中的一個(gè)不正常狀態(tài),所以是一個(gè)很寶貴的指標(biāo)數(shù)據(jù)。

通過分析這些異常的出現(xiàn)情況、漲幅情況、或者是否出現(xiàn)了一些常見的容易引起故障的異常,例如 ClassNotFound 等,我們可以做出足夠有用的判斷。

指標(biāo)和算法選取

指標(biāo)這么多,我們一開始應(yīng)該從哪入手呢?

***個(gè)版本的時(shí)候,我們選擇了基礎(chǔ)監(jiān)控和日志這兩方面入手。原因比較簡(jiǎn)單,基礎(chǔ)監(jiān)控的覆蓋率夠高,有足夠多的數(shù)據(jù)可以讓我們分析,而日志根據(jù)經(jīng)驗(yàn)則非常重要。

至于業(yè)務(wù)監(jiān)控和中間件指標(biāo),由于數(shù)據(jù)方面等一些問題,***個(gè)版本我們沒有去考慮。

那怎么對(duì)基礎(chǔ)監(jiān)控和日志的指標(biāo)進(jìn)行分析呢?我們采用的是使用一些簡(jiǎn)單的規(guī)則加上復(fù)雜的算法共用的方式。

針對(duì)一些情況,例如出現(xiàn)了前面提到的危險(xiǎn)異常等,采用規(guī)則的方式,直接進(jìn)行攔截;針對(duì)異常的漲幅變化等,則采用算法來評(píng)判這個(gè)漲幅是否在合理范圍內(nèi)。

如何實(shí)現(xiàn)?確定好了指標(biāo)和分析思路,我們?cè)倏纯葱枰瞿男┦虑椤?/p>

首先要做的是數(shù)據(jù)采集,我們面臨的問題是需要采集哪些數(shù)據(jù),怎么盡快地采集這些數(shù)據(jù)。

其次是對(duì)數(shù)據(jù)進(jìn)行處理,原始的數(shù)據(jù)中會(huì)有一些干擾的數(shù)據(jù),干擾的來源可能是多方面的,可能是數(shù)據(jù)采集系統(tǒng)本身的問題,也可能是與業(yè)務(wù)自身的特點(diǎn)有關(guān),需要把這些干擾的數(shù)據(jù)能夠剔除掉。

然后就是針對(duì)采集和處理后的這些數(shù)據(jù),制定什么樣的規(guī)則,使用什么樣的算法,來對(duì)它們進(jìn)行分析,盡可能準(zhǔn)確的判斷出發(fā)布后的數(shù)據(jù)是否有問題。

數(shù)據(jù)如何采集?采集之前,先明確檢測(cè)的大致思路:發(fā)布前和發(fā)布后的指標(biāo)進(jìn)行對(duì)比,已發(fā)布和未發(fā)布的機(jī)器進(jìn)行對(duì)比。

所以,我們要采集的是時(shí)間序列的數(shù)據(jù),也就是每個(gè)時(shí)間點(diǎn)某個(gè)指標(biāo)是什么樣的一個(gè)數(shù)據(jù),例如某個(gè)時(shí)間點(diǎn),系統(tǒng)的 load 是多少,某個(gè)時(shí)間點(diǎn),某類異常出現(xiàn)了多少次等。

具體要采集哪些指標(biāo),上面已經(jīng)明確了,只要把這些指標(biāo)再做一個(gè)分析,把最重要最能反映故障情況的一些指標(biāo)挑選出來,采集過來就行。

而從哪些機(jī)器上采集指標(biāo)呢?前面提到,我們檢測(cè)思路中有一條是已發(fā)布和未發(fā)布的機(jī)器進(jìn)行對(duì)比。

所以我們?yōu)槊總€(gè)應(yīng)用設(shè)置了兩組機(jī)器,一個(gè)是發(fā)布組,一個(gè)是參照組,只采集這兩組機(jī)器的數(shù)據(jù),而不是所有機(jī)器的數(shù)據(jù)都采集。

至于采集時(shí)間,也不用采集所有數(shù)據(jù),只要采集發(fā)布前后一段時(shí)間內(nèi)的數(shù)據(jù)就可以。

采集到數(shù)據(jù)以后,接下來就需要對(duì)數(shù)據(jù)進(jìn)行一些處理,除了前面提到的一些干擾數(shù)據(jù)剔除外,我們還需要進(jìn)行一些維度的聚合。

因?yàn)槟玫降氖且恍﹩螜C(jī)數(shù)據(jù),所以需要針對(duì)已發(fā)布未發(fā)布等一些維度進(jìn)行數(shù)據(jù)聚合合并,最終生成了可以分析的數(shù)據(jù)。

數(shù)據(jù)分析方法

數(shù)據(jù)分析的方法,我們采用的是改進(jìn)型的 funnel 檢測(cè)模型,它有這些優(yōu)點(diǎn):

  • 可以滿足針對(duì)不同的指標(biāo),采用不同的算法的需求,不同的指標(biāo)有各自的特點(diǎn),使用同一個(gè)算法顯然不大合適。
  • 它的計(jì)算需要的資源少,同時(shí)檢測(cè)的速度又夠快,還支持很多指標(biāo)一起分析。

通過上述這些工作,我們大致就把一個(gè)檢測(cè)系統(tǒng)建立 run 起來了,這***個(gè)版本在準(zhǔn)確率方面表現(xiàn)不是很好,離線跑的時(shí)候能夠有 30%、40%。

但是線上實(shí)際跑的時(shí)候只有 10% 上下的準(zhǔn)確率,所以我們需要去提升準(zhǔn)確率,那怎么提升呢?

答案是不斷的分析誤報(bào)和漏報(bào)數(shù)據(jù),然后對(duì)算法做一些微調(diào)。不停的微調(diào)算法又帶來了一個(gè)新的問題。

針對(duì)這些誤報(bào)的數(shù)據(jù),可能新的算法不會(huì)報(bào)出來了,但是之前的那些沒報(bào)的數(shù)據(jù)呢,用新的算法會(huì)不會(huì)又報(bào)出來了?之前那些報(bào)出來的有效攔截,會(huì)不會(huì)新的算法中就不報(bào)出來了?

于是我們又搭建了之前產(chǎn)品架構(gòu)中提到的離線回放系統(tǒng),用來對(duì)算法進(jìn)行回放驗(yàn)證,從之前的誤報(bào)、有效攔截、未攔截等數(shù)據(jù)中抽取部分?jǐn)?shù)據(jù)。

每次算法調(diào)整后,通過回放系統(tǒng)對(duì)這些數(shù)據(jù)重新進(jìn)行檢測(cè)分析,看看準(zhǔn)確率和召回率是怎么變化的,誤報(bào)的是否還在誤報(bào),有效攔截的是否漏報(bào)了等等。

無人值守回放系統(tǒng)

整個(gè)無人值守回放系統(tǒng)大致過程如下:

  • 錄制模塊會(huì)將線上檢測(cè)過的發(fā)布單的相關(guān)數(shù)據(jù)錄制到回放 db。
  • 需要回放的時(shí)候,通過回放觸發(fā)接口,觸發(fā)無人值守進(jìn)行檢測(cè),檢測(cè)時(shí)候會(huì)調(diào)用回放系統(tǒng)提供的指標(biāo) mock 接口,從回放 db 獲取數(shù)據(jù),而不是從實(shí)際的數(shù)據(jù)源獲取數(shù)據(jù)。
  • 將回放檢測(cè)的結(jié)果進(jìn)行保存,產(chǎn)出回放結(jié)果報(bào)表。

算法的困境

通過無人值守回放系統(tǒng),我們建立了可靠的算法驗(yàn)證機(jī)制,通過不斷的微調(diào)算法來提升召回率和準(zhǔn)確率。但是,還是遇到了一些問題。

首先是需要不斷的去分析檢測(cè)數(shù)據(jù),然后調(diào)整算法,這個(gè)過程是相當(dāng)耗費(fèi)精力的,并且不一定能夠有相應(yīng)的回報(bào)。

還有很重要的一點(diǎn)是,在實(shí)踐過程中,我們發(fā)現(xiàn)一些明顯的誤報(bào)信息在重復(fù)的誤報(bào)。

所以我們需要去探索一個(gè)能夠解決這些問題的方案。于是,第二個(gè)版本,我們就采用了基于機(jī)器學(xué)習(xí)的方式在原來的基礎(chǔ)上做了一些改進(jìn)。

機(jī)器學(xué)習(xí)的大概過程

首先會(huì)有一個(gè)離線學(xué)習(xí)的過程,通過一些歷史的發(fā)布單的指標(biāo)數(shù)據(jù)和攔截?cái)?shù)據(jù),以及用戶反饋的一些數(shù)據(jù),計(jì)算出來應(yīng)用發(fā)布時(shí)候的一個(gè)特征庫(kù)。

發(fā)布的時(shí)候,會(huì)首先采用一些算法來檢測(cè)出可疑指標(biāo),然后對(duì)可疑指標(biāo)和特征庫(kù)進(jìn)行比較。

如果發(fā)現(xiàn)這個(gè)可疑指標(biāo)落在正常的特征庫(kù)里,那么忽略掉,否則,就認(rèn)為發(fā)布出現(xiàn)了異常,要進(jìn)行攔截。

攔截完成后,會(huì)根據(jù)發(fā)布單最終的結(jié)果和用戶的反饋行為將這次攔截是否有效等數(shù)據(jù)保存起來,作為下次離線計(jì)算的一個(gè)輸入數(shù)據(jù)。

三大要素

機(jī)器學(xué)習(xí)也面臨幾個(gè)問題需要去解決,首先是去學(xué)習(xí)什么樣的數(shù)據(jù),其次是要通過什么樣的方法去學(xué)習(xí)產(chǎn)出什么樣的結(jié)果,還有一個(gè)就是怎么樣把這個(gè)學(xué)習(xí)的結(jié)果用到后面的發(fā)布檢測(cè)中去。

樣本

我們首先看下樣本問題,就是學(xué)什么數(shù)據(jù)。我們有的數(shù)據(jù)大致有這些:發(fā)布單數(shù)據(jù)、發(fā)布過程中的指標(biāo)數(shù)據(jù)、攔截是否有效的數(shù)據(jù)、用戶反饋的一些數(shù)據(jù)。

這些數(shù)據(jù)看起來很多,每天的發(fā)布單有好幾萬,每個(gè)發(fā)布單又有大量的指標(biāo)數(shù)據(jù),但是實(shí)際上,每個(gè)應(yīng)用的特征都是不一樣的。

所以學(xué)習(xí)的時(shí)候一定是基于應(yīng)用的維度去學(xué)習(xí)的,而每個(gè)應(yīng)用的發(fā)布數(shù)據(jù)就很少了,如何從這不多的數(shù)據(jù)去計(jì)算應(yīng)用的發(fā)布特征呢?

計(jì)算的思路有兩個(gè):

  • 算異常的,這是比較自然的想法,找出異常的特征,下次如果匹配了異常特征,那么就可以判斷發(fā)布有問題。
  • 算正常的,而應(yīng)用維度異常的發(fā)布往往遠(yuǎn)少于正常發(fā)布,甚至可能都從來沒有過異常發(fā)布。

所以基于異常的維度去計(jì)算,也不大靠譜,相對(duì)比較靠譜點(diǎn)的,只能是通過正常的發(fā)布單數(shù)據(jù)去計(jì)算出應(yīng)用發(fā)布的正常發(fā)布特征。

樣本中的一個(gè)挑戰(zhàn)是如何來判斷一個(gè)發(fā)布真正是有問題的,我們采取的是發(fā)布單行為和用戶反饋相結(jié)合的方式,如果發(fā)布單被回滾了,那么就認(rèn)為是異常的,如果用戶反饋說有異常,那么也認(rèn)為是異常的。

關(guān)鍵和不靠譜是用來描述用戶反饋數(shù)據(jù)的兩個(gè)特點(diǎn)的,關(guān)鍵是指用戶反饋數(shù)據(jù)非常重要,是最能夠幫助我們?nèi)チ私鈶?yīng)用的各個(gè)指標(biāo)對(duì)異常檢測(cè)是否有幫助的。

但是用戶反饋數(shù)據(jù)又具有主觀性,發(fā)布過程中出現(xiàn)了某個(gè)異常,A 開發(fā)同學(xué)可能會(huì)反饋認(rèn)為沒有問題,而 B 同學(xué)比較謹(jǐn)慎可能就會(huì)反饋認(rèn)為確實(shí)是有問題,如何去平衡這兩個(gè)特點(diǎn)也是比較棘手的。

這個(gè)就是剛才提到的用戶反饋數(shù)據(jù),通過這個(gè)反饋數(shù)據(jù),我們可以明確的知道某個(gè)指標(biāo)雖然異常了,但是對(duì)這個(gè)應(yīng)用來說,可能是完全沒有用的,根本不需要作為檢測(cè)的依據(jù),那么下次檢測(cè)的時(shí)候就可以忽略掉該指標(biāo)。

這個(gè)反饋數(shù)據(jù)的采集看似很容易,但是據(jù)我所知,在不少公司里,采集這個(gè)數(shù)據(jù)阻力都是比較大的。

開發(fā)同學(xué)不愿意去填寫反饋這些信息,比較幸運(yùn)的是,我們通過一系列方式優(yōu)化,盡可能地減少這個(gè)反饋對(duì)開發(fā)的干擾,把這個(gè)反饋給強(qiáng)制開啟來了,采集到的數(shù)據(jù)對(duì)我們的幫助確實(shí)相當(dāng)大。

算法

樣本數(shù)據(jù)有了,接下來就要根據(jù)樣本數(shù)據(jù)計(jì)算出應(yīng)用的發(fā)布特征了,我們采用的是簡(jiǎn)單的分類方法,最初的想法是分成正常、異常、未分類三大類。

正常比較好理解,異常是指每次出現(xiàn)都會(huì)導(dǎo)致故障的,未分類則是一些新增的或者之前出現(xiàn)過沒有變化的一些指標(biāo),后面考慮到上面說的異常樣本非常小的問題,就把這三類統(tǒng)一成一類了。

就是只計(jì)算應(yīng)用發(fā)布時(shí)候各個(gè)指標(biāo)的一個(gè)正常閾值,如果下次發(fā)布的時(shí)候,指標(biāo)的值超過了這個(gè)閾值,那么可能就是有問題。

具體學(xué)習(xí)的過程比較簡(jiǎn)單,總結(jié)起來一句話就是:找到正常發(fā)布單中指標(biāo)的***值,作為應(yīng)用的正常指標(biāo)閾值。

具體過程是:首先是發(fā)布過程中如果出現(xiàn)了異常指標(biāo),那么會(huì)去看這次發(fā)布最終是否是有問題的發(fā)布(通過發(fā)布單的行為是否回滾以及用戶的反饋等)。

如果是正常發(fā)布,那么和之前的正常閾值進(jìn)行比較,如果比之前的正常閾值要小,那么忽略,如果比之前的閾值大,那么就更新正常閾值。

而如果這次發(fā)布是異常發(fā)布,那么理論上應(yīng)該去判斷這次的指標(biāo)是否比正常閾值小,如果小,那么要更新正常閾值,但是實(shí)際上,這次發(fā)布的問題可能并不一定是這個(gè)指標(biāo)引起的。

而且如果確實(shí)是這個(gè)指標(biāo)引起的話,那么之前指標(biāo)比這個(gè)值更大的發(fā)布應(yīng)該也是異常的,考慮到這兩點(diǎn),我們現(xiàn)階段采取的是忽略異常發(fā)布單的方式,只針對(duì)正常的發(fā)布單進(jìn)行閾值計(jì)算。

指標(biāo)使用

正常閾值的使用也比較簡(jiǎn)單。發(fā)布過程中,如果發(fā)現(xiàn)了異常指標(biāo),那么會(huì)找到該指標(biāo)對(duì)應(yīng)的正常閾值做比較,如果小于正常閾值,那么忽略掉;如果超過了正常閾值,那么作為可疑指標(biāo)。

在一個(gè)窗口期內(nèi)進(jìn)行多輪檢測(cè),窗口期會(huì)根據(jù)檢測(cè)的結(jié)果做一些動(dòng)態(tài)調(diào)整,如果在窗口期內(nèi)多次被判定為可疑指標(biāo),并且達(dá)到了一定比例,那么最終會(huì)被判定為異常指標(biāo),對(duì)發(fā)布進(jìn)行攔截。

整個(gè)機(jī)器學(xué)習(xí)的改進(jìn)過程大致就是這樣,通過這個(gè)改進(jìn),我們一方面解決了之前遇到的一些問題,提升了召回率和準(zhǔn)確率,尤其是準(zhǔn)確率方面有了顯著提升。

另外一方面,也釋放了大量精力出來,可以更好的優(yōu)化這個(gè)學(xué)習(xí)的算法。

作者:陸葉平(花名少荃)

簡(jiǎn)介:阿里巴巴研發(fā)效能事業(yè)部技術(shù)專家。目前從事運(yùn)維中臺(tái)(阿里內(nèi)部叫諾曼底)建設(shè)方面的工作,是集團(tuán)內(nèi)***的應(yīng)用發(fā)布系統(tǒng)(海狼)負(fù)責(zé)人。

責(zé)任編輯:武曉燕 來源: 云效微信公眾號(hào)
相關(guān)推薦

2018-11-21 10:25:35

硬件故障自愈運(yùn)維

2018-09-13 09:39:03

騰訊運(yùn)維IT

2018-08-16 08:37:03

機(jī)房運(yùn)維硬件

2017-11-28 08:56:03

DBPaaSDBA數(shù)據(jù)庫(kù)

2019-12-23 09:25:29

日志Kafka消息隊(duì)列

2018-06-29 10:36:29

阿里云互聯(lián)網(wǎng)故障

2020-08-03 08:48:18

技術(shù)人阿里專家

2021-11-16 20:05:33

數(shù)字化

2018-12-05 08:30:27

IT運(yùn)維邏輯

2013-05-31 09:34:21

IT運(yùn)維云時(shí)代IT運(yùn)維審計(jì)

2011-11-09 15:49:52

API

2013-08-04 21:44:48

運(yùn)維故障故障排查云計(jì)算

2017-03-20 14:19:10

DevOps運(yùn)維IT

2018-05-24 23:26:37

云數(shù)據(jù)中心運(yùn)維云計(jì)算

2019-05-17 14:06:23

等級(jí)保護(hù)制度等保2.0

2009-11-20 11:37:11

Oracle完全卸載

2024-04-07 00:00:01

服務(wù)運(yùn)維分布式

2014-04-23 17:11:57

運(yùn)維人員訪問出錯(cuò)

2019-08-08 10:18:15

運(yùn)維架構(gòu)技術(shù)

2016-01-08 10:03:07

硅谷通吃互聯(lián)網(wǎng)
點(diǎn)贊
收藏

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

久久影视免费观看 | 中文字幕不卡在线观看| 97视频在线观看免费高清完整版在线观看| 被黑人猛躁10次高潮视频| 丝袜综合欧美| 韩国成人福利片在线播放| 久久精品国产亚洲一区二区| 女教师高潮黄又色视频| 成人性生交大片免费看网站| 26uuu国产电影一区二区| 国产999在线| 九九热视频在线免费观看| 日韩三级av高清片| 精品国产成人av| 亚洲春色在线| 亚洲国产精品久久人人爱潘金莲 | 91精品视频一区二区| 亚洲精品免费一二三区| 国产视频一区二区不卡| 91porny九色| 99视频精品全国免费| 亚洲国产精久久久久久| 亚洲色图 在线视频| 超碰电影在线播放| 91欧美一区二区| 国产精品美女999| 久久亚洲AV无码| 国产一区二区在线| 欧美精品一区在线观看| 日本久久精品一区二区| 四虎影视国产在线视频| 国产视频一区不卡| 91福利入口| 欧美国产一级片| 国产精品v一区二区三区| 亚洲图片制服诱惑| www.555国产精品免费| 成人高清一区| 精品色蜜蜜精品视频在线观看| 免费一区二区三区| 亚洲av无码国产综合专区| 日韩成人精品视频| 1769国内精品视频在线播放| 五月天av网站| 欧美一区二区三| 亚洲国产天堂网精品网站| 日本中文字幕高清| 午夜不卡影院| 亚洲国产综合视频在线观看| 一区二区三区国产福利| 黄网在线免费| 97se亚洲国产综合在线| 999视频在线观看| 国产精品国产精品国产| 亚洲一区免费| 97在线视频一区| 久草视频在线资源| 小处雏高清一区二区三区| 亚洲无av在线中文字幕| 国产高清自拍视频| 成人性生交大片免费看中文视频| 91精品国产一区二区三区香蕉| 中文字幕永久视频| 日韩欧美精品电影| 一本久久a久久免费精品不卡| 中文字幕日韩欧美| 欧美一级片在线免费观看| 婷婷成人av| 欧美日韩国产美女| 簧片在线免费看| 成人在线中文| 欧美性videosxxxxx| 成人性做爰aaa片免费看不忠| 中文一区一区三区高中清不卡免费| 午夜视频一区二区| 无码粉嫩虎白一线天在线观看| 尤物yw193can在线观看| 亚洲精品视频一区| 日本三级中文字幕在线观看| 好操啊在线观看免费视频| 中文字幕在线一区| 欧美三级午夜理伦三级老人| 成年视频在线观看| 亚洲黄色免费电影| 免费网站永久免费观看| 成人影音在线| 亚洲午夜精品网| 僵尸世界大战2 在线播放| 白白色在线观看| 一区二区三区四区乱视频| 日本福利视频在线观看| 中中文字幕av在线| 亚洲国产精品久久人人爱| 欧美日韩中文字幕在线播放| cao在线视频| 午夜日韩在线电影| 久久午夜夜伦鲁鲁一区二区| 老司机精品视频网| 欧美zozo另类异族| 波多野结衣视频播放| 免费电影一区二区三区| 日韩在线欧美在线| 国产亚洲成人精品| 久久精品一区二区国产| 国产精品96久久久久久又黄又硬 | 99reav在线| 中文字幕一区二| 亚洲国产精品无码av| 日韩影片中文字幕| 51精品视频一区二区三区| 国产乱淫av麻豆国产免费| 免费观看成人www动漫视频| 一本色道久久88精品综合| 日韩欧美国产成人精品免费| 午夜日韩电影| 国产精品白嫩初高中害羞小美女| 国产精品欧美亚洲| www.日韩大片| 一本久道久久综合狠狠爱亚洲精品| 日本电影全部在线观看网站视频| 亚洲一区二区三区精品在线| 妓院一钑片免看黄大片| 91成人app| 日韩精品视频免费在线观看| 伊人久久久久久久久久久久久久| 国语自产精品视频在线看8查询8| 国产成人欧美在线观看| 亚洲第九十九页| 久久丝袜美腿综合| 国产91视频一区| 亚洲伊人伊成久久人综合网| 在线视频国产日韩| 黄色污污网站在线观看| 99国产精品一区| 欧美在线一区视频| 国产ts一区| 欧美激情久久久| 亚洲AV无码精品色毛片浪潮| 亚洲卡通动漫在线| 肉色超薄丝袜脚交| 国产高清一区| 成人性生交大片免费看小说| 在线免费观看黄| 欧美三区免费完整视频在线观看| 黄色片网站免费| 日日夜夜精品视频天天综合网| 欧美一区亚洲二区| 韩国三级一区| 在线日韩av观看| 一级黄色片免费看| 亚洲欧美综合色| 女人高潮一级片| 亚洲精品网址| 成人动漫在线观看视频| 国产区美女在线| 亚洲国产精品人人爽夜夜爽| 日本一区二区三区免费视频| 91亚洲精品久久久蜜桃网站 | 欧美日韩色视频| 国产又粗又猛又爽又黄91精品| 干日本少妇视频| 亚洲精品午夜| 51精品国产黑色丝袜高跟鞋| 欧美日韩视频精品二区| 欧美性做爰猛烈叫床潮| 久草手机视频在线观看| 国产精品一品二品| 国产原创中文在线观看| 在线视频亚洲专区| 国产精品美女在线观看| v片在线观看| 日韩av在线免费观看| 少妇久久久久久久| 最好看的中文字幕久久| 美女被爆操网站| 性伦欧美刺激片在线观看| 亚洲 国产 欧美一区| 精品国产亚洲一区二区三区在线| 久久久久久久久久久亚洲| 亚洲色图另类小说| 欧美日韩一区精品| 国产精品9191| 日本一区二区在线不卡| 国产chinesehd精品露脸| 99精品久久久| 一区不卡视频| 牛牛影视一区二区三区免费看| 国产精品久久一| 日本无删减在线| 亚洲天堂男人天堂| 亚洲成人一级片| 欧美亚洲日本国产| 久久久国产精品黄毛片| 久久久电影一区二区三区| 99久久99精品| 午夜一级久久| 中文字幕色呦呦| 免费精品国产的网站免费观看| 成人av在线网址| 欧美电影免费看| 久久久久久久电影一区| 97人人在线| 亚洲精品美女视频| a在线观看视频| 在线免费精品视频| 欧美成人精品欧美一级乱黄| 中文字幕一区二区三区在线不卡| 国产又粗又猛又色| 国产精品羞羞答答xxdd| 日韩欧美国产片| 乱码第一页成人| 九色自拍视频在线观看| 午夜免费一区| 先锋影音一区二区三区| 欧美调教视频| 成人资源av| 怡红院av久久久久久久| 亚洲天堂网中文字| 日韩一级av毛片| av福利精品导航| 日本wwww色| 久久99精品视频| www.99av.com| 美女黄色成人网| 777精品久无码人妻蜜桃| 欧美在线免费一级片| 在线视频一区观看| 精品久久综合| 日韩精品极品视频在线观看免费| 欧美高清视频看片在线观看 | 欧美一性一交| 国产精品三区www17con| 国产精区一区二区| 成人免费高清完整版在线观看| 日韩三区免费| 国产大片精品免费永久看nba| 英国三级经典在线观看| 2023亚洲男人天堂| 久草在线资源福利站| 97国产一区二区精品久久呦| xxx.xxx欧美| 欧美精品www| 黑人精品视频| 午夜精品理论片| 乱馆动漫1~6集在线观看| 久久久久久成人精品| av电影在线免费| 2019最新中文字幕| 亚洲精品一区| 国产成人欧美在线观看| 777午夜精品电影免费看| 国产精品视频久久久| 国语自产精品视频在线看抢先版结局| 国产精品丝袜久久久久久高清| 成人国产一区二区三区精品麻豆| 国产精品偷伦免费视频观看的| 日本在线中文字幕一区二区三区 | 亚洲一卡二卡在线观看| 欧美区一区二区三区| 国产伦精品一区二区三区视频痴汉 | av资源站一区| japanese中文字幕| 国产精品高潮久久久久无| 国产精品丝袜一区二区| 一区二区三区日韩欧美| 日韩免费一二三区| 色综合久久久网| 中国黄色一级视频| 欧美一区二区视频网站| 在线观看国产精品视频| 欧美一区二区三区思思人 | 在线激情影院一区| 老司机免费在线视频| 欧美日韩福利在线观看| 亚洲综合电影| 91热福利电影| 成人福利一区| 少妇特黄a一区二区三区| 亚洲国产成人精品女人| 亚洲熟妇无码一区二区三区导航| 视频一区视频二区中文| 三级一区二区三区| 成人av在线一区二区三区| 精品国产av无码| 亚洲天天做日日做天天谢日日欢| 日韩大片免费在线观看| 欧美日韩激情在线| 色屁屁草草影院ccyycom| 亚洲片在线资源| 丝袜在线观看| 国产成人精品av| 视频免费一区二区| 欧美性bbwbbwbbwhd| 中文精品久久| 中文字幕无码不卡免费视频| 国产美女av一区二区三区| av在线网站观看| 亚洲人成在线播放网站岛国| 亚洲天堂一区在线观看| 337p亚洲精品色噜噜噜| 青青草观看免费视频在线 | 97se综合| 亚洲一区二区三| 成人影院天天5g天天爽无毒影院| 无码日本精品xxxxxxxxx| 免费观看在线综合| 黑丝av在线播放| 亚洲精品国久久99热| 丰满人妻一区二区三区四区| 亚洲激情视频网站| 成人免费网址| 国产精品视频播放| 亚洲另类春色校园小说| 日本wwwcom| 国产剧情在线观看一区二区| 免费成人深夜蜜桃视频| 欧美丝袜一区二区三区| 日韩专区第一页| 欧美大片免费观看在线观看网站推荐| 粉嫩91精品久久久久久久99蜜桃| 美女三级99| 日韩一级欧洲| 欧美久久久久久久久久久| 亚洲免费av高清| 97caocao| 久久精品亚洲精品| 在线成人免费| 一区二区视频在线播放| 蜜桃精品视频在线观看| 国产传媒在线看| 欧美午夜精品电影| 成人高清网站| 国产精品第1页| 国产精品自拍区| caopor在线视频| 国产亚洲精品中文字幕| 色一情一乱一伦| 亚洲午夜未删减在线观看| 中文在线а√天堂| 欧美午夜欧美| 免费日本视频一区| 青青青视频在线播放| 欧美日韩国产大片| 男人天堂久久久| 91免费综合在线| 午夜国产精品视频| 日本wwwxx| 亚洲成人免费影院| 四虎永久在线精品免费网址| 午夜精品免费视频| 美女av一区| 日韩免费高清在线| 亚洲国产高清在线观看视频| 一卡二卡三卡在线观看| 日韩在线观看精品| 国产午夜久久av| 亚洲中文字幕无码av永久| 91麻豆精品秘密| 免费看av在线| 久久在线精品视频| 白白在线精品| 激情六月丁香婷婷| 日本一区二区三区在线不卡 | 日韩一区二区免费视频| 免费电影视频在线看| 精品国产乱码久久久久久88av| 国产精品毛片在线| 日本黄区免费视频观看| 日韩欧美高清一区| 成人在线黄色电影| 日本午夜一区二区三区| 国产一区视频网站| www.99re7.com| 伊人激情综合网| 精品国产亚洲一区二区三区在线 | 国产亚洲精品高潮| 国产精品成人国产| 国产性生活免费视频| 久久影院午夜片一区| 国产精品无码天天爽视频| 久久久亚洲国产| 狠狠色丁香婷婷综合影院| www.成年人| 欧美性猛交xxxx偷拍洗澡| 色多多视频在线观看| 翡翠波斯猫1977年美国| 老司机精品久久| 久久久久亚洲av成人片| 亚洲欧美国产精品久久久久久久| 深夜福利亚洲| 无码精品a∨在线观看中文| 国产精品久久毛片av大全日韩| 亚洲av无码国产精品永久一区| 国产成人久久久| 影音先锋久久| 黑人と日本人の交わりビデオ| 亚洲精品一区二区三区福利| 色成人综合网| 中文字幕日本最新乱码视频| 亚洲人成亚洲人成在线观看图片 |