事件回顧
一個(gè)gitlab公司的同學(xué)愿卸, 為線上的數(shù)據(jù)庫進(jìn)行負(fù)載均衡的操作。 碰巧這個(gè)時(shí)候截型,被OODS工具趴荸,導(dǎo)致數(shù)據(jù)庫各種數(shù)據(jù)飆高。由于這個(gè)異常的攻擊導(dǎo)致某個(gè)備用的數(shù)據(jù)庫落后于主庫4GB宦焦。 在嘗試了多個(gè)方法無效之后赊舶,原來希望啟動(dòng)一個(gè)新的實(shí)例,結(jié)果錯(cuò)誤的刪除了整個(gè)實(shí)例赶诊。最后通過手動(dòng)復(fù)制代碼笼平,花了6個(gè)小時(shí),將所有被刪除的數(shù)據(jù)復(fù)制了回來舔痪。
說人話寓调,就是一個(gè)工程師,由于在一次日常工作中锄码,由于被攻擊和長時(shí)間的加班導(dǎo)致腦子不清楚夺英, 錯(cuò)誤的將一個(gè)備份數(shù)據(jù)文件刪除了。差一點(diǎn)從刪庫到跑路成為現(xiàn)實(shí)滋捶。
注:GitLab 是世界上最著名源碼代管服務(wù)網(wǎng)站
事件問題分析
我覺得這個(gè)事件是一個(gè)小概率的事件湊在一起才能發(fā)生的痛悯。因?yàn)間itlab號(hào)稱有5個(gè)備份機(jī)制,但是在這一次事件中全部失效重窟。但是小概率事件的發(fā)生肯定有原因的载萌。
- 最大的問題是不應(yīng)該讓這種線上的操作存在可以清空這個(gè)數(shù)據(jù)庫的操作。
- 其次是數(shù)據(jù)的回滾和備份需要經(jīng)常測(cè)試驗(yàn)證,而不是留下一堆不可用的腳本和文檔
- 對(duì)于數(shù)據(jù)選型扭仁,應(yīng)該選擇具有良好的運(yùn)維能力的技術(shù)體系垮衷, 從整個(gè)過程看, 很有可能對(duì)于PostgreSQL 的特性熟悉程度不夠乖坠。
公司系統(tǒng)如何更好避免類似問題
多機(jī)房備份
對(duì)于任何一個(gè)分布式的系統(tǒng)來說搀突, 數(shù)據(jù)備份,數(shù)據(jù)可用都是構(gòu)建一個(gè)高可用的系統(tǒng)的基礎(chǔ)熊泵。
- 是需要保證系統(tǒng)服務(wù)的穩(wěn)定性仰迁。
- 是系統(tǒng)的數(shù)據(jù)能夠通過異地備份的方式進(jìn)行存儲(chǔ)。
- 是備份的數(shù)據(jù)同步出問題之后的回補(bǔ)機(jī)制的驗(yàn)證需要經(jīng)過比較嚴(yán)密的測(cè)試顽分,保證線上可用徐许。
減少黑屏操作
很多程序員, 特別是新人程序員怯邪, 會(huì)覺得在黑色的命令行屏幕上敲敲命令行完成操作是一件很酷的行為绊寻。 但是我想說花墩, 這絕對(duì)是電影看多了悬秉。直接使用命令行操作,雖然效率高冰蘑, 但是存在很多不可控的風(fēng)險(xiǎn)和泌。所以現(xiàn)在很多公司都必須有自己的運(yùn)維系統(tǒng),通過點(diǎn)擊系統(tǒng)(白屏)來完成相關(guān)的操作(最少刪除的時(shí)候祠肥, 會(huì)有一個(gè)彈出那個(gè)提示)武氓, 避免了手動(dòng)敲擊命令行(黑屏)之類的相關(guān)操作。
少加點(diǎn)班仇箱,減少疲勞駕駛
據(jù)不完全統(tǒng)計(jì)县恕, 用于疲勞駕駛導(dǎo)致的事故排名很高。同理剂桥,由于批勞操作忠烛, 肯定會(huì)存在很多的誤操作,因?yàn)槁?lián)系工作了十多個(gè)小時(shí)之后权逗, 很有可能頭腦不清晰美尸,隨便l亂操作就出錯(cuò)了。 更合理的是斟薇, 對(duì)于運(yùn)維同學(xué)能夠通過倒班的形式而不是持續(xù)加班的形式师坎, 可以解決不少的問題。
個(gè)人數(shù)據(jù)備份
- 對(duì)于個(gè)人來說堪滨, 所有的重要的文件胯陋, 無論是代碼還是數(shù)據(jù)問題,照片都是需要進(jìn)行定時(shí)的備份, 養(yǎng)成數(shù)據(jù)備份的習(xí)慣惶岭,例如使用iCloud進(jìn)行自動(dòng)備份可能更好寿弱。
- 所有的云端存儲(chǔ)最好是進(jìn)行多公司存儲(chǔ), 因?yàn)楝F(xiàn)在無論騰訊還是百度按灶, 各個(gè)大公司都提供了云存儲(chǔ)的服務(wù)症革,將數(shù)據(jù)保存在不同公司的服務(wù)器上,可以極大提高數(shù)據(jù)的安全性鸯旁,畢竟幾個(gè)大公司一起出問題的概率很小
- 如果個(gè)人是一個(gè)標(biāo)準(zhǔn)的技術(shù)宅噪矛, 可能考慮自己搭建一套NAS,為自己量身訂造一套家庭數(shù)據(jù)中西铺罢, 也是一個(gè)很贊的選擇纵潦。
結(jié)語
小心使得萬年船,對(duì)于任何的線上系統(tǒng)都要保持足夠的敬畏蜈缤, 避免用戶出現(xiàn)各種意外柏腻, 是一個(gè)工程師的基本素質(zhì)。 同時(shí)持續(xù)使用系統(tǒng)和產(chǎn)品而非人肉的操作來代替運(yùn)維的工作泉瞻,可以少點(diǎn)背鍋的人脉漏。
版權(quán)申明 本文為林炎小寶原創(chuàng),轉(zhuǎn)載請(qǐng)聯(lián)系