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