寫(xiě)在前面的話(huà)
如今很多人認(rèn)為devops將徹底取代傳統(tǒng)運(yùn)維,我不這么認(rèn)為,在我看來(lái)devops只是很大程度上的代替了傳統(tǒng)運(yùn)維的手工操作,運(yùn)維人員只需寫(xiě)好自動(dòng)化運(yùn)維腳本,利用自動(dòng)化工具(zabbix,elk,ansible等)就可以實(shí)現(xiàn)自動(dòng)發(fā)布和監(jiān)控,省去了很多人力。因此Devops能否順利落地,運(yùn)維平臺(tái)的建設(shè)將會(huì)很重要。本文主要簡(jiǎn)單介紹下我司的三大運(yùn)維平臺(tái)。

運(yùn)維職責(zé)


運(yùn)維平臺(tái)
當(dāng)前我司運(yùn)維平臺(tái)主要有3個(gè):
持續(xù)集成和交付
①基于Jenkins持續(xù)構(gòu)建
②支持容器化打包和部署
③發(fā)布平臺(tái),支持灰度發(fā)布,異??焖倩貪L
監(jiān)控告警平臺(tái)
①完善的監(jiān)控體系:覆蓋機(jī)器、網(wǎng)絡(luò)、服務(wù)和客戶(hù)設(shè)備維度
②快速的異常發(fā)現(xiàn)和告警
③靈活的告警通知方式:LCP、郵件、微信、電話(huà)
問(wèn)題定位平臺(tái)
①基于ELK實(shí)現(xiàn)日志采集、上報(bào)、告警
②采集軟件平臺(tái)所有組件的運(yùn)行日志
③通過(guò)調(diào)用鏈分析和定位設(shè)備問(wèn)題

持續(xù)集成和交付

持續(xù)集成(CI),微服務(wù)組件全部改造成容器化部署,并通過(guò)K8S實(shí)現(xiàn)編排。
持續(xù)交付(CD),做一個(gè)版本發(fā)布平臺(tái):支持灰度、藍(lán)綠發(fā)布、版本回滾。
監(jiān)控平臺(tái)

公司之前一直使用的是zabbix+grafana的監(jiān)控方式,隨著我們的微服務(wù)推行容器化后,k8s應(yīng)用的監(jiān)控需求增加,Prometheus會(huì)更適合容器的監(jiān)控。另外,Prometheus用的就是自研的 TSDB,Zabbix 則用的是 MySQL 或 PostgreSQL,在高并發(fā)的情況下,時(shí)序型數(shù)據(jù)庫(kù)讀寫(xiě)性能是遠(yuǎn)高于關(guān)系型數(shù)據(jù)庫(kù)的,同時(shí)還提供了很多內(nèi)置的基于時(shí)間的處理函數(shù),簡(jiǎn)化數(shù)據(jù)聚合的難度。因此我們現(xiàn)在也逐步將Zabbix遷移到Prometheus。目前監(jiān)控平臺(tái)采集覆蓋基礎(chǔ)資源38項(xiàng),102個(gè)組件、9項(xiàng)業(yè)務(wù)監(jiān)控。


問(wèn)題定位平臺(tái)
背景:線(xiàn)上用戶(hù)反饋設(shè)備使用異常,研發(fā)或QA介入排查,經(jīng)常出現(xiàn)問(wèn)題定位時(shí)間太長(zhǎng),問(wèn)題反饋不及時(shí),客戶(hù)體驗(yàn)較差。因此需要開(kāi)發(fā)一個(gè)問(wèn)題定位平臺(tái),聚合一些設(shè)備日志和監(jiān)控?cái)?shù)據(jù)進(jìn)行分析,縮短研發(fā)定位時(shí)間。

模塊涉及到主要概念
?Flow:表示處理問(wèn)題的流程
?Action:表示Flow中需要執(zhí)行的操作,是有序的,是在程序中封裝好的對(duì)數(shù)據(jù)源的小粒度操作
?Situation:用戶(hù)定義的問(wèn)題場(chǎng)景,用于描述該問(wèn)題場(chǎng)景下日志的分析規(guī)則
situation由用戶(hù)創(chuàng)建,在查詢(xún)時(shí)需要指定該參數(shù),會(huì)根據(jù)situation中的規(guī)則分析出請(qǐng)求日志之間的順序。
平臺(tái)演示

后記
這三大運(yùn)維平臺(tái)用的都是開(kāi)源系統(tǒng),總共有12個(gè)系統(tǒng),Sonar、Jenkins、Ranche、Consul、ELK、Admin-Service、Zabbix、Prometheus、Smokeping、Grafana、Skywalking、Jumpserver。后續(xù)會(huì)基于Jenkins開(kāi)發(fā)一個(gè)Devops集成平臺(tái),將這些系統(tǒng)進(jìn)行整合,以便更好地支持前端業(yè)務(wù)交付。