如果一個技術團隊不幹别的,專門“搞破壞”,這是一種怎樣的存在?這真的不是“天方夜譚”,在支付寶确實有這麼一支隊伍——技術藍軍。藍軍的任務就是不斷地攻擊和進攻,而防守方則是技術紅軍。在支付寶,藍軍從屬于螞蟻金服技術風險部(SRE),而紅軍則包括SRE及各業務部門的技術團隊。
說到SRE,就需要科普一下了。SRE全拼為Site Reliability Engineer,是軟體工程師和系統管理者的結合,是一種要求極高的技術工種。據說,目前全球隻有少數幾家頂級網際網路公司擁有真正意義上的SRE團隊,螞蟻金服是其中之一。
由藍軍主導的技術攻防演練就是那個傳說中的“瘋起來連自己都打”的項目,今天,就來起底一下這個神秘的項目。
從“青銅”到強者
紅藍軍技術攻防演練與螞蟻金服技術風險部的發展息息相關,而螞蟻技術風險的演進軌迹和遊戲中的不斷打怪更新非常相像。
早期是品質+運維+架構師三角協同,各司其職并自發性的開展一些技術風險相關的工作。2013年,螞蟻金服技術團隊提出了品質2.0戰略,以統一的規章、統一的流程和統一的陣型,開始體系化地沉澱故障檢測等方面的平台化能力。
大概一年後,也就是2014年,專門成立了技術品質部,從全域視角解決技術風險的問題。
2015年,技術品質部正式更新成為技術風險部,專注研發及架構的技術風險問題,并完成相應解決方案和落地的平台。
2016年,技術風險部再次更新為SRE團隊。
SRE團隊組建後,就開始全面開展故障自動定位、自适應容災、防抖、精細化高可用等工作。其中防抖這塊,要保證任何的網絡或基礎設施抖動,使用者都無感覺;而精細化高可用,又叫單筆高可用,其顆粒度可以精準到使用者的每一筆交易,遠遠優于行業内的機房級高可用。
同時,那個熱衷“找茬”的組織——技術藍軍也正式成立。這個專門的、擁有獨立職能的團隊不幹别的,主要職責是挖掘系統的弱點并發起“真實”的攻擊,紅藍軍技術攻防演練也自此誕生。
牛X的是,技術藍軍并不對各業務方負責,隻對應用架構及防禦系統的穩定性和可靠性負責。在藍軍眼中,故障的發生是必然的,隻是時間早晚而已。藍軍隻有想盡辦法去觸發這些故障,這樣,在故障真實發生的時候,才有足夠的應付能力。
是以,藍軍發掘各類脆弱點,并通過紅藍軍技術攻防演練,不斷驗證防禦系統的可靠性。而故障防禦系統及不斷優化的高可用架構則是由SRE團隊的紅軍與各業務深度合作,沉澱、建構出來的。

技術藍軍正在進行作戰部署
現在,全棧級别的技術攻防演練每周都在進行,藍軍似乎對“瘋起來連自己都打”很上瘾。
利矛與堅盾不斷更新
持續不斷的攻防演練,讓藍軍和紅軍的技術能力得到了極大地提升,同時雙方“武器庫”也在不斷更新。
2017年秋天,藍軍團隊在成立後的兩個月内,自主研發了位元組碼級别的故障注入系統Awatch,這個武器的厲害之處在于可以實時地對運作中的業務系統進行任意鍊路的編織侵入。這對于對于技術藍軍以及整個紅藍攻防體系,具有裡程碑式的意義。
藍軍研發出了厲害的武器,紅軍也沒閑着。
與此同時,技術紅軍的防控體系建設也在如火如荼地進行着,實時核對平台橫空而出。該平台能夠做到穩定的分鐘級核對異常發現能力,在某些場景下可以做到秒級發現,并且平台提供了業務快速接入的能力;紅軍還在實時核對平台的基礎之上,更新演化出一套智能核對平台(内部代号四道防線),引入AI技術自動識别業務問題,目前這套防線已經覆寫螞蟻80%以上的業務。另外,各個業務域針對自身業務的一些特殊性,也研發了相應的核對系統。
盡管藍軍制造故障的能力有很大的提高,但大部分的故障場景主要是各個業務方提供的,隻有極少數是藍軍人工梳理業務或者分析代碼産出。此時,藍軍團隊認為,日常演練常态化,在故障場景發現方面不能再依賴業務,必須建立自主發現故障場景的能力。
用“可樂山”明志,是程式員常見的套路
2018年3月,藍軍推出故障場景挖掘平台,基于Awatch探針探測應用内資料流,以此進行“弱點挖掘”。這套弱點挖掘體系,能夠自動發現故障場景,最高能夠在5分鐘内産生500+的故障場景,紅藍攻防的日常演練的最為重要一塊拼圖終于完成!
然而新的問題來了。
藍軍的故障挖掘平台能力毋庸置疑,但有攻擊就需要應急,高頻攻防實施亦會給紅軍帶來大量的人力消耗。持續應急壓力驅動,紅軍開展““故障自愈”架構體系更新及能力建設,以效能為目标,結合仿真,紅藍軍一起研發了“無損”攻防體系,并且推出與之比對的度量平台,自動度量攻防結果,資料可視化。
目前,常态紅藍技術對抗保持每周200+個故障場景的節奏在持續運作。
常态化的紅藍 “互怼”
線上、實時、随地、無差别……這是支付寶技術藍軍實施攻擊行為的幾大标簽。
2017年年底的紅藍技術攻防周,技術藍軍發起攻擊,但由于故障元件一處隐藏bug導緻故障命中數量遠遠大于預期,給紅軍增添了不少麻煩,業務線的技術同學投入大量的人力和資源進行善後。此情此景之下,紅軍方面不僅沒有抱怨,反而給予藍軍鼓勵,“這次預期外的故障攻擊是最真實的應急鍛煉!”
2018年年中的一次紅藍技術攻防中,藍軍在周末發起突襲,而剛好紅軍的相關同學正在舉辦婚禮。于是,一群程式員趕緊拿出吃飯的家夥,噼裡啪啦敲着鍵盤進行應急,那畫面簡直不要太美了。
還是在2018年的一次對抗中,紅軍祭出了“尖端武器”——自适應防災、防抖等,這讓藍軍吃盡苦頭,幾乎每次攻擊都無功而返。挫敗感飙升的藍軍最終放出大招,讓紅軍接受了非常猛烈的炮火洗禮。
有意思的是,似乎藍軍攻擊得越歡,紅軍的同學越高興……雖然看上去很受虐,但卻沒毛病,因為藍軍攻擊得越狠越深入,被挖掘和發現出來的技術風險就會越确定,防禦系統的能力也會是以而得到提升。
除了設計缜密的防禦措施防止襲擊,程式員拜關公求庇佑也是“習俗”
令人震驚的是,為了防止藍軍的“襲擊”,紅軍除了在防禦系統方面下十足的功夫,每年期中和期末的紅藍技術攻防演練,紅軍都要舉辦一個儀式——那就是拜關公,除了叩拜,還得給驅邪鎮惡的關公獻禮,禮品包括旺仔牛奶、格子襯衫、鍵盤、香煙等。
風險防控技術全面開放
螞蟻金服技術風險部門經過不斷地更新,并将紅藍技術攻防演練形成常态化。除了每周進行全棧級别的演練,每年還會舉行規模極大的“期中考試”和“期末考試”。這意味着,支付寶的風險防控體系持續地經受打磨與錘煉。
目前,支付寶的“紅藍對抗”演練已經沉澱出一整套成熟的風險防控體系,通過仿真環境模拟天災人禍,去考驗技術架構的健壯性及技術人員的應急能力,進而全面地提升系統穩定,實作系統的高可靠性和高可用性。
所謂的天災和人禍。天災指的是,當出現台風、斷網、火情等極端異常情況的時候,系統如何快速應對。這有點類似于今年杭州雲栖ATEC大會上,螞蟻金服副CTO胡喜現場演練的異常斷網情況下,“三地五中心”自動切換,保證支付服務不中斷。人禍則是指因技術人員操作失誤引發故障後,系統如何快速應。
在螞蟻金融科技官網(
https://tech.antfin.com/)上可以看到,這些技術風險相關的能力已經對外開放,目前共有3款産品,包括容災應急平台、全鍊路壓測和資金安全監控;另外,還有3款産品,變更管控、巡檢平台和黑屏運維管控即将上線對外開放。