丑話說前頭
先跟研發(fā)leader溝通埂伦,灌輸運(yùn)維理念,丑話說在前頭思恐,我們不做保姆式運(yùn)維沾谜,我們會致力于線上服務(wù)安全、穩(wěn)定胀莹、低成本基跑、快速迭代,從運(yùn)維視角提高產(chǎn)品力描焰。開發(fā)機(jī)涩僻、測試環(huán)境,研發(fā)自己搞,我們可以協(xié)助幫忙逆日,做專業(yè)的咨詢服務(wù)嵌巷,想讓我們直接操刀開發(fā)環(huán)境的變更,免談室抽!
業(yè)務(wù)概要了解
了解業(yè)務(wù)相關(guān)的人搪哪,對應(yīng)的研發(fā)同學(xué)、研發(fā)leader坪圾、測試同學(xué)晓折、測試leader、產(chǎn)品經(jīng)理分別是誰兽泄,聯(lián)系方式存下來漓概,拉個(gè)群,出了問題可以找到對應(yīng)的人病梢。
了解服務(wù)是干啥的胃珍,解決了什么問題,業(yè)界有對標(biāo)的開源產(chǎn)品嗎蜓陌,方便我們快速認(rèn)識這個(gè)產(chǎn)品觅彰。
了解服務(wù)的上下游,依賴哪些服務(wù)钮热,哪些服務(wù)依賴我填抬,對應(yīng)的接口人是誰,這里先簡單了解一下即可隧期。
了解服務(wù)部署情況飒责,部署在哪些機(jī)房,用什么語言編寫的仆潮,基礎(chǔ)網(wǎng)絡(luò)宏蛉、專線帶寬、機(jī)房出口是否靠譜鸵闪,是否曾因基礎(chǔ)設(shè)施導(dǎo)致過問題,當(dāng)前主要痛點(diǎn)是什么暑诸。
業(yè)務(wù)串講
要求研發(fā)同學(xué)(或者上一任運(yùn)維同學(xué))準(zhǔn)備PPT蚌讼,做一個(gè)業(yè)務(wù)串講,講解一些研發(fā)同學(xué)希望傳達(dá)給運(yùn)維同學(xué)的信息个榕,講解一些運(yùn)維同學(xué)希望從研發(fā)這得到的信息篡石。比如:詳細(xì)部署拓?fù)洹⒎?wù)整體架構(gòu)西采、數(shù)據(jù)流凰萨、提測變更流程、監(jiān)控方式、部署到了哪些機(jī)器胖眷、機(jī)器登錄方式武通、每個(gè)機(jī)器上是什么模塊、OS參數(shù)是否有調(diào)優(yōu)珊搀,考量是什么冶忱、用到了哪些第三方軟件,考量是什么境析,比如為啥用了tomcat而不是resin囚枪、相關(guān)wiki、故障處理預(yù)案劳淆、常見故障链沼、當(dāng)前線上問題……等等
如果業(yè)務(wù)有單點(diǎn),不接沛鸵,讓研發(fā)改造括勺。如果運(yùn)維的老板的老板強(qiáng)制要求,丑話說前頭:因單點(diǎn)導(dǎo)致的問題谒臼,運(yùn)維不背鍋朝刊。
資產(chǎn)梳理
正式準(zhǔn)備接手,第一步蜈缤,梳理資產(chǎn)拾氓。比如用到了哪些域名,這些域名對應(yīng)哪些業(yè)務(wù)底哥、哪些虛IP咙鞍,分別是提供了什么服務(wù)、哪些機(jī)器趾徽,分別部署了什么模塊续滋、業(yè)務(wù)在哪些機(jī)房、用了多少帶寬孵奶、總帶寬情況疲酌、是否有其他業(yè)務(wù)共用爭搶。
機(jī)器需要拿到更詳盡的信息了袁,比如機(jī)器配置朗恳、機(jī)架位、IP载绿、管理卡IP等等粥诫,公司應(yīng)該有個(gè)CMDB供查詢。如果沒有崭庸,運(yùn)維同學(xué)怀浆,需要你去構(gòu)建這個(gè)CMDB谊囚。
后面要考慮機(jī)器是否需要有備機(jī)、備件执赡,機(jī)型是否可以統(tǒng)一镰踏。
基礎(chǔ)監(jiān)控
知道有哪些資產(chǎn)了,就可以對這些資產(chǎn)做監(jiān)控了搀玖,比如域名連通性監(jiān)控/延遲監(jiān)控余境、虛IP的連通性監(jiān)控/延遲監(jiān)控、機(jī)器宕機(jī)監(jiān)控灌诅、機(jī)器硬件監(jiān)控芳来、sshd/crond等系統(tǒng)進(jìn)程監(jiān)控、系統(tǒng)運(yùn)行的進(jìn)程總數(shù)監(jiān)控猜拾、系統(tǒng)參數(shù)配置監(jiān)控即舌,可以參看我之前的文章《完備的監(jiān)控應(yīng)覆蓋什么》
服務(wù)梳理
吃透之前串講時(shí)給的架構(gòu)圖、數(shù)據(jù)流圖挎袜、部署拓?fù)鋱D顽聂。從運(yùn)維層面,最好還要知道公司網(wǎng)絡(luò)拓?fù)鋱D盯仪。
了解每個(gè)模塊的情況紊搪,部署在哪些機(jī)器上,部署在哪個(gè)目錄全景,用什么賬號啟動的耀石,日志打到哪里了,用什么語言編寫的爸黄,怎么上線的滞伟,主要吃CPU資源還是內(nèi)存還是磁盤還是IO,需要預(yù)留多少資源炕贵,平時(shí)利用率是多少梆奈,應(yīng)該配置多大的閾值做監(jiān)控,是否需要watchdog自動拉起称开,日志里出現(xiàn)哪些關(guān)鍵字需要報(bào)警亩钟,以及其他各種需要注意的問題。
業(yè)務(wù)監(jiān)控
基本的進(jìn)程鳖轰、端口存活性監(jiān)控清酥,機(jī)器利用率監(jiān)控、日志關(guān)鍵字監(jiān)控脆霎、日志不滾動監(jiān)控总处、關(guān)聯(lián)的服務(wù)的監(jiān)控等等狈惫,后面會做API粒度的監(jiān)控睛蛛,來推動業(yè)務(wù)優(yōu)化鹦马。
標(biāo)準(zhǔn)化改造
機(jī)器命名方式、操作系統(tǒng)發(fā)行版忆肾、OS版本荸频、第三方軟件,比如jdk客冈、tomcat旭从、nginx,都要統(tǒng)一场仲,做標(biāo)準(zhǔn)化方案和悦。
服務(wù)擴(kuò)容、變更渠缕、下線做一鍵化鸽素,每次升級只需要給個(gè)版本號即可,此時(shí)研發(fā)操作還是運(yùn)維操作效果一樣亦鳞,故而可以交給研發(fā)上線馍忽,釋放運(yùn)維人力,權(quán)限要控制好燕差。
重復(fù)的常規(guī)操作也要固化成腳本遭笋,一鍵完成。
梳理故障自愈場景徒探,看平時(shí)有哪些故障的處理方式是固定的瓦呼,抽象為腳本,報(bào)警之后自動觸發(fā)刹帕,無人值守處理吵血。
公司如果有一些基礎(chǔ)設(shè)施,比如名字服務(wù)偷溺、MQ蹋辅、日志平臺,推動研發(fā)改造挫掏,將新服務(wù)接入侦另。如果公司還沒有這些基礎(chǔ)設(shè)施,作為運(yùn)維這個(gè)角色尉共,可以著手搞起褒傅。
SOP梳理
故障預(yù)案是一個(gè)非常重要的事情,線上沒出故障之前袄友,就應(yīng)該提前去想殿托,服務(wù)可能會出什么故障,如果真出了剧蚣,應(yīng)該如何處理支竹,把處理步驟提前記錄下來旋廷。畢竟,線上出故障的時(shí)候礼搁,人都比較緊張饶碘,直接看著預(yù)案處理,就踏實(shí)不少馒吴,不容易出錯(cuò)扎运。
故障演練
光有預(yù)案沒有演練,是不靠譜的饮戳,沒有經(jīng)過驗(yàn)證的預(yù)案是不可信任的豪治。所以,搞個(gè)放火演習(xí)扯罐,把模塊搞掛試一把鬼吵,把機(jī)器搞掛試一把,對線上穩(wěn)定性絕對會有提升篮赢。
特別是研發(fā)說這個(gè)模塊掛掉齿椅,可用性肯定沒影響,OK启泣,搞掛試試先涣脚。很可能會打他臉,-_-||
有些場景演練是會有損的寥茫。這種場景還要不要演練遣蚀?這個(gè)需要case by case的看,大部分情況都是要做演練會更好纱耻,畢竟芭梯,人在這盯著的時(shí)候出問題,比晚上睡著了出了問題要強(qiáng)太多弄喘。當(dāng)然玖喘, 大規(guī)模基礎(chǔ)網(wǎng)絡(luò)故障這種演練蘑志,還是算了吧累奈,通常的業(yè)務(wù)都是不具備機(jī)房級容災(zāi)的,呵呵
上面做完了急但,基本工作就完成了澎媒。上面很多事情都是一次性的,那未來的大把時(shí)間運(yùn)維做啥波桩?
除了再花費(fèi)部分時(shí)間做線上問題處理戒努,我們應(yīng)該把主要精力來提升業(yè)務(wù)產(chǎn)品力。做精細(xì)化運(yùn)維镐躲,還記得運(yùn)維九字真言么储玫?“安全穩(wěn)定高效低成本”冬三,這就是我們的工作方向。下面舉幾個(gè)例子缘缚。
再談業(yè)務(wù)監(jiān)控
上面談到過一次業(yè)務(wù)監(jiān)控,主要是一些通用的監(jiān)控指標(biāo)敌蚜。我們對產(chǎn)品了解足夠之后桥滨,應(yīng)該做一些業(yè)務(wù)特有的監(jiān)控,推動研發(fā)去做也可以弛车,達(dá)到效果就好齐媒。
比如你運(yùn)維了一個(gè)MQ,消息堆積量是需要監(jiān)控滴纷跛;比如你運(yùn)維了一個(gè)RPC服務(wù)喻括,提供了三個(gè)接口,這三個(gè)接口的響應(yīng)時(shí)長贫奠、成功率是需要監(jiān)控滴唬血;比如你運(yùn)維了一個(gè)S3服務(wù),每個(gè)桶的短期帶寬增量你是需要監(jiān)控滴唤崭;有那么點(diǎn)感覺了么拷恨? :)
API成功率、延遲統(tǒng)計(jì)
在流量入口的nginx做所有業(yè)務(wù)線的所有API的成功率和延遲統(tǒng)計(jì)谢肾,是非常有必要的腕侄。把成功率比較低的TopN找出來,把延遲比較大的TopN找出來芦疏,讓業(yè)務(wù)去優(yōu)化冕杠。老板會喜歡這個(gè)的。
線上問題梳理
整理線上所有問題酸茴,挨個(gè)解決分预,運(yùn)維可以搞定的運(yùn)維搞定,運(yùn)維搞不定的找研發(fā)要排期薪捍,每周解決了多少問題噪舀,還有多少問題待解決,用周報(bào)的方式體現(xiàn)出來飘诗。
成本優(yōu)化
通過服務(wù)混部与倡、或者統(tǒng)一的資源調(diào)度平臺來節(jié)省機(jī)器資源,一臺機(jī)器便宜的也好幾萬呢昆稿,這個(gè)事是比較容易有產(chǎn)出的纺座。
容量規(guī)劃
容量規(guī)劃和成本優(yōu)化實(shí)際是緊密相關(guān)的,容量規(guī)劃的重點(diǎn)是根據(jù)自然增量和運(yùn)營需求溉潭,提前規(guī)劃準(zhǔn)備相應(yīng)的容量净响,容量可能包括帶寬少欺、專線、網(wǎng)絡(luò)設(shè)備馋贤、機(jī)器等等赞别;當(dāng)業(yè)務(wù)量下來的時(shí)候,可以騰挪相關(guān)資源支持其他業(yè)務(wù)線配乓,讓這些硬件盡量滿負(fù)荷運(yùn)轉(zhuǎn)仿滔,物有所值。
業(yè)務(wù)精細(xì)化運(yùn)維可以想出各種事情來搞犹芹,除了做這事崎页,另一個(gè)需要長期投入的是構(gòu)建運(yùn)維基礎(chǔ)平臺,像什么監(jiān)控系統(tǒng)腰埂、部署系統(tǒng)飒焦、產(chǎn)品庫、資源利用率平臺屿笼、域名管理牺荠、四七層接入配置平臺、日志平臺驴一、Trace系統(tǒng)等等等等志电,嗯,其實(shí)運(yùn)維還是挺忙的蛔趴。
關(guān)于溝通
最后說一點(diǎn)挑辆,接手一個(gè)新業(yè)務(wù)運(yùn)維,勢必與研發(fā)有各種溝通孝情,每次溝通都要寫會議紀(jì)要鱼蝉,發(fā)郵件出來,跟進(jìn)人是誰箫荡,時(shí)間點(diǎn)是啥時(shí)候都要寫明白魁亦,郵件發(fā)送雙方團(tuán)隊(duì)郵件組,cc各方老大羔挡。事后關(guān)鍵節(jié)點(diǎn)做check洁奈,如未完成,線下溝通绞灼,達(dá)成一致后追此郵件給結(jié)論利术,說明延期原因以及新的時(shí)間點(diǎn)。如果溝通不暢低矮,讓老大去協(xié)調(diào)印叁。