這一次,除了罵阿里云,還能做些什么?
很多朋友經(jīng)歷了前幾天阿里云3小時(shí)左右的故障,我司的業(yè)務(wù)也受到了一定影響,技術(shù)的同事一起熬夜奮戰(zhàn),最終觀察服務(wù)穩(wěn)定運(yùn)行了兩個(gè)多小時(shí)。
一次事故如一場(chǎng)戰(zhàn)役,不管是在故障過(guò)程中的處理,還是故障后的總結(jié),除了罵阿里云,我們自己有沒(méi)有可以改進(jìn)的空間呢?結(jié)合我司昨夜的處理過(guò)程,說(shuō)一下自己的一點(diǎn)想法。
畫外音:技術(shù)人,還是聊技術(shù),決定不了別人,我們做好自己。
一
凌晨,收到運(yùn)維負(fù)責(zé)人的電話,阿里云部分機(jī)房故障,并從阿里云同事收到反饋,問(wèn)題仍在定位,恢復(fù)時(shí)間不確認(rèn)。
畫外音:關(guān)鍵時(shí)刻,手機(jī)欠費(fèi)了,運(yùn)維負(fù)責(zé)人還幫我充了200話費(fèi),才打通,真曲折。
整個(gè)過(guò)程中,我們能做什么呢?
- 及時(shí)反饋業(yè)務(wù)方:例如客服,運(yùn)營(yíng)等,如果收到用戶反饋,能夠及時(shí)說(shuō)明情況;
- 確定影響范圍:因?yàn)椴皇撬蟹?wù)器都受影響,確定范圍后好針對(duì)性檢查;
這里面,潛在的技術(shù)問(wèn)題是:
- 運(yùn)維立刻收到服務(wù)器告警了么,研發(fā)與測(cè)試立刻收到站點(diǎn)與服務(wù)告警了么?為什么沒(méi)有收到,是沒(méi)有告警,還是告警覆蓋缺失?
畫外音:如果讓業(yè)務(wù)方先發(fā)現(xiàn)問(wèn)題,反問(wèn)技術(shù)部,服務(wù)怎么出問(wèn)題了,是何等尷尬?
- 能夠快速確定受影響的服務(wù)器IP么?以及受影響的業(yè)務(wù)范圍么?
我們的運(yùn)維同學(xué)立刻通過(guò)腳本,確定了大概有50來(lái)臺(tái)服務(wù)器受影響。
DBA同學(xué)也立刻確認(rèn)了,RDS數(shù)據(jù)庫(kù)服務(wù)沒(méi)有受到影響。
畫外音:
- 未來(lái)要自動(dòng)化,可視化;
- 除了能從前端發(fā)現(xiàn)A、B、C功能不可用,能從后端精準(zhǔn)確定哪些服務(wù),多大比例的流量受影響么?
潛在的非技術(shù)問(wèn)題:
- 技術(shù)團(tuán)隊(duì)和業(yè)務(wù)方建立了反饋渠道么,溝通是否順暢?
- 有沒(méi)有“線上服務(wù)第一”的意識(shí),有沒(méi)有“系統(tǒng)值班”的制度,還是說(shuō),關(guān)著手機(jī)睡覺(jué)?
畫外音:
- 昨晚絕大多數(shù)二級(jí),三級(jí)部門負(fù)責(zé)人都立即投入戰(zhàn)斗,很贊;
- 技術(shù)人,關(guān)著手機(jī)睡覺(jué),是不可接受的。
二
過(guò)了一個(gè)多小時(shí)了,阿里云仍未反饋修復(fù)時(shí)間,這個(gè)時(shí)間大家都有點(diǎn)著急了,那除了干等著,我們自己能做些什么呢?
因?yàn)橹挥胁糠謪^(qū)域的服務(wù)器異常,能不能申請(qǐng)一些新的服務(wù)器,將受影響服務(wù)器上的站點(diǎn)與服務(wù)重新部署,通過(guò)服務(wù)治理將流量切到新的服務(wù)上,是不是能恢復(fù)(至少部分恢復(fù))呢?
整個(gè)過(guò)程中,我們能做的是:
- 申請(qǐng)新服務(wù)器;
- 確認(rèn)受影響的站點(diǎn)與服務(wù)、重新部署;
- 服務(wù)治理,將流量遷移;
這里面,潛在的技術(shù)問(wèn)題是:
(1) 能不能快速進(jìn)行服務(wù)器擴(kuò)容;
畫外音:昨晚我們迅猛購(gòu)買了50臺(tái)ECS,這是云的好處。
(2) 知道了受影響的服務(wù)器IP,如何能夠快速確定這些IP上部署了哪些站點(diǎn)與服務(wù)?這些站點(diǎn)與服務(wù)的上下游是什么,連帶影響范圍是什么?
畫外音:這是有待提高的地方,每個(gè)負(fù)責(zé)人都知道自己的IP上部署了什么,但并不可視化。
(3) 如何快速站點(diǎn)與服務(wù)擴(kuò)容與縮容,如何服務(wù)發(fā)現(xiàn),如何遷移流量?
畫外音:服務(wù)治理,任重道遠(yuǎn)。
三
又過(guò)了大概半個(gè)小時(shí),我們購(gòu)買完服務(wù)器,梳理站點(diǎn)與服務(wù)的過(guò)程中,阿里云專家反饋,“問(wèn)題定位有了關(guān)鍵進(jìn)展,不出意外的話30分鐘恢復(fù)”。此時(shí)我們內(nèi)部評(píng)估,30分鐘50臺(tái)ECS的初始化,服務(wù)部署,流量遷移恐怕完不成,還是等阿里云好了。
果真大概半個(gè)小時(shí),阿里云專家反饋恢復(fù)了,這時(shí)我們要做的:
- 確定站點(diǎn)與服務(wù)是否運(yùn)行;
- 確定日志是否異常;
- 確定業(yè)務(wù)在線業(yè)務(wù)是否異常;
- 一些容易遺漏的點(diǎn)的再三檢查:例如MQ的消費(fèi),定時(shí)任務(wù)的執(zhí)行。
畫外音:有些定時(shí)任務(wù)可能需要手動(dòng)再次執(zhí)行。
這里面的很多工作,是通過(guò)手工,還是腳本自動(dòng)化,還是平臺(tái)可視化來(lái)判斷與執(zhí)行?技術(shù)平臺(tái)的迭代,仍重而道遠(yuǎn)。
四
服務(wù)觀察穩(wěn)定后一段時(shí)機(jī)。朋友圈、微博上開(kāi)始對(duì)阿里云進(jìn)行聲討,都在提自己的優(yōu)化方案:
1. 是時(shí)候換一個(gè)云了;
換一個(gè)云能解決問(wèn)題么?用其他云的朋友,可以評(píng)論反饋下故障頻率。
我相信,各家有各家的問(wèn)題,我甚至愿意相信,阿里云的故障率是相對(duì)較低的。
2. 是時(shí)候自建機(jī)房了;
自建機(jī)房能解決問(wèn)題么?自建機(jī)房的朋友,可以評(píng)論反饋下故障頻率。
說(shuō)實(shí)話,讓我自建機(jī)房,我目前真沒(méi)有信心做得比阿里云更好。
3. 是時(shí)候多機(jī)房多活了;
“多機(jī)房多活”不是四個(gè)字這么簡(jiǎn)單,需要多大的成本,需要多少技術(shù)基礎(chǔ)服務(wù)支撐,需要多大的架構(gòu)改造,有考慮過(guò)么?
畫外音:58同城15年做機(jī)房遷移時(shí)做過(guò)多機(jī)房多活,我還算有一定發(fā)言權(quán)。
我相信,目前99.9%的公司,目前的業(yè)務(wù)階段,目前的投入產(chǎn)出比,不適合做多機(jī)房多活。
罵阿里云不解決問(wèn)題,這次事故過(guò)程中發(fā)現(xiàn)的自身的問(wèn)題,我們要繼續(xù)去改進(jìn)。
特別是服務(wù)治理體系,可視化監(jiān)控與運(yùn)維體系,任重而道遠(yuǎn)。
不為阿里云洗地,阿里云你影響了我們幾個(gè)小時(shí)業(yè)務(wù)可用性,該陪的要賠,盡量加倍賠,讓我們看到你的誠(chéng)意。
畫外音:誰(shuí)有XX云的接口人聯(lián)系方式,請(qǐng)小窗我一下。
末了,讓我特別感動(dòng)的一點(diǎn),還是一起熬夜奮戰(zhàn)的兄弟姐妹們。早晨,還有部分同學(xué)趕去公司,要把運(yùn)營(yíng)反饋的不一致數(shù)據(jù),進(jìn)行修正。
我相信,因?yàn)橛心銈?,業(yè)務(wù)一定能做成。
我相信,大家的付出老板一定看得到,3/4月份的漲薪一定有你。
【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】