OpenAnolis 龍蜥社區正式成立系統運維(System Operation&Maintenance, sysOM)SIG。阿里云和統信軟件作為系統運維 SIG 的聯合發起方,將攜手龍蜥社區開發者一道,努力在自動化運維領域構建強大的生態體系,促進系統運維 SIG 的相關項目快速部署于廣大的業務場景。
系統運維 SIG 目標是致力于打造一個集主機管理、配置部署、監控報警、異常診斷、安全審計等一系列功能的自動化運維平臺。探索和實現創新的 sysAK 工具、高效的 LCC(Libbpf Compiler Collection)開發編譯平臺及 netinfo 網絡抖動監控系統等,實現系統問題的快速上報、分析與解決,提升集群的全自動運維效率,與社區合作伙伴一道共同構建大規模集群運維生態鏈。
還記得我們的非典型程序猿青囊嗎?在前幾期的云巔論劍微信公眾號里,我們介紹了sysAK 的 memleak 檢測工具和 coredump 瘦身技術以及網絡抖動監控利器netinfo,外部開發者對我們這個工具集表達了強烈期待,今天,我們將把系統運維 SIG 的第一個項目,隆重的介紹給大家,并將其正式開源。
什么是 sysAK
sysAK,全稱是 system analyse kit(中文名青囊),基礎來自于阿里百萬服務器的多年運維經驗,通過對這些經驗進行抽象總結出典型場景,針對不同的運維需求提供了一系列工具,形成統一的產品進行服務。工具集包含了很多強大的底層系統運維能力,這些工具融合到了不同產品的運維平臺中,實現高效的自動化運維。
sysAK 誕生背景
在系統運維過程中,資源監控與利用、問題排查與解決是核心訴求,怎么樣做到這些,需要一系列的操作系統底層能力與工具,這些能力與工具目前比較多的分散在不同的場景,怎么有效的整合去發揮他們的作用以及更方便的在系統上進行部署,缺少一個整體的方案,特別是在現代云計算中心中,集群大規模的機器通常包含不同的業務場景、系統及硬件平臺,對這些能力與工具也有著非常高的要求。同時目前很多現有的工具對專業知識要求過高,對普通運維人員來說存在不低的門檻。因此 sysAK 誕生的目標是通過統一的跨平臺工具集補齊系統運維現有能力,并高效易用的發揮作用。
sysAK 技術特點
由于不斷發展和變化的復雜業務環境,工具集也需要持續迭代,以期望覆蓋更多的場景,因此希望通過社區合作,共同打造出這個跨平臺的統一工具集。為此,sysAK 在技術實現上采用包容的框架:
工具集支持多種語言格式,c、shell、python、go 等,方便不同語言習慣的開發者進行開發,快速集成;同時針對需要采集系統內核數據的情況,也同時兼容 Linux kernel module 和 eBPF 兩種技術,對內核版本不做限制。
當然除了功能外,sysAK 還首提自我資源控制的概念,避免工具運行過程中對系統的資源消耗和產生大的干擾。
sysAK 核心能力
目前工具集覆蓋系統運維典型場景,包括三大類功能:
1、線上問題分析診斷:
診斷典型問題如負載異常、網絡抖動、內存泄漏、io毛刺、性能瓶頸、應用異常等,針對性的提供工具,同時盡量減少工具的專業性,讓用戶更易使用和解讀。
2、資源監控:
針對各種系統資源(CPU、內存、網絡、文件 IO、內核管理結構等)提供更精細化的資源監控,幫助業務運維實現細粒度的運維調度,高效的運用資源。
3、系統介入:
主要針對 2 種情況提供系統介入能力:
一是問題分析診斷時,需要驗證特定 case 或模擬注入才能真實確定問題進行修復;
二是總有不可預期的問題會發生,對于業務來說很多問題發生后,怎樣快速恢復和止損才是第一要務,對于不是整機異常的問題(系統級死鎖、夯機),提供介入能力對系統進行恢復或故障隔離等。
sysAK 規劃
sysAK 在龍蜥社區開源,并采取 SIG 共建協作模式,每季度發布新版本更新,包含關鍵 bug 修復和新特性、新能力,并逐步將產品完整能力開源。
目前已將代碼放到了龍蜥社區(龍蜥微信號:openanolis_assis)進行了托管,先期開源的代碼除包括基礎開發平臺、以及前面大家非常關注的內存泄漏工具(memleak,見 AK47 所向披靡一文)外,另外還包含了一些常用的工具:loadtask(系統負載分析)、runlatency(系統抖動分析)、sysmonitor(sys cpu異常自動數據抓取)、taskctl(進程異常注入)、tracesig(進程信號跟蹤)、cpuirq(中斷信息分析)。
sysAK 里會逐步集成和開放很多其他強大的工具,下一階段開放的重點工具包括:
netinfo—網絡狀態實時監控與分析,精確分析網絡問題
ossre—沉淀阿里云運維知識庫,自動分析快速識別已知問題
appscan—進程性能瓶頸快速界定,業務調優利器,在多個客戶現場調優中發揮了實際作用
ulockcheck—應用鎖分析工具
sysconf—系統配置差異精準分析,輔助業務調優與分析變更導致的問題