支付宝技术期末考:专业技术蓝军首次对外公开
轉(zhuǎn)眼間2018年的進度條已經(jīng)拉到98%,年底正是大家忙碌的時候,我等上班族忙著做年終總結(jié),學(xué)生忙著復(fù)習(xí)功課準備期末考試,而在支付寶大樓里,本周也在進行著技術(shù)人員的期末考試:紅藍軍技術(shù)攻防演練。
12月的第三周,是支付寶技術(shù)人的“期末考試”。今年從12月7日開始,在支付寶辦公大樓6層的一間辦公室里,9名技術(shù)人員身穿統(tǒng)一的藍色T恤,在一排藍色的可樂山之后緊張地工作,他們就是支付寶的專業(yè)技術(shù)藍軍,他們的工作是對螞蟻金服的各個業(yè)務(wù)線系統(tǒng)注入故障進行攻擊。而各業(yè)務(wù)線的技術(shù)人員則作為紅軍,要對藍軍發(fā)起的突襲見招拆招,抵御他們的進攻。
支付寶藍軍誕生背景
紅藍軍技術(shù)攻防演練與螞蟻金服的技術(shù)風險部發(fā)展息息相關(guān)。不管是數(shù)據(jù)中心遭雷劈光纜被挖斷這樣的天災(zāi),還是人工操作失誤代碼bug這樣的人禍,真實的故障都是隨機和不確定的。支付寶人意識到,如果只能等真實故障發(fā)生時才能夠檢驗,防控能力將處于被動的局面,所以他們必須要有未雨綢繆的策略,提高對技術(shù)風險的防御能力。
2015年,支付寶把原來的技術(shù)質(zhì)量部正式升級為技術(shù)風險部,專注研發(fā)及架構(gòu)的技術(shù)風險問題,并完成相應(yīng)解決方案和落地平臺。2016年,技術(shù)風險部再次升級為SRE團隊。螞蟻金服技術(shù)風險部負責人俊義介紹說,相較于谷歌提倡的以確保網(wǎng)站可靠性為目的的SRE實踐來說,螞蟻金服的SRE團隊其實更應(yīng)該叫做TRE (Tech Risk Engineering),因為螞蟻金服的SRE團隊除了要確保網(wǎng)站、應(yīng)用的可靠性,還花了很大一部分精力來建設(shè)技術(shù)風險防控的能力。近年來螞蟻金服自研的分布式數(shù)據(jù)庫OceanBase,金融級分布式中間件SOFA,TRaaS技術(shù)風險防控平臺等技術(shù),從底層基礎(chǔ)設(shè)施到平臺都在不斷加強支付寶體系的抗風險能力。
SRE團隊成立后不久便發(fā)現(xiàn),以往的技術(shù)攻防演練幾乎都是小打小鬧,不成體系,也很零散。同時,技術(shù)團隊發(fā)現(xiàn)了兩個極為重要的現(xiàn)象,一是生產(chǎn)故障不是必然的,而通常都是偶然性的;二是生產(chǎn)故障是低頻的。這樣就帶來了一個很大的問題:故障的樣本很少。這意味著,沒有辦法證明,在真實的故障到來的時候以前設(shè)計的平臺和能力是不是管用。也就是說,SRE團隊建設(shè)的防御系統(tǒng)的可靠性,無法充分驗證。
?
2017年7月,SRE團隊成立了專門的、獨立職能的技術(shù)藍軍,其主要的工作就是發(fā)掘防御系統(tǒng)的弱點并發(fā)起真實的攻擊。技術(shù)藍軍并不對各業(yè)務(wù)方負責,只對這套防御系統(tǒng)的穩(wěn)定性和可靠性負責。
?
在技術(shù)藍軍看來,故障的發(fā)生是必然的,只是時間早晚而已,技術(shù)藍軍要想盡辦法去觸發(fā)這些故障,這樣,在故障真實發(fā)生的時候,才有足夠的應(yīng)付能力。所以,技術(shù)藍軍發(fā)掘各類脆弱點,并高頻地制造任意可能發(fā)生的故障,以驗證防御系統(tǒng)的可靠性。
紅藍軍對抗
藍軍的執(zhí)行軍長阿貴,在支付寶有十余年的工作經(jīng)驗。當我們驚訝于藍軍團隊目前總?cè)藬?shù)不超過10人時,阿貴說是的,尤其剛開始時感覺是在“以一己之力挑戰(zhàn)整個公司的技術(shù)人”。阿貴介紹說,藍軍要做的事情是去找各個業(yè)務(wù)線系統(tǒng)的脆弱點,并想盡辦法去觸發(fā)這些脆弱點。攻防對抗發(fā)生在鏡像系統(tǒng)中,該系統(tǒng)可以模擬生產(chǎn)環(huán)境中的流量行為,避免對線上環(huán)境造成影響。
紅軍按業(yè)務(wù)線分為8支隊伍:紅一支付軍,紅二微貸軍,紅三財富軍,紅四保險君,紅五芝麻軍,紅六國際軍,紅七安全軍和紅八平臺軍技術(shù)藍軍日常的工作除了要對各業(yè)務(wù)線系統(tǒng)發(fā)出攻擊,還要從歷史事故中總結(jié)或從代碼邏輯中找漏洞,把故障表現(xiàn)模型抽象出來,基于模型去發(fā)現(xiàn)系統(tǒng)的脆弱點。但是藍軍一共還不到10個人,要找出螞蟻金服全局系統(tǒng)的脆弱點,阿貴承認壓力還是很大的。“在團隊招人的時候,除了看他們是否有好奇心,對高可用是否有很深刻的理解,候選人心理承受能力也相當重要?!彼{軍團隊平時還需要開發(fā)故障挖掘平臺,設(shè)計探針和算法來采集和分析數(shù)據(jù)。
2017年秋天,藍軍團隊在成立后的兩個月內(nèi),自主研發(fā)了無侵入式故障注入系統(tǒng)Awatch,可以實時地對運行中的業(yè)務(wù)系統(tǒng)進行任意鏈路的編織侵入。2018年3月,藍軍推出故障場景挖掘平臺,基于Awatch探針探測應(yīng)用內(nèi)數(shù)據(jù)流,以此進行“弱點挖掘”。這套弱點挖掘體系,能夠自動發(fā)現(xiàn)故障場景,最高能夠在5分鐘內(nèi)產(chǎn)生500+的故障場景。
而紅軍方面自然也是見招拆招。據(jù)俊義介紹,紅軍不像藍軍專門抽出了一支隊伍,而是分布在各個業(yè)務(wù)線。當有人感覺到系統(tǒng)可能受到了攻擊,他會主動站出來去處理問題,這時候他就是一名紅軍。而在平時,各個業(yè)務(wù)線也會有專門的值班機制來緊盯系統(tǒng)是不是受到了攻擊。
藍軍有自己的故障挖掘平臺,紅軍也練就了一身好的防御本領(lǐng),祭出了全鏈路壓測平臺和資金監(jiān)控平臺,能很好的監(jiān)測故障并進行預(yù)防。同時紅軍也加強了“故障自愈”架構(gòu)體系升級及能力建設(shè),以效能為目標,結(jié)合仿真,紅藍軍一起研發(fā)了“無損”攻防體系,并且推出與之匹配的度量平臺,自動度量攻防結(jié)果,將數(shù)據(jù)可視化。
紅藍軍雙方在相互較量中共同提高螞蟻金服的技術(shù)風險防控能力。有時候藍軍發(fā)動的攻擊會被紅軍的故障自愈體系防范住,這時候阿貴也會覺得“有點失落”。也有的時候會有紅軍找藍軍理論:這種低概率的問題為什么要費勁去改善?但是在阿貴看來,不管一個問題發(fā)生的概率有多低,都應(yīng)該被注意到,并盡量對系統(tǒng)做改進以消除這些隱患。所以在紅軍感知到藍軍確實攻擊到脆弱點之后,會及時進行修復(fù),如果不能在短時間內(nèi)修復(fù)的,也會和藍軍約定時間提交修復(fù)方案。
目前,常態(tài)紅藍技術(shù)對抗保持每周200+個故障場景的節(jié)奏在持續(xù)運作。而在期末考期間,藍軍的攻擊密度會大大提升,在一星期內(nèi)對各業(yè)務(wù)線猛烈地發(fā)動大約1000個攻擊。在期末考之前,紅軍也有個傳統(tǒng),就是拜關(guān)公,給關(guān)二爺孝敬點瓜子、旺仔牛奶甚至是格子襯衫,這也是螞蟻金服獨特的工程師文化之一。
大概從2012年開始,在每年備戰(zhàn)雙十一的時候,支付寶技術(shù)人都會拜一拜關(guān)公,而關(guān)公也從照片到木質(zhì)再到銅質(zhì)不斷升級,成為支付寶人的一個傳統(tǒng):既是一種儀式感,也代表了支付寶人對技術(shù)的敬畏之心。
在期末考試中,紅軍會按照發(fā)現(xiàn)攻擊的時間和故障恢復(fù)的時間來進行排名。去年,紅軍的第一名和最后一名分別獲得了“金算盤”和“爛算盤”的獎品。阿貴對爛算盤印象深刻:是真的爛,鐵桿繡到發(fā)黑,算珠也有缺口,“也就只有在淘寶上能買到了”。
考試有排名,目的不是爭輸贏
當被問到是希望紅軍贏還是藍軍贏,阿貴回答說,其實紅藍軍攻防演練并不是為了要爭誰輸誰贏。而是雙方在對抗的過程中都能不斷反思升級,了解到螞蟻金服全局系統(tǒng)中有哪些容易出問題的脆弱點,在現(xiàn)實生活中發(fā)生問題之前把問題免疫掉,再大的問題也能達到5分鐘故障恢復(fù)的目標。因為金融行業(yè)關(guān)系到我們的日常生活,很多時候甚至?xí)P(guān)系到整個社會的穩(wěn)定。支付寶迄今全球活躍用戶已超過9億,安全穩(wěn)定的技術(shù)系統(tǒng)是事關(guān)生死的基石。
除了平常的故障演練紅藍軍技術(shù)攻防,螞蟻金服還在前沿技術(shù)上不斷探索,致力于打造更穩(wěn)定安全的技術(shù)體系,如:
- AI。使用人工智能技術(shù)進行校驗業(yè)務(wù)。螞蟻金服內(nèi)部有四道安全防線:第一道是研發(fā)團隊的代碼,第二道是質(zhì)量團隊,第三道是SRE團隊,第四道是人工智能技術(shù)。目前螞蟻金服已經(jīng)在其資金安全監(jiān)控系統(tǒng)中使用AI技術(shù),利用算法自動識別異常,做到故障自愈,再結(jié)合螞蟻金服的TRaaS技術(shù)風險平臺,可以覆蓋螞蟻金服80%以上的業(yè)務(wù)。
- 區(qū)塊鏈。安全是區(qū)塊鏈技術(shù)的一大特點,而金融行業(yè)是對安全性、穩(wěn)定性要求極高的行業(yè),所以當區(qū)塊鏈技術(shù)剛被提出的時候,金融被認為是最主要的應(yīng)用場景之一。螞蟻金服也在探索區(qū)塊鏈技術(shù),比如用于做容災(zāi)等,在未來也計劃打造安全可靠的區(qū)塊鏈平臺。
經(jīng)過不斷的打磨和錘煉,支付寶的技術(shù)風險防控體系已經(jīng)具有較好的可靠性和穩(wěn)定性。從螞蟻金融科技官網(wǎng)上可以看到,這些技術(shù)風險相關(guān)的能力已經(jīng)對外開放,目前共有3款產(chǎn)品,包括容災(zāi)應(yīng)急平臺、全鏈路壓測和資金安全監(jiān)控;另外,變更管控、巡檢平臺和黑屏運維管控即將上線對外開放。
寫在最后
任何系統(tǒng)和軟件都不可能做到十全十美,只要是人在寫代碼,就難免會有漏洞,難免有考慮不到的盲區(qū)。我們身處技術(shù)改善生活的時代,也需要對技術(shù)保持敬畏之心,居安思危未雨綢繆才能設(shè)計打磨出更加穩(wěn)定易用的產(chǎn)品。當今年雙十一能順利完成再創(chuàng)新高的2135億交易紀錄,當支付寶能扛住25.6萬筆/秒的交易峰值,這背后離不開這支藍軍隊伍的專業(yè)“找茬”,也離不開所有支付寶技術(shù)人強烈的風險意識。
總結(jié)
以上是生活随笔為你收集整理的支付宝技术期末考:专业技术蓝军首次对外公开的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: function is neither
- 下一篇: 双粒子格林函数卷积优化