B站崩了上熱搜,說好的高可用呢?
圖片來自包圖網(wǎng)
崩了!勞累了一天的年輕人們,正準(zhǔn)備躺平拿出手機(jī),打開那熟悉的小破站 App,一鍵三連自己最喜愛的 up 主的最新視頻。突然發(fā)現(xiàn):
瞬間,“B 站崩了”的消息登上熱搜,微博運(yùn)維心頭一緊。
部分網(wǎng)友表示:A 站、豆瓣等網(wǎng)站也出現(xiàn)訪問故障,重連 Wi-Fi 也沒有用。
今日凌晨,B 站發(fā)布公告稱,昨晚,B 站的部分服務(wù)器機(jī)房發(fā)生故障,造成無法訪問。技術(shù)團(tuán)隊(duì)隨即進(jìn)行了問題排查和修復(fù),現(xiàn)在服務(wù)已經(jīng)陸續(xù)恢復(fù)正常。
“小破站”發(fā)生什么事了?
這份模棱兩可的聲明顯然無法阻擋住吃瓜群眾的熱情。
短短幾分鐘,關(guān)于 B 站的各種揣測消息就變成了百家講壇:
有火災(zāi)說、刪庫跑路說、刑事案件說、服務(wù)器供應(yīng)商說、黑客攻擊說、大樓坍塌說、外星人說……
還有人煞有介事地 Po 出了 B 站運(yùn)營小妹的朋友圈,說 B 站停電了……
隨后立刻有專業(yè)人士指出:B 站作為一個上市的互聯(lián)網(wǎng)公司,服務(wù)器多地備份是最最起碼的事,樓里停電這個解釋,估計(jì)只能騙騙沒有學(xué)過數(shù)據(jù)庫的高中生。
至于 A 站和晉江文學(xué)網(wǎng)為什么會掛,很可能是因?yàn)?B 站掛了,大批用戶無片可看,就涌入 A 站和豆瓣,造成網(wǎng)站的流量激增,哪怕 A 站和 B 站不共用云服務(wù),也可能被壓垮。
B 站 7000 多萬日活網(wǎng)友的威力可見一斑。
下面我們看看幾個相對靠譜的猜測:
①知乎作者 @黃玨珅 盲猜了一下,應(yīng)該是 etcd 掛了。
通常來說,能造成幾乎所有請求都 502 的,要不就是前端和后端之間的網(wǎng)絡(luò)通路全掛了,要不就是后端的服務(wù)全都掛了。
那么現(xiàn)在的大型互聯(lián)網(wǎng)公司的基礎(chǔ)設(shè)施是怎樣的呢,大多數(shù)使用了 Kubernetes,實(shí)現(xiàn)全國各地的數(shù)據(jù)中心的容器編排、網(wǎng)絡(luò)虛擬化等。
而 Kubernetes 的設(shè)計(jì)上,網(wǎng)絡(luò)插件和 pod 編排又是相對獨(dú)立的。
如果只是網(wǎng)絡(luò)插件出問題了,那么部分服務(wù)器上的網(wǎng)絡(luò)插件的緩存還在,一定有部分用戶還能正常使用。
現(xiàn)在所有的都掛了,那只能是 etcd 掛掉,導(dǎo)致反向代理無法通過 etcd 找到對應(yīng)的 pod 的虛擬 ip,又無法通過網(wǎng)絡(luò)插件與對應(yīng)的 pod 通信。
②知乎作者 @k8seasy 則認(rèn)為這個基本屬于站點(diǎn)本身故障。從恢復(fù)時間看 30 分鐘左右,并且?guī)缀?100% 恢復(fù),說明應(yīng)該是某個核心組件崩潰了,導(dǎo)致核心服務(wù)不可用。
出現(xiàn)這種可能的不少,最有可能的原因是上線新版本,開始沒問題,升級了部分集群,結(jié)果新版本有 Bug,到了某個時刻直接掛了,老版本的壓力一大也沒扛住。然后緊急定位,回滾解決。
也有網(wǎng)友提出,此次事件與云服務(wù)商離不開干系:
云服務(wù)提供商提供的 CDN 出現(xiàn)意外之后,大量請求繞過 CDN 直接打到網(wǎng)關(guān),網(wǎng)關(guān)收到大量請求,自動啟動了容災(zāi)策略。
容災(zāi)策略啟動服務(wù)降級。服務(wù)降級了但沒完全降,CDN 掛了,網(wǎng)關(guān)也跟著掛了,服務(wù)雪崩,一直崩到整個環(huán)境。
盤點(diǎn)史上嚴(yán)重的服務(wù)宕機(jī)事件:最高損失上億美元
在互聯(lián)網(wǎng)歷史上,“小破站”這樣的宕機(jī)事件只能算是“灑灑水”,不信?我們來看看其他互聯(lián)網(wǎng)大咖們是如何玩轉(zhuǎn)宕機(jī)的。
7 小時不能上微信:2013 年 7 月 22 日,微信服務(wù)宕機(jī),造成了將近 7 個小時的網(wǎng)絡(luò)中斷。據(jù)微信官方公布信息,由于上海一支施工隊(duì)挖斷了通信光纜,導(dǎo)致騰訊華東數(shù)據(jù)處理中心的業(yè)務(wù)請求紛紛轉(zhuǎn)向華南和華北,進(jìn)而導(dǎo)致了業(yè)務(wù)的全面癱瘓。
用支付寶“剁手”失?。?015 年 5 月 27 日下午,部分用戶反映其支付寶出現(xiàn)網(wǎng)絡(luò)故障,賬號無法登錄或支付。支付寶官方表示,故障是由于杭州市蕭山區(qū)某地光纖被挖斷導(dǎo)致,該事件造成部分用戶無法使用支付寶。隨后支付寶工程師緊急將用戶請求切換至其他機(jī)房,受影響的用戶開始逐步恢復(fù)。到了晚上 7 點(diǎn) 20 分,支付寶方面宣布用戶服務(wù)已經(jīng)完全恢復(fù)正常。
而在國外,網(wǎng)絡(luò)宕機(jī)的事件更是屢見不鮮。
亞馬遜云服務(wù)罷工:2015 年 9 月,亞馬遜的云服務(wù)器因收到來自新上線的 DynamoDB 功能帶來的大量數(shù)據(jù)請求,導(dǎo)致其因過載而宕機(jī)。于是,包括 Reddit、Tinder、Netflix 和 IMDB 在內(nèi)的眾多流行應(yīng)用和網(wǎng)址直接罷工了數(shù)小時。
除了 Netflix,絕大多數(shù)亞馬遜云服務(wù)的客戶在此次“突擊檢查”中,都被發(fā)現(xiàn)毫無準(zhǔn)備。而 Netflix 此前已經(jīng)使用過一種名為“混沌工程”的技術(shù)來模擬類似服務(wù)中斷事件的發(fā)生,使得這起事故對其影響降到了最小。
納斯達(dá)克停擺:2013 年 8 月 22 日,由于納斯達(dá)克交易所的備用服務(wù)器中出現(xiàn)了一個嚴(yán)重的 Bug,直接導(dǎo)致納斯達(dá)克停擺了 3 個多小時。當(dāng)其恢復(fù)運(yùn)作時,已經(jīng)引起了市場恐慌,大量交易員涌向交易窗口,出售交易所運(yùn)營商納斯達(dá)克 OMX 集團(tuán)的股票,導(dǎo)致 OMX 集團(tuán)的股價當(dāng)日一度大跌逾 5%。
事后有人評估,由于納斯達(dá)克停擺造成的經(jīng)濟(jì)損失可能達(dá)數(shù)億美元。
全美大宕機(jī):2016 年 10 月 21 日早晨,許多美國用戶突然發(fā)現(xiàn)包括 Twitter、CNN、Spotify 等大型網(wǎng)站均無法登陸。這場網(wǎng)絡(luò)癱瘓從美國東部開始,一路蔓延至全美區(qū)域。事后發(fā)現(xiàn)查明,原因是服務(wù)器遭受了黑客的 DDoS 攻擊。
關(guān)于 B 站宕機(jī)事故,開源基礎(chǔ)軟件公司 Zilliz 的質(zhì)量保障團(tuán)隊(duì)負(fù)責(zé)人喬燕良做了較為專業(yè)客觀的分析:
現(xiàn)在的網(wǎng)站故障造成的原因主要可分為軟件服務(wù)引起的故障和硬件服務(wù)引起的故障。
軟件服務(wù)故障一般可理解為代碼邏輯缺陷,常見的是新增或更新某個功能而引入缺陷導(dǎo)致整個服務(wù)中斷,硬件服務(wù)故障一般是由于某些服務(wù)設(shè)備的損壞造成的服務(wù)中斷,比如光纖被挖斷了。
如果要降低宕機(jī)風(fēng)險,就需要提高服務(wù)的高可用性。首先從架構(gòu)上,建議采用云原生架構(gòu),實(shí)現(xiàn)自動容錯機(jī)制和故障隔離,從而能夠在服務(wù)出現(xiàn)故障時快速遷移或回滾。
其次為防止硬件故障類風(fēng)險,需要有完善的災(zāi)備方案,同城雙活或異地災(zāi)備目前都已經(jīng)有比較成熟的方案,國內(nèi)企業(yè)在這塊投入相對比較“節(jié)約”。
關(guān)于 B 站的高可用架構(gòu)可查看文章:《月均活躍用戶達(dá)1.3億,B站高可用架構(gòu)實(shí)踐》
Bilibili,下次一定!
來源:轉(zhuǎn)載自公眾號新智元(ID:AI_era)
參考資料:http://www.zhihu.com/question/472065470