摘要: 由藍軍主導的技術攻防演練就是那個傳說中的「瘋起來連本身都打」的項目。
若是一個技術團隊不幹別的,專門「搞破壞」,這是一種怎樣的存在?這真的不是「天方夜譚」,在支付寶確實有這麼一支隊伍——技術藍軍。藍軍的任務就是不斷地攻擊和進攻,而防守方則是技術紅軍。在支付寶,藍軍從屬於螞蟻金服技術風險部(SRE),而紅軍則包括SRE及各業務部門的技術團隊。程序員
說到SRE,就須要科普一下了。SRE全拼爲Site Reliability Engineer,是軟件工程師和系統管理員的結合,是一種要求極高的技術工種。聽說,目前全球只有少數幾家頂級互聯網公司擁有真正意義上的SRE團隊,螞蟻金服是其中之一。安全
由藍軍主導的技術攻防演練就是那個傳說中的「瘋起來連本身都打」的項目,今天,就來起底一下這個神祕的項目。網絡
紅藍軍技術攻防演練與螞蟻金服技術風險部的發展息息相關,而螞蟻技術風險的演進軌跡和遊戲中的不斷打怪升級很是相像。架構
早期是質量+運維+架構師三角協同,各司其職並自發性的開展一些技術風險相關的工做。2013年,螞蟻金服技術團隊提出了質量2.0戰略,以統一的規章、統一的流程和統一的陣型,開始體系化地沉澱故障檢測等方面的平臺化能力。併發
大概一年後,也就是2014年,專門成立了技術質量部,從全域視角解決技術風險的問題。運維
2015年,技術質量部正式升級成爲技術風險部,專一研發及架構的技術風險問題,並完成相應解決方案和落地的平臺。優化
2016年,技術風險部再次升級爲SRE團隊。spa
SRE團隊組建後,就開始全面開展故障自動定位、自適應容災、防抖、精細化高可用等工做。其中防抖這塊,要保證任何的網絡或基礎設施抖動,用戶都無感知;而精細化高可用,又叫單筆高可用,其顆粒度能夠精準到用戶的每一筆交易,遠遠優於行業內的機房級高可用。設計
同時,那個熱衷「找茬」的組織——技術藍軍也正式成立。這個專門的、擁有獨立職能的團隊不幹別的,主要職責是挖掘系統的弱點併發起「真實」的攻擊,紅藍軍技術攻防演練也自此誕生。blog
牛X的是,技術藍軍並不對各業務方負責,只對應用架構及防護系統的穩定性和可靠性負責。在藍軍眼中,故障的發生是必然的,只是時間遲早而已。藍軍只有想盡辦法去觸發這些故障,這樣,在故障真實發生的時候,纔有足夠的應付能力。
因此,藍軍發掘各種脆弱點,並經過紅藍軍技術攻防演練,不斷驗證防護系統的可靠性。而故障防護系統及不斷優化的高可用架構則是由SRE團隊的紅軍與各業務深度合做,沉澱、構建出來的。
如今,全棧級別的技術攻防演練每週都在進行,藍軍彷佛對「瘋起來連本身都打」很上癮。
持續不斷的攻防演練,讓藍軍和紅軍的技術能力獲得了極大地提高,同時雙方「武器庫」也在不斷升級。
2017年秋天,藍軍團隊在成立後的兩個月內,自主研發了字節碼級別的故障注入系統Awatch,這個武器的厲害之處在於能夠實時地對運行中的業務系統進行任意鏈路的編織侵入。這對於對於技術藍軍以及整個紅藍攻防體系,具備里程碑式的意義。
藍軍研發出了厲害的武器,紅軍也沒閒着。
與此同時,技術紅軍的防控體系建設也在如火如荼地進行着,實時覈對平臺橫空而出。該平臺可以作到穩定的分鐘級覈對異常發現能力,在某些場景下能夠作到秒級發現,而且平臺提供了業務快速接入的能力;紅軍還在實時覈對平臺的基礎之上,升級演化出一套智能覈對平臺(內部代號四道防線),引入AI技術自動識別業務問題,目前這套防線已經覆蓋螞蟻80%以上的業務。另外,各個業務域針對自身業務的一些特殊性,也研發了相應的核對系統。
儘管藍軍制造故障的能力有很大的提升,但大部分的故障場景主要是各個業務方提供的,只有極少數是藍軍人工梳理業務或者分析代碼產出。此時,藍軍團隊認爲,平常演練常態化,在故障場景發現方面不能再依賴業務,必須創建自主發現故障場景的能力。
2018年3月,藍軍推出故障場景挖掘平臺,基於Awatch探針探測應用內數據流,以此進行「弱點挖掘」。這套弱點挖掘體系,可以自動發現故障場景,最高可以在5分鐘內產生500+的故障場景,紅藍攻防的平常演練的最爲重要一塊拼圖終於完成!
然而新的問題來了。
藍軍的故障挖掘平臺能力毋庸置疑,但有攻擊就須要應急,高頻攻防實施亦會給紅軍帶來大量的人力消耗。持續應急壓力驅動,紅軍開展「「故障自愈」架構體系升級及能力建設,以效能爲目標,結合仿真,紅藍軍一塊兒研發了「無損」攻防體系,而且推出與之匹配的度量平臺,自動度量攻防結果,數據可視化。
目前,常態紅藍技術對抗保持每週200+個故障場景的節奏在持續運做。
在線、實時、隨地、無差異……這是支付寶技術藍軍實施攻擊行爲的幾大標籤。
2017年年末的紅藍技術攻防周,技術藍軍發起攻擊,但因爲故障組件一處隱藏bug致使故障命中數量遠遠大於預期,給紅軍增添了很多麻煩,業務線的技術同窗投入大量的人力和資源進行善後。此情此景之下,紅軍方面不只沒有抱怨,反而給予藍軍鼓勵,「此次預期外的故障攻擊是最真實的應急鍛鍊!」
2018年年中的一次紅藍技術攻防中,藍軍在週末發起突襲,而恰好紅軍的相關同窗正在舉辦婚禮。因而,一羣程序員趕忙拿出吃飯的傢伙,噼裏啪啦敲着鍵盤進行應急,那畫面簡直不要太美了。
仍是在2018年的一次對抗中,紅軍祭出了「尖端武器」——自適應防災、防抖等,這讓藍軍吃盡苦頭,幾乎每次攻擊都無功而返。挫敗感飆升的藍軍最終放出大招,讓紅軍接受了很是猛烈的炮火洗禮。
有意思的是,彷佛藍軍攻擊得越歡,紅軍的同窗越高興……雖然看上去很受虐,但卻沒毛病,由於藍軍攻擊得越狠越深刻,被挖掘和發現出來的技術風險就會越肯定,防護系統的能力也會所以而獲得提高。
使人震驚的是,爲了防止藍軍的「襲擊」,紅軍除了在防護系統方面下十足的功夫,每一年期中和期末的紅藍技術攻防演練,紅軍都要舉辦一個儀式——那就是拜關公,除了叩拜,還得給驅邪鎮惡的關公獻禮,禮品包括旺仔牛奶、格子襯衫、鍵盤、香菸等。
螞蟻金服技術風險部門通過不斷地升級,並將紅藍技術攻防演練造成常態化。除了每週進行全棧級別的演練,每一年還會舉行規模極大的「期中考試」和「期末考試」。這意味着,支付寶的風險防控體系持續地經受打磨與錘鍊。
目前,支付寶的「紅藍對抗」演練已經沉澱出一整套成熟的風險防控體系,經過仿真環境模擬天災人禍,去考驗技術架構的健壯性及技術人員的應急能力,從而全面地提高系統穩定,實現系統的高可靠性和高可用性。
所謂的天災和人禍。天災指的是,當出現颱風、斷網、火情等極端異常狀況的時候,系統如何快速應對。這有點相似於今年杭州雲棲ATEC大會上,螞蟻金服副CTO胡喜現場演練的異常斷網狀況下,「三地五中心」自動切換,保證支付服務不中斷。人禍則是指因技術人員操做失誤引起故障後,系統如何快速應。
在螞蟻金融科技官網(https://tech.antfin.com/)上能夠看到,這些技術風險相關的能力已經對外開放,目前共有3款產品,包括容災應急平臺、全鏈路壓測和資金安全監控;另外,還有3款產品,變動管控、巡檢平臺和黑屏運維管控即將上線對外開放。
本文爲雲棲社區原創內容,未經容許不得轉載。