寫在前面的話
如今很多人認(rèn)為devops將徹底取代傳統(tǒng)運(yùn)維放棒,我不這么認(rèn)為,在我看來(lái)devops只是很大程度上的代替了傳統(tǒng)運(yùn)維的手工操作,運(yùn)維人員只需寫好自動(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ā)布抵拘,異嘲チ瘢快速回滾
監(jiān)控告警平臺(tái)
①完善的監(jiān)控體系:覆蓋機(jī)器、網(wǎng)絡(luò)僵蛛、服務(wù)和客戶設(shè)備維度
②快速的異常發(fā)現(xiàn)和告警
③靈活的告警通知方式:LCP尚蝌、郵件、微信充尉、電話
問(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ù)讀寫性能是遠(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)
背景:線上用戶反饋設(shè)備使用異常审丘,研發(fā)或QA介入排查,經(jīng)常出現(xiàn)問(wèn)題定位時(shí)間太長(zhǎng)勾给,問(wèn)題反饋不及時(shí)滩报,客戶體驗(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:用戶定義的問(wèn)題場(chǎng)景侣姆,用于描述該問(wèn)題場(chǎng)景下日志的分析規(guī)則
situation由用戶創(chuàng)建,在查詢時(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ù)交付约巷。