小米的運(yùn)維理念是NoOps,就是希望把運(yùn)維的日常工作盡可能的自動化起來,減少手工運(yùn)維操作。做為一個運(yùn)維人員,沒有人愿意每天重復(fù)那些繁瑣的運(yùn)維操作;更沒有人愿意每天處于高度緊張的精神狀態(tài),隨時準(zhǔn)備應(yīng)對線上故障。
小米運(yùn)維系統(tǒng)通過借鑒和使用開源軟件、并按照具體的場景進(jìn)行優(yōu)化,同時也逐步將一些通用的運(yùn)維組件進(jìn)行開源,目前發(fā)展已經(jīng)趨于成熟。本次51CTO記者特別采訪了【W(wǎng)OT2016互聯(lián)網(wǎng)運(yùn)維與開發(fā)者峰會】特邀講師、小米運(yùn)維高級工程師黃繼,他將分享小米運(yùn)維發(fā)展中的關(guān)鍵節(jié)點和對自動化發(fā)展的未來期許。
講師介紹
小米運(yùn)維高級工程師 黃繼
黃繼,目前在小米運(yùn)維部負(fù)責(zé)主機(jī)資源虛擬化和業(yè)務(wù)部署自動化相關(guān)工作,構(gòu)建私有的類PaaS平臺,旨在實現(xiàn)業(yè)務(wù)部署和容量管理部分的自動化、資源利用率的最大化;涉及業(yè)務(wù)的部署發(fā)布、容量管理和調(diào)度,資源的虛擬化等。
小米運(yùn)維在最初就提出了NoOps的思想作為工作開展的核心,因此高效的、體系的、高程度自動化的運(yùn)維系統(tǒng)是運(yùn)維工程師一直致力和追求的目標(biāo)。他們不斷在努力和嘗試將任何低效高風(fēng)險的人工管理轉(zhuǎn)換為高效可靠的自動化管理,并提高運(yùn)維的效率和業(yè)務(wù)的穩(wěn)定性。
所謂NoOps就是完全的通過自動化系統(tǒng)來管理和運(yùn)維線上業(yè)務(wù),自動的完成發(fā)布上線、故障診斷、容量調(diào)整等。從簡單到復(fù)雜的運(yùn)維工作,不再需要運(yùn)維介入干預(yù)。而這需要有相當(dāng)程度的業(yè)務(wù)標(biāo)準(zhǔn)化支持、眾多的基礎(chǔ)設(shè)施依賴和體系化的運(yùn)維系統(tǒng)建設(shè)。所以,這個愿景的實現(xiàn)是一個任重道遠(yuǎn)的過程。
前期,小米運(yùn)維工程師主要是通過部署系統(tǒng)和服務(wù)樹系統(tǒng)建設(shè)來規(guī)范和標(biāo)準(zhǔn)化線上業(yè)務(wù),整合業(yè)務(wù)的編譯、打包、發(fā)布、啟停、主機(jī)與業(yè)務(wù)程序之間對應(yīng)關(guān)系的自動維護(hù)。這個可以說是關(guān)鍵點之一,因為運(yùn)維規(guī)范和標(biāo)準(zhǔn)化的抽象程度不僅決定了部署/服務(wù)樹系統(tǒng)實現(xiàn)的復(fù)雜程度,還決定了是否給業(yè)務(wù)架構(gòu)的發(fā)展變化留有足夠空間,如果抽象的不夠,很可能出現(xiàn)系統(tǒng)覆蓋不了業(yè)務(wù)變化,面臨重新調(diào)整標(biāo)準(zhǔn)還是重新設(shè)計系統(tǒng)的兩難。小米運(yùn)維在這塊花費(fèi)了大投入,他們的部署和服務(wù)樹系統(tǒng)實現(xiàn)方案目前管理和支撐著大部分的小米服務(wù),同時起著整合周邊系統(tǒng)、提供其他自動化所必須數(shù)據(jù)的至關(guān)重要作用。
其次,小米監(jiān)控系統(tǒng)是小米NoOps道路上的一個大事件。open-falcon是小米公司從互聯(lián)網(wǎng)公司的一些需求出發(fā),從各位SRE、SA、DEVS的使用經(jīng)驗和反饋出發(fā),結(jié)合業(yè)界的一些大的互聯(lián)網(wǎng)公司做監(jiān)控、用監(jiān)控的思考出發(fā),設(shè)計開發(fā)出的監(jiān)控系統(tǒng)。這一系統(tǒng)的目標(biāo)是做最開放、最好用的互聯(lián)網(wǎng)企業(yè)級監(jiān)控產(chǎn)品。
目前,open-falcon已經(jīng)成為大家熟知的開源版本,大概有50多家互聯(lián)網(wǎng)公司在使用。這套系統(tǒng)除了解決小米龐大規(guī)模的業(yè)務(wù)/主機(jī)數(shù)據(jù)采集、監(jiān)控、繪圖等基礎(chǔ)監(jiān)控功能外,通過與服務(wù)樹系統(tǒng)的整合,實現(xiàn)了監(jiān)控-主機(jī)-業(yè)務(wù)之間關(guān)聯(lián)關(guān)系的自動維護(hù),而這個工作在傳統(tǒng)人工運(yùn)維中需要消耗相當(dāng)大的人力成本。
安裝了falcon-agent的機(jī)器,可以實現(xiàn)自動開始采集各項指標(biāo),主動上報,不需要用戶在Server做任何配置(這和zabbix有很大的不同),這樣做的好處,就是用戶維護(hù)方便,覆蓋率高。當(dāng)然這樣做會給Server端造成較大的壓力,不過open-falcon的服務(wù)端組件單機(jī)性能足夠高,同時都可以水平擴(kuò)展,所以自動多采集足夠多的數(shù)據(jù),破解了SRE和DEV的事后追查難題。
最后,就是容器化引入和動態(tài)部署系統(tǒng)的構(gòu)建,在資源利用率提升和時間成本節(jié)省上已初有成效,這次黃老師將在4月份的互聯(lián)網(wǎng)運(yùn)維和開發(fā)者峰會上,分享小米在業(yè)務(wù)的自動發(fā)布和動態(tài)調(diào)度方面的一些實踐經(jīng)驗,其中也包括目前行業(yè)比較關(guān)注的Docker/Mesos等開源軟件在小米運(yùn)維系統(tǒng)中的應(yīng)用等。
目前,小米的運(yùn)維自動化著重解決了人-主機(jī)-業(yè)務(wù)-監(jiān)控這幾個運(yùn)維基本元素自身以及相互之間關(guān)聯(lián)互動的管理,還仍然在不斷的發(fā)展和完善過程中,未來希望不僅可以實現(xiàn)自動化管理,還可以較智能化的輔助人工完成某些決斷、完成和處理一些復(fù)雜的問題。
另外,黃老師提到了對他優(yōu)秀的運(yùn)維工程師的理解,那就是優(yōu)秀的運(yùn)維工程師首先是不守舊,能折騰,敢于嘗試和改變;其次是追求完美,有打破砂鍋問到底、不達(dá)目的不罷休的精神;最后是專業(yè)能力和素養(yǎng),對技術(shù)的執(zhí)著和熱愛。