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