一、導讀
年前在測試交流的微信群裡面,看到了關于美軍的“宙斯盾”系統的文章(
https://mp.weixin.qq.com/s/_0nALr8rJ1Tq5pIFEZAikA),引發了一系列的讨論和思考,同時結合自己在測試十年的文章(
https://www.atatech.org/articles/58031)最後一段,關于自己做測試的一個小小夢想,就是想要那樣超酷的指揮部大屏,内心一直不能平靜,盡管自己的能力有限,不能很好的設計這樣的系統,一直猶豫要不要寫LIUDAO一系列的文章,來闡述下我個人的想法,因為這個是個負責的工程,我不能思考的太片面太簡單,一直不太自信去思考這塊内容,現在好不容易下定了決心,不管怎麼樣,我也必須抛磚引玉下,找回自己一直做測試、一直做品質的初心。
二、背景
對于一個軟體産品來說,不管我們在這個産品疊代了多少項目或需求,也不管我們是使用了什麼樣的研發流程,對于這個産品本身來說,TA随時随地的存在着品質或穩定性的風險;對于測試人員來說,我們有一個潛在需求,就是要對SUT的品質或穩定性風險做到了如指掌,經驗豐富的測試人員可以或多或少的做到這一點,TA的思考、分析、行動點和結論大部分是在TA的腦子裡面,其他人很難知曉其正确性和合理性,隻能主觀的認可和接收;我們可以想象下,測試人員在和SUT進行着無時間限制的持續戰争,那麼對于敵我的現狀分析和思考、行動點就必須持續的疊代,同時為了協助你的決策的正确性,我們必須要有一個敵我的現狀(品質或穩定性、釋出等相關分析)的實時全面了解,同時能做出最快最合理的技術決策,確定對敵人進行緻命一擊,消除或最大降低風險,同時保護自己不受傷害。
目前來說,我們針對SUT的疊代釋出,有完整的釋出流程和風險評估;我們針對應用系統有完整的監控,包括系統層面、資料庫層面、業務層面、資料層面的實時監控;每次大促我們針對系統應用來一次穩定性大掃除,償還之前疊代那麼多功能需求後的技術債務。但是我們分析線上故障的時候,重大故障有明顯的下降,P3P4故障還是居高不下,我們有50%的故障類型是變更類故障,根據業務屬性不同,運作态類的故障也是有明顯的上升趨勢,這裡面就很明顯的告訴我們,我們在和SUT進行戰争的時候,在24小時持續作戰的情況下,在系統環境多變且不确定的情況下,我們的作戰能力是不夠的,我們對于敵我的現狀分析能力、決策能力、快速應對能力是不夠的;對于很多産品或系統來說,我們在傳承技術文檔或沉澱的時候,都是無效、過時、不完整的技術沉澱,同時這些沉澱也是因人而異的,這些SUT的敵我的現狀分析就是非常不可确定的狀态和結果,我們随時都有可能被緻命一擊,風險識别和應對能力非常弱。
針對一個需要24小時持續作戰的SUT對手,而且這個對手随時随地的出現風險,同時不同程度的傷害到我們,我們必須要有一個智能化的情報分析能力、風險識别能力、風險應對能力、SUT現狀視圖能力,同時将這些能力統一到一個智能化的指揮中心,通過自動化、半自動化、人工的預案和機制來取得這場殘酷的戰争。
三、LIUDAO定位
LIUDAO(六道)系統旨在智能化的快速提供SUT現狀分析和我方技術決策能力的一套可視化系統。核心幾個關鍵詞:
智能化:SUT的現狀分析和風險識别、風險應對必須是高度自動化,且部分能力是智能化的。
現狀分析:全面的在系統層面、業務層面、SUT的攻擊手段、疊代項目需求的變更層面等進行全面高精度的可視化資料收集和分析。
技術決策能力:針對SUT現狀,實時快速給出高精度分析和預案,高效率的提供決策能力和實施決策能力。
高精度可視化:SUT現狀、風險、風險應對、核心的關鍵資料和名額,高度濃縮,高效提供指揮部作戰強大的的資料能力。
四、LIUDAO解決什麼問題
我們有了那麼多監控和評估系統,為什麼我們還有設計和開發LIUDAO(六道)系統呢,很顯然,LIUDAO要解決的問題是一個面的問題,而不是一個點的問題;我們要在24小時内,永久範圍内(隻要這個SUT不下線)高效應對SUT的不确定的未知的風險進攻,這就是LIUDAO核心要解決的問題,具體以下幾個方面:
SUT系統現狀分析不全面:目前SUT系統的系統監控、應用監控、資料庫監控、資料監控都有,但是不在一個監控平台裡面,且監控名額非常多,缺少核心高精度的名額,無法高效現狀分析;另外一個核心就是系統變更的過程和結果的現狀分析目前還少,且和運作态的監控分析割裂開了,沒有進行一個全面的聚合分析;同時解決SUT系統的技術沉澱和傳承問題,我們不再是無效的文檔,而是實打實的LIUDAO系統的接入,同時也是具體實時性和有效性,同時也是接入程度的标準級别。
SUT系統風險分析不全面:目前我們針對SUT可能存在的品質或穩定性風險,提供各個次元的風險分析,這裡面我們需要把風險從現狀分析裡面剝離出來,給出額外的高度重視和關注;真正的聚合變更過程的風險和運作态的風險、依賴影響的風險等等,同時進行智能化的風險分析,給出預案和輔助決策的資料和行動點。針對現狀了解和風險關注的雙重需求,我們現在更多的是把風險監控放在穩定性監控和穩定性專項行動點上,這個不是24小時持續作戰的應對思路,是以我們必須解決在大促穩定性大掃除之前,常态化的智能化的識别風險和預警風險。
我方應對決策效率低:目前業務平台星環體系,做了很多關于故障快速恢複的能力;但是針對其他相關的産品系統較難應用類似的快速恢複能力,同時我們在預案建設和風險應對方面還沒有做到比較全的映射關系,是以目前在應對故障恢複的應急能力上,我們還需要進一步提升;但是LIUDAO核心要解決的問題不是故障恢複,而是強調故障預防、故障預警和在故障發生或擴大影響之前的應對能力,包括預案的智能化推薦和實施,同時同步觀察風險和現狀資料,這是一套完整的品質風險決策能力。
這裡看下來,是不是感覺LIUDAO解決的都是非常大的品質相關問題,且是大而全的問題,然而非然,LIUDAO其實就是一個指揮部大屏,幫助測試人員對SUT做到真正的了如指掌,24小時持續作戰中做出最正确的技術決策;而要能實時準确的這些可視化資料和資訊,背後是有多套風險引擎和資料引擎,這些可能70%我們已經在其他平台或工具上都已經做到了(部分已存在的平台的在設計上的輸入輸出可能會有标準化的修改)。
五、LIUDAO目标願景
雖然一直很想思考LIUDAO系統的産品架構、技術架構、設計架構方面,但是裡面的細節也不能不涉及,我對裡面的細節了解的不全面,很容易比較宏觀,正好借這個機會,重新梳理下自己在品質和穩定性方面的積累和想法,之前也說了,我作為測試人員,我對自己的SUT要做到了如指掌,且能讓人信服,不僅僅是過去經驗的信服,也能夠在過程上,思考邏輯上,讓人信服。
目前對于LIUDAO系統來說,TA可以設計成一個平台,接入所有可以标準化接入的SUT,也可以設計成一個SAAS服務,提供擴充性的API和個性化的基礎服務能力,當然也可以設計成獨立SUT的用戶端SDK,提供SUT獨有的能力,對于以下私有化、獨立部署等獨立特有需求的能力。每個不同的設計方式都有各自的利弊,目前還沒有完全确定一個完美的方式,不管怎樣,LIUDAO的目标就是讓測試人員随時随地對SUT的現狀和風險了如指掌,變更前後都心領神會,運作态能緊急預警;測試管理者對于任何一個産品業務的現狀和風險了如指掌,對于大促的核心鍊路也心裡有底,任何時刻,都可以和SUT進行對抗,提前預防和預警風險,智能化補助技術決策。
總結一句話,LIUDAO的願景就是成為CIA+FBI的合體,具備高效全面的情報收集和分析能力,也具備智能化的風險決策和行動能力,時刻準備着和SUT進行常态化作戰,并取得最終的勝利。
六、後記
萬事開頭難,這次關于LIUDAO系統的開篇總算完成了,接下來才是最難最核心的産品架構設計、産品元件設計、技術架構設計、系統标準接入和應用等核心内容,這些内容都是比較複雜的,需要長時間去積累沉澱,去梳理思路,給自己定一個flag吧,2021年完成所有LIUDAO系統的内容編寫,平均每2-3個月産出一篇(這個難度真不小,接下來的文章需要畫很多圖,需要了解更多細節點,這些比較耗時間)。