優(yōu)化實(shí)施

其實(shí),世界上在DNS層、網(wǎng)絡(luò)層、CDN層、業(yè)內(nèi)沉淀有很多優(yōu)化方案。這些優(yōu)化方案什么最有效呢?下面列舉幾個(gè)使用過的有效的優(yōu)化方案:
動(dòng)態(tài)加速

優(yōu)化前,用戶的動(dòng)態(tài)請(qǐng)求都在源站,請(qǐng)求鏈路是:用戶——運(yùn)營商——源站。全世界都要去源站拿數(shù)據(jù),這樣的請(qǐng)求鏈路會(huì)非常長,過程相當(dāng)耗時(shí)。

優(yōu)化后,盡量把動(dòng)態(tài)數(shù)據(jù)推到邊緣節(jié)點(diǎn),這些邊緣節(jié)點(diǎn)不需要去源站進(jìn)行請(qǐng)求,只需直接在邊緣節(jié)點(diǎn)做請(qǐng)求。
另外一個(gè)優(yōu)化:請(qǐng)求既可以是同步的,也可以是異步的,可以同時(shí)并行請(qǐng)求多個(gè)頁面內(nèi)的元素。整體的動(dòng)態(tài)回源的過程是對(duì)內(nèi)容的動(dòng)態(tài)加速。
另外一個(gè)動(dòng)態(tài)加速的做法是,如果需要回源的話,把這個(gè)回源網(wǎng)絡(luò)的最優(yōu)化路徑交給CDN來決定,CDN會(huì)幫助找到目前一條最優(yōu)的鏈路來回源。
動(dòng)態(tài)加速其實(shí)是一系列的優(yōu)化方案,比如包括內(nèi)容壓縮等。整個(gè)過程中也有不少的技術(shù)挑戰(zhàn):電商需要知道用戶的真實(shí)IP;源站防止攻擊要做請(qǐng)求攔截等等。
靜態(tài)化+ESI

用戶把內(nèi)容放到邊緣節(jié)點(diǎn)上,到了機(jī)房內(nèi)其實(shí)也是做一個(gè)緩存:如果是動(dòng)態(tài)內(nèi)容則直接回源到數(shù)據(jù)庫,如果是靜態(tài)的不命中的內(nèi)容則通過業(yè)務(wù)邏輯回源到數(shù)據(jù)庫。
請(qǐng)求鏈路一般是“讀鏈路”,“寫鏈路”會(huì)變更db,db被變更消息的消費(fèi)者消費(fèi)之后通過業(yè)務(wù)邏輯更新存入緩存,是緩存內(nèi)的信息總是最新的。這樣的過程相當(dāng)于用戶如果能直接hit到邊緣節(jié)點(diǎn)就返回(大多數(shù)最優(yōu)的情況),不是最優(yōu)的情況會(huì)hit到緩存層再返回。
元素請(qǐng)求合并

一個(gè)頁面中會(huì)有很多的子元素,如果單獨(dú)去請(qǐng)求,則每個(gè)請(qǐng)求都是回源的調(diào)用,那么每個(gè)請(qǐng)求都會(huì)占用很多時(shí)間(包括TCP建聯(lián)時(shí)間等)。元素請(qǐng)求合并就是指把所有的請(qǐng)求合并成一個(gè),統(tǒng)一提供到服務(wù)方,然后服務(wù)端再將這些請(qǐng)求分發(fā),然后再統(tǒng)一合并再返回。
CDN調(diào)度優(yōu)化

AliExpress在全球的各個(gè)國家都有相當(dāng)多的用戶,在巴西是第二大的電商網(wǎng)站,巴西用戶可以請(qǐng)求美國的邊緣節(jié)點(diǎn),也可以請(qǐng)求巴西的邊緣節(jié)點(diǎn)。
經(jīng)過測(cè)試,巴西用戶請(qǐng)求巴西的邊緣節(jié)點(diǎn)的相對(duì)耗時(shí)要少一些,可以認(rèn)為是4個(gè)單位,請(qǐng)求美國節(jié)點(diǎn)耗時(shí)5個(gè)單位,但是請(qǐng)求地理位置離巴西近的阿根廷節(jié)點(diǎn)需要耗時(shí)7個(gè)節(jié)點(diǎn)。所以得出結(jié)論:不能單純從地理位置來估計(jì)請(qǐng)求節(jié)點(diǎn)的耗時(shí),以此為基礎(chǔ)可以優(yōu)化CDN調(diào)度。
業(yè)務(wù)結(jié)果
上述理論的分析,平臺(tái)的搭建,業(yè)務(wù)的優(yōu)化,帶來了:整套系統(tǒng)的分析能力提升;過去的優(yōu)化直接為整個(gè)網(wǎng)站帶來5.07%的訂單;性能損耗明顯下降;購買力增強(qiáng)。
架構(gòu)思考總結(jié)

這套系統(tǒng)給大家?guī)淼淖畲髢r(jià)值是:在做這套架構(gòu)設(shè)計(jì)的過程中是不是能有新的創(chuàng)新?通過這個(gè)創(chuàng)新能否帶來業(yè)務(wù)價(jià)值?
把技術(shù)變民主,每個(gè)有想法的人都可以去嘗試優(yōu)化,每個(gè)人都可以做貢獻(xiàn)。
所有做的事情能不能量化?能不能做比較?不同的人對(duì)性能優(yōu)化的貢獻(xiàn)都應(yīng)該能準(zhǔn)確度量,這樣可以把一個(gè)人的力量放大到整個(gè)團(tuán)隊(duì)的力量。
怎么一步一步贏得這個(gè)團(tuán)隊(duì)的信任?