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