揭祕:技術風險如何保障支付寶的穩定性?

就現在!螞蟻「校招季」重磅來襲!除了介紹螞蟻的技術大咖,我們還邀請了一些通過校招來到螞蟻的過來人分享他們的通關經驗和心得,這裡隨時可能有行業技術大咖和你的直系學長學姐出沒哦~

「校招季」欄目會持續輸出有關“螞蟻校招”的豐富內容,敬請期待!

之前,我們介紹過支付寶有一個“瘋起來連自己都打”的項目,現在,它要招募應屆生了!

這是一個什麼樣的項目?它需要什麼樣的應屆生?彆著急,讓我一一道來。

“瘋起來連自己的都打”的項目

如果一個技術團隊不幹別的,專門“搞破壞”,這是一種怎樣的存在?這真的不是“天方夜譚”,在支付寶確實有這麼一支隊伍——技術藍軍。藍軍的任務就是不斷地攻擊和進攻,而防守方則是技術紅軍。

藍軍自誕生之日起就帶有濃厚的神秘色彩,辦公室大門總是緊閉,因為白板上不定時更新著每天攻擊的紅軍隊伍,以及發起攻擊的時間,這是演習中需要嚴格保密的關鍵情報。

“像是以一己之力對抗整個螞蟻金服的技術人員。”在藍軍眼中,故障必然會發生,只是時間早晚而已,所以只能想盡辦法去觸發這些故障,這樣,在故障真實發生的時候,才有足夠的應付能力。

技術攻防演練每週都在進行,除了每年6月初的“期中考試”周,12月第三個星期為年度技術“期末考試”周,技術藍軍隨時都會組織突襲攻擊“測驗”,通過實戰中發掘出來的脆弱點牽引紅軍進行能力升級。

揭秘:技術風險如何保障支付寶的穩定性?

藍軍正在研究突襲計劃

在線、實時、隨地、無差別、突襲……藍軍的攻擊總讓人防不勝防。

2018年年中,藍軍在週末發起突襲,剛好紅軍的一位同學正在舉辦婚禮,為了不影響新郎迎娶新娘,由紅軍組成的程序員伴郎團紛紛從包裡掏出電腦,蹲坐在角落裡,噼裡啪啦敲著鍵盤進行修復。

作為報復,紅軍也祭出了“尖端武器”——自適應容災、防抖(保證任何網絡或基礎設施抖動,用戶都無感知)等系統,這讓藍軍吃盡苦頭,幾乎每一記攻擊都像打在棉花上,毫無作用。

除了設計縝密的防禦措施防止藍軍的襲擊,拜關公求庇佑也是紅軍的“習俗”。

揭秘:技術風險如何保障支付寶的穩定性?

為了確保挫敗藍軍的突襲,紅軍除了在防禦系統上下足功夫,還會在每年期中和期末的攻防演練前舉辦儀式——拜關公,除了叩拜,還得擺上旺仔牛奶、格子襯衫、鍵盤、香菸等貢品。

在支付寶,藍軍從屬於螞蟻金服技術風險部(SRE),而紅軍則包括SRE及各業務部門的技術團隊。除了紅藍攻防,技術風險團隊還做些什麼呢?

技術風險都做些什麼

支付寶的線上系統極其複雜,每一筆交易背後是數億行代碼、成百上千個系統,經過無數的鏈路,再加上海量線上實時交易,誰也無法預測下一秒是否會出現什麼樣的問題。如何消除人們的焦慮呢?這時就輪到技術風險團隊登場了。

技術風險工作就是使用技術手段,把各種軟件、硬件、人為引入的可能出現業務受損的的風險降到最低。在支付寶,它服務於從基礎設施到上層應用的所有系統,從寫第一行代碼到最終上線的整個研發流程。

目前,技術風險工作主要由SRE來承接,日常的工作包括變更風險防禦、快速應急、紅藍攻防、資金安全等,同時像雙11大促,春節紅包等高併發高性能的場景是技術風險工作的大考。

SRE是 Site Risk Engineering 的縮寫,主要工作是圍繞線上風險問題,研發技術架構和解決方案,去解決各種各樣的風險問題。

變更指的是代碼上線到實際生產環境的過程,我們需要圍繞變更建立各種技術手段,減少變更導致的故障,研發變更相應的平臺。據統計,80%的系統生產故障都來自於代碼變更,因此無論怎麼重視也不為過。支付寶建立了一系列制度保證系統內的任何變更都符合可監控、可灰度、可回滾的“三板斧”要求。

而一旦線上真的出現了問題,就涉及到應急機制了。支付寶有一套完善的線上應急流程,包括怎麼快速定位問題,以及一個數據智能化的監控系統,可以迅速從線上海量業務中找出風險異常點。一旦發現任何問題就發出告警通知相應的同學,進行相應的流程進行解決。

平時沒有故障的時候做什麼呢?就是開頭提到的紅藍攻防了。藍軍從第三方角度發掘各類脆弱點,並通過紅藍軍技術攻防演練,不斷驗證防禦系統的可靠性。每年的大演練時刻,都會進行全公司的動員,兩邊排兵佈陣,攻守異常激烈。

在“期末考試”中,每支紅軍在被攻擊後,花費多長時間發現故障,又用了多長時間恢復等都會被視作評定指標,而結果會根據“無損”攻防體系相匹配的度量平臺,對攻防結果進行排名。

揭秘:技術風險如何保障支付寶的穩定性?

去年“期末考試”冠軍得主是紅一支付寶軍,支付寶資深技術專家兼軍長李錚提到,去年12月21日的紅藍大軍頒獎儀式上,第一名獲得了一副金算盤,以及關公銅像一年所有權,而今年還給最後一名準備了特別“獎品”——一副爛算盤,“真的是很爛的算盤,也就淘寶上才能買到。”

除此之外,資金安全是專門保護支付寶裡的資金的系統,在海量線上資金處理時,要保證一分錢資金都不出問題,需要的是海量數據計算和風險挖掘能力。

技術風險的未來:喝著紅酒過大促

2018年杭州雲棲大會ATEC峰會,時任螞蟻金服副CTO胡喜在現場2000多人的注視下做了一場技術演示,杭州兩個數據中心的服務器網線被人為剪斷,在40%服務器突然無法工作的情況下,系統只用了26秒便恢復正常,這次演示展現了螞蟻金服“三地五中心”架構的容災能力,也是螞蟻金融科技開放的技術解決方案之一。

揭秘:技術風險如何保障支付寶的穩定性?

這已經很了不起,不過,和技術風險團隊對未來的暢想相比,還有不少距離。

當前,支付寶正在向雲原生架構轉型,作為守門員的技術風險團隊面臨著巨大的挑戰。這些挑戰包括:產品需求變更頻繁、軟件開發速度也越來越快,這個過程中帶來風險的可能性和頻率也越來越高;基礎架構的遷移要求系統進行全面的測試,帶來了巨大的測試工作量;原有的技術風險基礎設施和中臺部分系統不適應雲原生架構,需要重新研發。

不過,李錚表示,挑戰同時也意味著機遇,雲原生化將給技術風險帶來巨大的技術紅利。

以雙十一大促場景為例,雙十一是支付寶創新技術的演練場,每年最先進的技術都會在雙十一的舞臺上亮相,在2019年雙十一大促中,諸多雲原生技術就第一次登上舞臺。每年雙十一的峰值越來越高,而我們的追求是保證效率進一步提升,成本進一步下降。利用雲原生技術可以做到更快速的彈性伸縮,在幾分鐘之內就能完成擴容和拉起服務,這在以前是難以做到的。

隨著雲原生技術的進一步深化,我們可以暢想,未來雙十一保障會變成一件非常輕鬆的事情。利用如Serverless等技術,做到快速和自動化調度,不需要人的參與,就可以扛住雙十一的峰值,實現以前 “喝著紅酒過大促” 的夢想。

而要實現這些,關鍵就是把技術風險能力雲原生化,包含三個部分:從雲自身看,要對雲上技術和變更的完全可控;從技術風險角度看,需要統一技術的數據資產為技術風險服務;從雲服務的業務角度看,技術風險功能需要內置,業務系統不用研發甚至不感知就能具備能力。

除了雲原生之外,技術風險的另一個發展趨勢就是數據化和智能化。

數據智能在技術風險領域可以起到非常大的作用,概括來談,可以分為提升效率和擴展邊界。一方面,通過歷史日誌和監控數據對模型進行訓練,AI 可以自動化一些需要人工的作業流程,比如錯誤聚類,根因分析,還可以根據歷史數據進行預測,比如智能容量評估;另一方面,AI 可以同時進行的任務遠遠超過人工,覆蓋的業務範圍更廣,可以做到以前人工做不到的事情,比如故障自愈。

未來,技術風險防控體系將具備更多智能特性,儘量減少人工干預,最好的情況是實現無人值守,由智能化的風險系統來應對各種風險場景,完成全局最佳的風險決策。這將是整個團隊的努力方向——讓大促和所有變更無人值守。

寄語應屆生:什麼樣的人適合做技術風險

技術風險團隊正在面向廣大高校招募應屆生,李錚也分享了他認為一個優秀的候選人所需要具備的素質。

首先,要想在技術風險領域有所作為,需要對技術本身非常感興趣,要靈活運用各種新技術手段去應對各種風險,而風險很多時候都涉及到技術深層次的原因,只有耐下心來掌握其中的原理才能快速解決。

其次是需要有解決問題的能力。因為線上發生的問題可能千奇百怪,你需要去定義問題,然後用創新思維去解決問題,需要思考如何定義風險架構,體系化系統化的把問題根治。

還有一點是主動性,很多人看到風險會有點抗拒,有點往後退,不太願意面對風險,但技術風險團隊的工作就是要直面風險,與風險同行。遇到問題要麼自己解決,要麼找到其他人配合一起解決,需要這種主動擔當的能力,遇到風險能挺身而出,解決危機。

最後是快速學習、快速掌握技能的能力。像上面提到的雲原生、數據智能等,如今技術風險領域新的技術層出不窮,像以前一樣靠一項技術吃老本是不行的,必須擁抱變化,時刻準備著學習新的技能。

最後,祝願大家都能找到自己理想的工作~

加入我們

團隊介紹:

SRE(Site Risk Engineering)是結合傳統軟件工程與系統運維形成的新的技術體系,用以組建大規模高可用的分佈式系統。螞蟻SRE團隊的使命在於確保業務在快速演進的同時,具備高可用性以及擴展性,規避資金安全、穩定性等線上故障,完成高可用、高併發的技術挑戰。

負責螞蟻金服技術風險業務和平臺研發工作,工作包括穩定性、容量、故障自愈、AIOps等方向,構建各種高可用平臺系統解決螞蟻金服核心業務的金融級穩定性挑戰,和"雙11”級別的高併發巔峰挑戰,解決世界級的分佈式處理難題,進行相關技術攻關,識別和解決潛在的技術風險。而與你並肩的, 是螞蟻金服經驗豐富的工程師。這裡學習,成長,上升潛力巨大。

工作地點:

杭州、上海、北京、成都

崗位要求:

1. 面向2020年11月-2021年10月期間畢業的同學;

2. 具備紮實的Java編程基礎。對常見開發框架,如Spring、MyBatis等有深入瞭解,有中間件框架開發經驗或相關開源項目貢獻者優先;

3. 熟悉微服務架構、分佈式系統原理,有分佈式系統研發經驗者優先;

4. 有python/go,docker,系統運維等相關技術經驗者優先,熟悉serverless、AIOps等技術的優先;

5. 有良好的表達和溝通能力,善於學習,關注前沿,能利用創新手段解決問題者優先。

簡歷投遞:

點擊“瞭解更多”~


分享到:


相關文章: