昨天有道云筆記的服務(wù)當(dāng)機(jī)酒甸,官網(wǎng)以及服務(wù)都不能使用浮声,我幸災(zāi)樂禍的發(fā)了一個(gè)朋友圈虚婿,強(qiáng)調(diào)了一下容災(zāi)的必要性,還調(diào)侃性的說不要省那點(diǎn)備份和容災(zāi)的錢泳挥,其實(shí)公司容災(zāi)和備份方案都是我定的然痊,老板哪知道該做些什么才能讓產(chǎn)品穩(wěn)定。
最近我們一直在切換服務(wù)器屉符,在切換負(fù)載均衡剧浸,在切換域名以及存儲(chǔ),最后也就是在今天矗钟,我把發(fā)布腳本也切換了唆香。發(fā)布內(nèi)容出錯(cuò)導(dǎo)致了公司服務(wù)短時(shí)無法使用(10分鐘內(nèi),我的感覺是斷了這么久)吨艇,斷當(dāng)時(shí)還是有點(diǎn)慌的躬它,還要決策是恢復(fù)還是繼續(xù)發(fā)布,后來相信自己的腳本东涡,還是繼續(xù)找報(bào)錯(cuò)冯吓,修了下去,還好結(jié)果還可以疮跑,影響不是很大组贺。
起因
之前服務(wù)比較少,采用的是單機(jī)發(fā)布祖娘,也就是先登錄到服務(wù)器失尖,再執(zhí)行部署腳本進(jìn)行發(fā)布,有多少服務(wù)就要登錄多少機(jī)器,一是慢雹仿,一是怕執(zhí)行錯(cuò)順序增热,好處就是心里不慌,掛掉就掛掉胧辽,有負(fù)載均衡撐著呢
這次服遷移峻仇,我們把原來的單服務(wù)進(jìn)行了切分,要維護(hù)的服務(wù)器更多邑商,服務(wù)也更多摄咆,所以也就打起了發(fā)布全自動(dòng)化的主意。
過程
其實(shí)之前寫的腳本主流程還是可以用的人断,只是缺少很多檢測(cè)吭从,比如tomcat殺不掉怎么辦,啟動(dòng)后有沒有啟動(dòng)起來恶迈,添加了相關(guān)的檢測(cè)后涩金,我找了個(gè)我負(fù)責(zé)的另一個(gè)產(chǎn)品上做測(cè)試,經(jīng)過一下午的時(shí)間總算是可以完美運(yùn)行了暇仲。
今天就開始搞主服務(wù)步做,照著昨天的腳本改,為服務(wù)器做定制奈附,寫好后全度,認(rèn)認(rèn)真真檢查了半個(gè)多小時(shí)。覺得沒問題后發(fā)布斥滤,一點(diǎn)将鸵,刷刷的日志滾滾而來,看到了報(bào)錯(cuò)佑颇,可惜無法中止顶掉,等都執(zhí)行結(jié)束,產(chǎn)品就不能訪問了漩符。
這時(shí)心里還是有些慌的一喘,回滾驱还?還是繼續(xù)發(fā)嗜暴?經(jīng)過一番思想斗爭(zhēng),決定還是繼續(xù)發(fā)下去议蟆,回滾也不是那么容易的闷沥,也要很多步驟的。這時(shí)客服就開始叫了咐容,然后是公司其他部門的舆逃,產(chǎn)品經(jīng)理就開始找我,群里各種消息接踵而至。沒辦法路狮,我也急呀虫啥,拉到個(gè)產(chǎn)品經(jīng)理,讓他替我回復(fù)奄妨。我就靜下心找到錯(cuò)誤涂籽,修正,多機(jī)執(zhí)行砸抛,經(jīng)過一番折騰總算是恢復(fù)了评雌。
總結(jié)
1. 經(jīng)過這次事故,我覺得最好的方案是將發(fā)布由一次變?yōu)閮纱紊踔粮啻沃北海瑢⒎?wù)器劃分為一些子網(wǎng)景东,每次都是先在一個(gè)子網(wǎng)中進(jìn)行發(fā)布,無問題后再再其他子網(wǎng)中發(fā)布奔誓,如果出現(xiàn)問題斤吐,就將子網(wǎng)切斷隔離,進(jìn)行修復(fù)厨喂。
2. 腳本也應(yīng)該具有遇錯(cuò)自動(dòng)回滾功能曲初,不過實(shí)際情況下報(bào)錯(cuò)種類很多,也有一些是無害的杯聚,這種只能解決一小部分問題臼婆。
3. 能備份還是多備份吧
4. 腳本還是要多進(jìn)行實(shí)際測(cè)試,別太自信幌绍,現(xiàn)在年紀(jì)大了颁褂,眼睛跟不上了,只能在思路上提意見傀广。本以為是復(fù)制好的腳本颁独,只改一些參數(shù)不會(huì)有問題,改好后伪冰,還認(rèn)真看了半個(gè)小時(shí)都沒看出錯(cuò)誤
5. 這種事情最好不要讓負(fù)責(zé)人去做誓酒,如果我當(dāng)時(shí)交給運(yùn)維同學(xué)去做,我去檢查贮聂,可能也不會(huì)出現(xiàn)腳本錯(cuò)誤靠柑。負(fù)責(zé)人會(huì)有時(shí)會(huì)逾越一些必要流程以及些許的盲目自信。