阿里SRE体系如何支撑24小时峰值压力、220+个国家“剁手党”?
阿里妹導(dǎo)讀:淘寶點(diǎn)亮了全中國(guó),Aliexpress點(diǎn)亮了全球,在近百個(gè)國(guó)家的購(gòu)物類app排名第一。但AE國(guó)際只有1-2個(gè)物流,峰值壓力一度導(dǎo)致多個(gè)國(guó)家的銀行系統(tǒng)、物流系統(tǒng)癱瘓,可以想象,作為Aliexpress的SRE壓力多大。
究竟阿里工程師是如何解決這一難題?今天我們通過(guò)AliExpress SRE負(fù)責(zé)人周志偉的分享,揭開(kāi)這個(gè)謎題。
阿里巴巴高級(jí)技術(shù)專家、AliExpress SRE負(fù)責(zé)人周志偉
Aliexpress是阿里巴巴集團(tuán)跨境及國(guó)際消費(fèi)業(yè)務(wù),國(guó)內(nèi)大家都知道淘寶,但是走出國(guó)門(mén),知道Aliexpress的外國(guó)人非常多了。AE在Alexa全球排名前50,淘寶排名11,可以想象Aliexpress的流量當(dāng)前已經(jīng)非常龐大。此外,AE在近百個(gè)國(guó)家的購(gòu)物類app排名第一。如果有去俄羅斯的旅游朋友可以問(wèn)問(wèn)當(dāng)?shù)爻鲎廛囁緳C(jī)、餐館服務(wù)員、或者當(dāng)?shù)芈啡薃liexpress,相信大多都有在上面購(gòu)物的經(jīng)歷。
目前Aliexpress有過(guò)成交記錄的國(guó)家覆蓋220+,大家都知道雙11,淘寶點(diǎn)亮了全中國(guó),而Aliexpress點(diǎn)亮了全球。但AE國(guó)際只有1-2個(gè)物流,峰值壓力一度導(dǎo)致多個(gè)國(guó)家的銀行系統(tǒng)、物流系統(tǒng)癱瘓,爆倉(cāng)已經(jīng)不僅僅只有中國(guó)才會(huì)發(fā)生,可以想象,作為Aliexpress的SRE壓力多大。
AliExpress(全球速賣通)是阿里巴巴旗下面向全球市場(chǎng)打造的在線交易平臺(tái),被廣大賣家稱為“國(guó)際版淘寶”
Aliexpress SRE
SRE在Aliexpress的定義僅僅指與可用性相關(guān),當(dāng)它指一種技術(shù)方面時(shí),是指原來(lái)的穩(wěn)定性的概念;當(dāng)它用來(lái)指團(tuán)隊(duì)時(shí),是指各技術(shù)團(tuán)隊(duì)負(fù)責(zé)穩(wěn)定性的同學(xué)組成的虛擬團(tuán)隊(duì)。在Aliexpress,SRE是由橫向的虛擬團(tuán)隊(duì)組成,每個(gè)業(yè)務(wù)團(tuán)隊(duì)一主一備保障整個(gè)Aliexpress的穩(wěn)定性,只有這樣才能最高效和最快速的發(fā)現(xiàn)問(wèn)題根因和解決問(wèn)題。穩(wěn)定性是一切一切的基礎(chǔ),所以這個(gè)虛擬組織也是得到了眾多的資源和KPI基礎(chǔ)保障。
阿里國(guó)際化SRE的挑戰(zhàn)
時(shí)差讓每時(shí)每刻都是高峰期
在全球化的前提下,SRE的挑戰(zhàn)是非常巨大的,它的難題和挑戰(zhàn)并非淘寶所經(jīng)歷過(guò)的,在這些方面我們也并沒(méi)有太多的參考和借鑒。首先,Aliexpress的用戶群體分布來(lái)自全球238個(gè)國(guó)家,不同種族不同膚色。這不是最關(guān)鍵的,因?yàn)橛脩舴植疾煌瑖?guó)家和不同時(shí)區(qū),對(duì)于Aliexpress來(lái)說(shuō)其實(shí)沒(méi)有真正意義的低峰期,每個(gè)國(guó)家的高峰時(shí)間都不一樣,一波接著一波,對(duì)我們的產(chǎn)品可用性提出了更高的要求所有國(guó)家*7*24。
網(wǎng)絡(luò)復(fù)雜但容不得半點(diǎn)延遲
在中國(guó),我們的網(wǎng)絡(luò)在三大運(yùn)營(yíng)商的扶持下可以說(shuō)是非常不錯(cuò)的,雖然偶爾有些抖動(dòng),起碼我們很清楚也比較容易獲得原因或者作出一些預(yù)案。但對(duì)于全球這么多國(guó)家來(lái)說(shuō),運(yùn)營(yíng)商非常復(fù)雜,帶來(lái)的全球互聯(lián)互通問(wèn)題也非常復(fù)雜,這么多國(guó)家,花點(diǎn)精力知道每個(gè)國(guó)家哪家運(yùn)營(yíng)商好,應(yīng)該不難,但是要把各個(gè)國(guó)家串起來(lái),互聯(lián)互動(dòng)這個(gè)問(wèn)題就復(fù)雜了。
比如東南亞國(guó)家訪問(wèn)中國(guó)服務(wù)器和美國(guó)服務(wù)器,哪個(gè)會(huì)更快?從物理距離看應(yīng)該國(guó)內(nèi)會(huì)更快對(duì)吧?但是實(shí)際并非如此,東南亞訪問(wèn)國(guó)內(nèi),大部分都是繞行美國(guó)再連國(guó)內(nèi),這是多么奇葩的網(wǎng)路鏈路,但事實(shí)如此,就因?yàn)檫\(yùn)營(yíng)商接入美國(guó)再到中國(guó)更加便宜比直接接入中國(guó)便宜。這給我們?nèi)蚧黾雍芏嗬щy,我們需要做更多的事情去解決這類難題。
也許大家會(huì)說(shuō)繞就繞唄,就這么用,可中國(guó)到美國(guó)來(lái)回耗時(shí)在130ms左右,還是在網(wǎng)絡(luò)非常好的情況下,接近光速的速度,這個(gè)延遲看起來(lái)不起眼,我們做個(gè)對(duì)比,一般服務(wù)請(qǐng)求數(shù)據(jù)庫(kù)基本在5~10ms左右會(huì)得到返回,如果有類似緩存機(jī)制就更快了,有多少服務(wù)能扛得住因?yàn)榫嚯x帶來(lái)的130ms延遲。這對(duì)網(wǎng)站穩(wěn)定性又提出了技術(shù)的挑戰(zhàn)。國(guó)際形勢(shì)下想獲得用戶的信息反饋,并不像國(guó)內(nèi)那么容易,需要我們采取更多的手段去主動(dòng)獲取。
Aliexpress SRE之路
在Aliexpress,我們要提升可用性,需要考慮成本以及研發(fā)效率,在剛開(kāi)始組建SRE團(tuán)隊(duì)的時(shí)候,沒(méi)有任何基礎(chǔ),又想提升可用性,我們需要分析從何下手。這個(gè)圖有點(diǎn)像力學(xué),一方使勁,會(huì)造成另一方的倒退,如何尋找平衡,獲得最高的回報(bào)率。
我們可以看到,可用性的追求是會(huì)降低研發(fā)效率的,可用性的追求是會(huì)增加研發(fā)和技術(shù)成本的,通過(guò)流程規(guī)范的建設(shè)是可以提升可用性的,但是會(huì)極大降低研發(fā)效率,通過(guò)工具化和智能化實(shí)現(xiàn)可用性,對(duì)效率提升有幫助,也對(duì)成本節(jié)省有幫助。
制定規(guī)范 提高可用性
Aliexpress的SRE初期,我們希望能快速的提升可用性,選擇了成本最低,也是最容易先拿到結(jié)果的方式,制定流程規(guī)范,但是他給研發(fā)效率會(huì)帶來(lái)降低,規(guī)范會(huì)有很多的制約,發(fā)布需要review,核心應(yīng)用改一行代碼也需要多機(jī)房的觀察監(jiān)控,整個(gè)過(guò)程耗時(shí)比較久。
其實(shí)規(guī)范現(xiàn)行,雖然很土,不夠酷,但非常見(jiàn)效,不得不說(shuō)對(duì)于一線研發(fā)同學(xué)來(lái)說(shuō),規(guī)范不僅僅是對(duì)他的約束,通過(guò)穩(wěn)定性規(guī)范的考試,讓一線研發(fā)知道非常多的流程細(xì)則以及為什么需要這么做,以及其中風(fēng)險(xiǎn)是什么,更讓一線工程師對(duì)生產(chǎn)環(huán)境有更多的了解。devops的角色也得到很多認(rèn)知上的提升,我們對(duì)歷史的故障也是做過(guò)分析的,會(huì)發(fā)現(xiàn)有很大比例的問(wèn)題都是對(duì)于生產(chǎn)環(huán)境的陌生,不小心或者不知道該怎么做而產(chǎn)生了問(wèn)題。我們?nèi)蚧鄼C(jī)房有很多地方需要注意,對(duì)線上的陌生一定會(huì)帶來(lái)問(wèn)題,比如多機(jī)房數(shù)據(jù)同步,沒(méi)有做好任務(wù)消費(fèi)的冪等性處理,一定會(huì)造成數(shù)據(jù)的一致性的問(wèn)題,這是架構(gòu)規(guī)約的一部分,也是SRE穩(wěn)定性的范疇。此外,我們堅(jiān)持每個(gè)半年會(huì)進(jìn)行一次穩(wěn)定性考試,讓大家對(duì)規(guī)約,線上環(huán)境有知識(shí)的迭代更新,對(duì)生產(chǎn)環(huán)境的操作時(shí)刻保持敬畏之心。
Aliexpress SRE基礎(chǔ)治理
對(duì)于SRE來(lái)說(shuō),最想做到的就是線上發(fā)生的一切都在掌控之中,即使出現(xiàn)問(wèn)題,我們能通過(guò)有效的手段快速恢復(fù),這也是Aliexpress SRE的核心。我們的治理也是從這條核心思想出發(fā)的,首先要做到這點(diǎn),不可或缺的是對(duì)整個(gè)站點(diǎn)有全面的監(jiān)控,出現(xiàn)問(wèn)題我們都能快速發(fā)現(xiàn),那就是監(jiān)控。監(jiān)控建設(shè)是有成本投入的,需要業(yè)務(wù)系統(tǒng)追加日志輸出,根據(jù)需要繪制出我們想要的核心大盤(pán)(交易、流量、登錄等待),如果有下跌,可以進(jìn)入下一級(jí)分級(jí)是由哪些渠道造成的,幫助快速發(fā)現(xiàn)問(wèn)題,同時(shí)我們也會(huì)追加分機(jī)房的大盤(pán),這個(gè)后面會(huì)描述為什么需要這樣的分類,有何目的。
一開(kāi)始做這個(gè)事情的時(shí)候并沒(méi)有那么系統(tǒng)的來(lái)做,而是各個(gè)團(tuán)隊(duì)分別輸出日志,然后手工配置監(jiān)控大盤(pán),去年年初我們開(kāi)始推廣微服務(wù)Springboot,結(jié)合Springboot定制一個(gè)starter專門(mén)做日志的標(biāo)準(zhǔn)輸出,采集所需日志的同時(shí)提升研發(fā)效率,標(biāo)準(zhǔn)化的日志對(duì)于后續(xù)的大數(shù)據(jù)分析來(lái)說(shuō)非常有利,這也是長(zhǎng)遠(yuǎn)考慮的一步,為日后智能化做的鋪墊。
前面提到,對(duì)于SRE來(lái)說(shuō),希望自己有掌控權(quán),監(jiān)控的完善只能做到可見(jiàn),沒(méi)有掌控能力,所以我們還有幾件事情,讓SRE有掌控能力??焖倩謴?fù)能力,俗稱“容災(zāi)”,在Aliexpress容災(zāi)是一個(gè)體系,分了很多層,應(yīng)對(duì)不同問(wèn)題而定,這也是全球化所需。
之所以這么做,是有背景的,在前面提到Aliexpress SRE面臨的挑戰(zhàn),全球網(wǎng)絡(luò)質(zhì)量問(wèn)題,對(duì)于Aliexpress來(lái)說(shuō)是不會(huì)輕易去切換DNS,原因主要有2個(gè):
1.全球化架構(gòu)會(huì)針對(duì)用戶歸屬進(jìn)行路由,接入層的改變并不會(huì)使其在后續(xù)鏈路發(fā)生變化2.DNS的切換會(huì)帶來(lái)性能損耗,更何況我們有很多cdn策略,切換回源帶來(lái)的性能損耗大概在8~15%,這個(gè)損失太心疼了
打造全球化架構(gòu)
全球化架構(gòu),可以簡(jiǎn)單的描述為我們通過(guò)管控全球的用戶,通過(guò)大數(shù)據(jù)的計(jì)算,配合DNS就近最優(yōu)解析,將用戶分別歸屬到不同的區(qū)域IDC,讓全球用戶獲得最優(yōu)的購(gòu)物體驗(yàn)?;谶@套邏輯通過(guò)嚴(yán)格的版本控制利用ZK上報(bào)確保全球多個(gè)IDC的用戶路由表保持一致,接入層、服務(wù)層、數(shù)據(jù)層包括數(shù)據(jù)同步加載用戶路由表,進(jìn)行區(qū)域的修正路由,確保歸屬用戶的操作都在一個(gè)區(qū)域完成,以達(dá)到全球數(shù)據(jù)一致性。這是一套完整的全球化解決方案。
基于這套架構(gòu),SRE的容災(zāi)也變的更加豐富,當(dāng)某個(gè)變更導(dǎo)致web層發(fā)生問(wèn)題,比如英文站搜索頁(yè)面出現(xiàn)問(wèn)題也許是樣式也許是頁(yè)面處理邏輯,基于我們的規(guī)范嚴(yán)格按照分機(jī)房發(fā)布策略,至少有一個(gè)機(jī)房是可用的,可以通過(guò)容災(zāi)到?jīng)]有污染的區(qū)域,而其他層的邏輯都不發(fā)生改變。
當(dāng)服務(wù)層發(fā)生問(wèn)題,同樣可以將用戶從A區(qū)域切換到B區(qū)域,而在網(wǎng)絡(luò)接入層不發(fā)生任何變化。這一層的容災(zāi)更加細(xì)膩,支持分流觀察,按比例分流。當(dāng)然發(fā)生重大問(wèn)題,可以將整個(gè)區(qū)域failover,切換到災(zāi)備區(qū)域這些容災(zāi)都是秒級(jí)生效,并且有數(shù)據(jù)保護(hù)停寫(xiě)機(jī)制。
建立保障機(jī)制GTR
前面說(shuō)到的都是基于機(jī)房級(jí)別的快速恢復(fù),在全球化背景下,應(yīng)對(duì)全球互聯(lián)互通問(wèn)題,我們也做了一套保障機(jī)制,GTR(global traffic routing service)。
簡(jiǎn)單介紹下這個(gè)圖的含義:紅點(diǎn)代表我們?cè)谌蛴卸鄠€(gè)POP點(diǎn),也就是網(wǎng)絡(luò)接入點(diǎn),五角星代表我們?nèi)虻腎DC,思路是我們采集全球用戶訪問(wèn)我們機(jī)房的信息,比如某國(guó)用戶通過(guò)訪問(wèn)不同的pop點(diǎn)然后到我們的IDC,POP點(diǎn)都會(huì)匯入阿里骨干網(wǎng),可以認(rèn)為更加穩(wěn)定,類似動(dòng)態(tài)加速技術(shù)。
通過(guò)國(guó)家對(duì)應(yīng)pop點(diǎn)對(duì)應(yīng)IDC的訪問(wèn)響應(yīng)時(shí)間來(lái)判斷,當(dāng)一條線路發(fā)生問(wèn)題時(shí),我們可以將這個(gè)國(guó)家或者叫區(qū)域的用戶訪問(wèn)切換到其他網(wǎng)絡(luò)線路,這個(gè)是某個(gè)國(guó)家訪問(wèn)美國(guó)機(jī)房的數(shù)據(jù),通過(guò)德國(guó)接入點(diǎn)進(jìn)入美國(guó)機(jī)房和直接從美國(guó)接入美國(guó)機(jī)房的時(shí)間差不多。
以上是對(duì)SRE監(jiān)控、容災(zāi)的介紹,在此之外,我還是要分享下我們應(yīng)對(duì)重大問(wèn)題時(shí),確保能快速定位恢復(fù),這套應(yīng)戰(zhàn)平臺(tái)對(duì)于收集作戰(zhàn)人員經(jīng)驗(yàn)起了很好的作用。作戰(zhàn)成員都是各個(gè)產(chǎn)品線的專家,他們的經(jīng)驗(yàn)在平臺(tái)得以沉淀也為我們國(guó)際SRE智能化有很大的幫助。
Aliexpress SRE成立以來(lái)成果也比較明顯,故障數(shù)明顯下降,一線研發(fā)對(duì)線上環(huán)境以及自己身為devops角色的轉(zhuǎn)型都比較成功,在這過(guò)程中,成功恢復(fù)多次重大線上故障,這也證實(shí)了我們平時(shí)的演練非常有效和重要。同時(shí)也為阿里集團(tuán)國(guó)際化構(gòu)建基礎(chǔ)技術(shù)。
在SRE的體系運(yùn)作下,朝著一個(gè)良性的循環(huán)運(yùn)作,穩(wěn)定性規(guī)范-分區(qū)域變更-分區(qū)域監(jiān)控-分區(qū)域容災(zāi)-常態(tài)化演練。持續(xù)的優(yōu)化工具、沉淀數(shù)據(jù)、培養(yǎng)研發(fā)素養(yǎng),為未來(lái)SRE智能化做好準(zhǔn)備。在這個(gè)體系下,我們會(huì)持續(xù)優(yōu)化和豐富我們的自動(dòng)化工具,豐富我們數(shù)據(jù),優(yōu)化我們的基礎(chǔ)治理,往智能化的方向發(fā)展。謝謝大家。
Aliexpress誠(chéng)邀有國(guó)際化背景的技術(shù)人員加入,直達(dá)郵箱:zhiwei.zhouzw@alibaba-inc.com
總結(jié)
以上是生活随笔為你收集整理的阿里SRE体系如何支撑24小时峰值压力、220+个国家“剁手党”?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何打造智能化的员工出行方式?阿里自研出
- 下一篇: 对待棘手bug,新手与大牛的差距在哪里?