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