IT系統穩定性創新者:分佈式軟件,“笨馬”先跑

(PerfMa CEO 李嘉鵬)

早在2006年前後,IT系統穩定性就成爲了當時集中式架構的挑戰。隨着互聯網的快速興起,當時的“Unix+小型機”架構遭遇了數據爆增的衝擊。特別是在線交易、商業分析和數據庫等關鍵業務系統,在2010年前後進入了TB甚至PB級,導致傳統IT架構不堪重負,對IT系統的穩定性和可擴展性等提出了新要求。也就是從那時起,阿里巴巴開始了去“IOE”改造,採用X86服務器和標準存儲與網絡設備等,重新架設高穩定和可擴展的分佈式IT系統。

2010年後的10年,中國的互聯網公司先後進入了分佈式系統的改造和建設;而2020年一場疫情和新基建,更推動了電信、金融、電力、零售、醫療、教育、政府機構等全社會各行各業IT系統基於雲計算的分佈式進化。從集中式架構到分佈式架構,IT系統的穩定性不僅僅涉及到機房佈線、網絡通信、硬件部署、應用架構、數據容災等,還需要對平臺自身的精細化管控和保障,包括容量壓測與評估、全鏈路壓測等。

在實踐分佈式系統穩定性過程中,還經常涉及到對應用軟件故障的根因探查與修復,這就涉及到相應的關鍵數據:Java執行堆棧、Java虛擬機(JVM)狀態、變量狀態、事件分析等。2017年底,國內創業公司杭州笨馬網絡技術有限公司(PerfMa)成立,兩位創始人都來自阿里系,其中CEO李嘉鵬是JVM專家、CTO童庭堅曾多次參加雙十一的全鏈路壓測。2020年6月,PerfMa宣佈獲得來自嘉御基金數千萬的A+輪融資,這也是繼去年9月獲得來自同創偉業的數千萬元A輪融資後的又一輪融資。

在談及本輪融資及今後的發展時,李嘉鵬表示PerfMa以分佈式系統穩定性爲發展方向,準備以三到五年時間推出完整的工具鏈產品,幫助國內互聯網公司以及數字化轉型企業平滑向下一代分佈式軟件架構遷移。

IT系統穩定性成爲新賽道

分佈式系統和軟件的穩定性,是一個近十年來新興的IT實踐領域。與傳統的IOE集中式架構相比,基於X86服務器集羣和大規模數據中心的互聯網分佈式系統,主要是由阿里在近十年推動的一個新興軟件開發與工程領域。實際上,亞馬遜也是直到2020年才下線了最後一個Oracle數據庫,也就是說不少互聯網公司其實在過去十年還在沿用集中式架構。

和SOA以及現在的微服務,從小規模的服務器集羣到大規模自動化多租戶的雲計算系統,分佈式系統和軟件的概念一直在進化。從大型機到Unix小型機曾經被視爲一種分佈式進化,從小型機到X86服務器也被視爲一種分佈式進化,而從X86集羣到今天的互聯網、企業雲計算又被視爲一種新的分佈式進化。

以雲計算爲代表的互聯網規模分佈式系統,其基本假設是底層基礎設施的不穩定,也就是說即便底層數據中心有多臺服務器等設備出現故障,也要保障分佈式軟件的持續運營以及服務水平和用戶體驗不降級,這也是雲計算與集中式系統以及之前的分佈式系統的最大區別。然而,雲計算模型下的分佈式系統,非常難於理解、設計、構建和管理,特別是由於引入了大量服務器、存儲和網絡等設備,導致應用程序的根源問題更難於被發現。早在2009年的時候,支付寶就經歷了分佈式系統穩定性的巨大挑戰,當年曾出現了大面積故障。2013年開始,支付寶跟隨淘寶進行單元化的異地多活改造,這是分佈式系統的進一步升級,也是雙十一流量的巨大挑戰,隨後支付寶分佈式系統的穩定性再次得到進化。2013年,阿里實踐了雙11備戰的核心武器——全鏈路壓測;2017年實現了常態化智能化全鏈路壓測。2017年以後,阿里雙十一開始常態運營,不再成爲技術挑戰。

對於傳統企業和中小互聯網公司來說,服務器集羣規模往往在幾十臺到百餘臺左右,只是近年來隨着消費互聯網、產業互聯網、工業互聯網和物聯網等互聯網應用的大規模發展,分佈式系統和軟件的規模纔開始快速增長。而以支付寶爲代表的分佈式系統與軟件穩定性,纔開始受到業界的重視。

進入2020年,隨着企業互聯網與產業互聯網的大繁榮,特別是2020疫情強化了全社會上雲上網,這些都爲分佈式系統的IT系統穩定性打開了一個新賽道。

“笨馬”先跑

PerfMa是一家主打對分佈式系統和軟件進行全鏈路壓力測試以及系統性能優化的創業公司。CEO李嘉鵬作爲業內頂級JVM專家,曾先後在螞蟻金服的中間件團隊以及阿里巴巴JVM團隊工作,也是阿里性能分析平臺的創始人;而CTO童庭堅曾主導建設了螞蟻金服的性能壓測體系,更早之前在就職於惠普期間專注於爲傳統行業提供性能、自動化測試解決方案。

(PerfMa CTO 童庭堅)

分佈式壓測系統與應用性能調優,這是分佈式系統穩定性實踐中兩大重要的領域。中大型互聯網應用的服務器規模從幾千臺到十幾萬臺不等,如何以更少的人力管理更爲龐大複雜的分佈式應用軟件質量,這就需要引入經典的軟件測試技術並應用於分佈式系統上。而在分佈式測試中,壓力測試又是保障生產系統中軟件質量的重要手段。童庭堅在螞蟻金服期間專注於工具性平臺的研發,他在5年時間裏主導了4屆雙十一支付寶業務的穩定性驗證,包括整體性能和容量能否支撐得住流量峯值,準備應急預案和風險應對,提前演練和探索存在的問題等。

由於大多數互聯網軟件服務都是基於Java,當分佈式壓測發現問題後,就需要JVM專家進行問題排查和性能調優。阿里巴巴以及支付寶(就是後來的螞蟻金服)的絕大部分業務代碼都是Java編寫的,支付寶從2013年開始,伴隨着移動支付的高速發展,爆出的性能問題數量激增,JVM性能問題佔比顯著增加,也導致李嘉鵬痛下決心鑽研JVM。李嘉鵬與同事們的其中一個成果就是阿里性能分析平臺——Profiling就是通過收集Java程序運行時的信息來研究程序行爲的動態分析方法,其目的在於定位程序需要被優化的部分,從而提高程序的運行速度或是內存使用效率。

在集中式架構的時代,應用軟件按照大的業務功能劃分爲不同的模塊或者系統,無論在系統類型、數量還是依賴上均相對可控,一旦出現線上問題也容易在線下模擬分析。但建立在分佈式架構體系上的應用服務具有數量多、規模大、環境複雜的特點,不僅帶來了很多問題,也不是單一的工具和系統能解決的。而且分佈式軟件服務的線上問題有時與環境有關、線下難以復現,有時又是偶發性出現、難以捕捉。隨着系統複雜度的增加,線上問題的快速定位和實時分析是一項巨大挑戰,一般只能靠人力解決,阿里性能分析平臺就是把相關人員的寶貴經驗沉澱到工具軟件中。

2017年底,李嘉鵬與童庭堅決定離職創業,將阿里的分佈式系統壓力測試與JVM調優等經驗通過產品化方式對外輸出,2018年開始正式對外推出產品。基於二人之前的實踐經驗,很快就積累起了太平洋保險等客戶,並一直保持健康的現金流。而李嘉鵬一直在堅持運營的Java程序調優技術經驗分享公衆號“你假笨”,也成爲了創業期間積累種子客戶的重要渠道,很多客戶在讀了該公衆號分享的技術內容後就主動找上門求解難題。

下一個藍海

不論對於全球還是中國市場,分佈式系統穩定性都是一個新的領域。全球範圍看,也就Google、Facebook、阿里等具備相關的實踐,而阿里也是唯一經過IT系統穩定性考驗的超大規模電商系統。在超大規模互聯網和雲服務公司之外,很多大中型互聯網公司和傳統企業在最近幾年纔剛剛接觸到分佈式系統穩定性這一新實踐。

李嘉鵬認爲,分佈式系統穩定性是對企業DevOps以及Testing等的一體化改造。進入2020年,很多公司開始引入DevOps,但卻根據傳統觀念把Testing測試功能放在Ops運維側。實際上,分佈式系統穩定性是橫跨Dev、Ops和Testing的連動連調,不僅要發現問題,更要以解決問題爲目的,特別是需要相應的工具軟件作爲技術支撐。從這個角度來說,分佈式系統穩定性工具是一片新的創業藍海。

目前,PerfMa形成了一套成熟的“產品+服務”級解決方案,產品做支撐、服務做加磅。爲客戶提供全方位的穩定性服務。

在解決方案方面:分佈式全鏈路壓測解決方案能夠充分暴露系統隱患、智能化根因分析解決方案則實現了對問題源頭的快速定位,並能給出調優建議;二者的完美結合讓分佈式系統的脆弱點無處遁形,再結合容量規劃、故障演練等產品,讓分佈式架構下的穩定性保障不再是難題。

(PerfMa解決方案)

PerfMa同時擁有面向企業和社區的6大技術核心產品:性能壓測產品XSea結合了互聯網全鏈路壓測方案及傳統集中式壓測方案,在測試計劃制定、測試準備、測試執行、結果分析以及性能基線管理全流程上建立了完整的性能測試體系,同時還可以與性能分析產品結合使用,在壓測過程中實時定位性能瓶頸;XLand產品專注於應用實時性能分析,爲企業級用戶打造基於問題驅動的實時性能分析產品,通過無入侵方式在極低的性能開銷下幫助客戶精準發現問題、定位問題、解決問題、讓每個性能問題都無處遁形,能夠簡單高效地發現CPU突增、內存泄漏、線程使用不規範、異常GC等性能問題,定位性能瓶頸;四款社區產品XPocket是針對Java應用程序的命令行工具包,集成了JVM參數優化、線程分析等功能;XXFox是JVM參數分析工具,爲用戶學習和使用JVM參數提供幫助;XSheepdog和XElephant則分別是Java線程與內存Dump分析工具,爲用戶在線排查問題提供了便利。

(PerfMa技術產品)

童庭堅強調,雖然分佈式系統穩定性是一個新藍海,但也有很高的技術門檻,如果沒有超大規模互聯網公司和雲公司的實踐經驗,則很難研發出相應的工具類產品。而中小互聯網公司或企業也不會自己成立一個獨立的JVM團隊,這種奢侈的配置也只有超大規模互聯網和雲公司才能負擔。PerfMa雖然出身阿里系,但在創業階段也針對企業級環境重新開發出了符合企業客戶需求和使用的產品。特別是針對企業中混雜的IT設備和軟件版本,PerfMa甚至自行購置了典型的大機、小機等企業級IT設備以進行產品研發。而關於性能調優,PerfMa除了支持JAVA之外,目前已經實現C和C++支持,正在籌備GO和PHP的支持,基本覆蓋了主流語言。

當前,PerfMa的工具產品以分佈式全鏈路壓力測試和應用性能優化爲主,未來三到五年還將繼續佈局整個分佈式系統穩定性工具鏈,推出覆蓋關鍵能力的工具型產品。

整體來看:未來每一家公司都將是軟件公司,每一家公司都將是互聯網公司,在全球整體進入數字經濟的時代大潮中,極需像PerfMa這樣能夠提供有效分佈式系統穩定性解決方案的技術廠商。今天的PerfMa選擇“笨馬”先跑——專注於一個又一個工具產品的研發,也許明天就是下一個來自中國的世界級企業技術公司。(文/寧川)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章