經(jīng)歷災(zāi)難后,微盟放棄自建數(shù)據(jù)庫(kù),賠付商家1.5 億
原創(chuàng)
【51CTO原創(chuàng)稿件】
上周微盟出現(xiàn)了大規(guī)模系統(tǒng)故障,根據(jù)官方通告:微盟研發(fā)中心運(yùn)維部核心運(yùn)維人員賀某,于2月23日晚18點(diǎn)56分通過(guò)個(gè)人VPN登入公司內(nèi)網(wǎng)跳轉(zhuǎn)機(jī),因個(gè)人精神、生活等原因?qū)ξ⒚司€上生產(chǎn)環(huán)境進(jìn)行了惡意的破壞;這是一起運(yùn)維部門(mén)核心員工在生產(chǎn)環(huán)境的“刪庫(kù)”操作引發(fā)的。
本次刪庫(kù)事件引發(fā)了IT技術(shù)圈的廣泛關(guān)注;小編整理了網(wǎng)友們比較好奇的幾個(gè)問(wèn)題:運(yùn)維產(chǎn)生的危害為何這么大?修復(fù)期為何這么久?微盟是否存在管理漏洞?類(lèi)似事件如何預(yù)防?為此,小編對(duì)沃頓在線負(fù)責(zé)人朱磊、阿里云OLAP產(chǎn)品團(tuán)隊(duì)高級(jí)產(chǎn)品專(zhuān)家韓鋒和業(yè)界知名軟件研發(fā)工程效能專(zhuān)家茹炳晟進(jìn)行了專(zhuān)訪,內(nèi)容整理如下。
單個(gè)運(yùn)維人員產(chǎn)生的危害為何這么大?
信息化時(shí)代,沒(méi)有孤立的個(gè)體
信息化時(shí)代,系統(tǒng)集成變得度越來(lái)越高,作為單個(gè)個(gè)體是完全可以摧毀一個(gè)系統(tǒng)的。但是在信息時(shí)代以前,這是難以想象的。人類(lèi)歷史上,一個(gè)個(gè)體決定一個(gè)民族,一個(gè)朝代歷史走向的事情,也不是沒(méi)有發(fā)生過(guò),但必須是那些位高權(quán)重的大人物。此次事件的主角作為公司的核心運(yùn)維人員,顯然在這種事情擁有天然的便利。
云上服務(wù),運(yùn)維權(quán)限過(guò)大
談到運(yùn)維和DevOps,我們會(huì)發(fā)現(xiàn),很多IT運(yùn)維人員的權(quán)限過(guò)大,甚至?xí)蟮娇梢源輾б粋€(gè)系統(tǒng)/產(chǎn)品,這種在一些創(chuàng)業(yè)公司中比較常見(jiàn)。微盟公司現(xiàn)提供的服務(wù)是部署在服務(wù)器上的。為了便于工作,運(yùn)維工程師手里掌握著高權(quán)限的賬號(hào),可以對(duì)服務(wù)器進(jìn)行任何操作。例如,這次刪庫(kù)事件運(yùn)維工程師使用高權(quán)限賬號(hào)把服務(wù)器上的文件刪除,直接導(dǎo)致服務(wù)器崩潰,進(jìn)而造成公司業(yè)務(wù)中斷。
難以避免的人為因素
拋開(kāi)運(yùn)維人員是否會(huì)出于惡意去破壞自己的系統(tǒng),但作為人的操控來(lái)講,忙中出錯(cuò)的概率還是不小的。所以,這個(gè)問(wèn)題帶給我們的啟示是,要充分重視個(gè)人在系統(tǒng)中可能產(chǎn)生的作用,必須對(duì)個(gè)人的行為進(jìn)行嚴(yán)格的監(jiān)管,避免由個(gè)人引發(fā)的系統(tǒng)性故障。
恢復(fù)時(shí)間為何這么長(zhǎng)?
據(jù)介紹,一般來(lái)說(shuō)數(shù)據(jù)備份要對(duì)最近的數(shù)據(jù)至少在30分鐘內(nèi)可以恢復(fù)。既然微盟已經(jīng)在全力搶修,騰訊云也表示在給予技術(shù)協(xié)助,那全面恢復(fù)的時(shí)間為什么還要這么久呢?
影響因素一:災(zāi)備出現(xiàn)問(wèn)題
運(yùn)維人員對(duì)生產(chǎn)服務(wù)器進(jìn)行了文件刪除,并沒(méi)有提到對(duì)備份服務(wù)器進(jìn)行破壞。如果微盟有著高性能災(zāi)備,那么恢復(fù)服務(wù)在技術(shù)層面是沒(méi)有太大難度的。但是根據(jù)目前官方的信息推測(cè),數(shù)據(jù)庫(kù)應(yīng)該是在生產(chǎn)環(huán)境的本地庫(kù)發(fā)生了不可逆的刪除,否則不會(huì)需要這么長(zhǎng)時(shí)間。假定本地生產(chǎn)庫(kù)沒(méi)了,那唯一的方法就是借助遠(yuǎn)程災(zāi)備的全量備份庫(kù)來(lái)恢復(fù),但這也會(huì)引發(fā)出一系列的問(wèn)題,比如遠(yuǎn)程庫(kù)容量大,需要大量的網(wǎng)絡(luò)傳輸時(shí)間。
影響因素二:恢復(fù)流程復(fù)雜
就數(shù)據(jù)恢復(fù)來(lái)講,受到的影響因素較多,這其中包括了應(yīng)急團(tuán)隊(duì)響應(yīng)速度、技術(shù)能力、被刪文件體積、文件被刪后繼續(xù)頻繁讀寫(xiě)硬盤(pán)等等,這些任何一個(gè)出現(xiàn)問(wèn)題都影響恢復(fù)時(shí)間。
影響因素三:恢復(fù)預(yù)案不完備
當(dāng)企業(yè)遭受到如此重大的破壞時(shí),是否有完整的恢復(fù)預(yù)案并真實(shí)演練過(guò),將變得非常重要。如果之前沒(méi)有相關(guān)準(zhǔn)備,很難在出現(xiàn)問(wèn)題時(shí)快速響應(yīng),并將問(wèn)題涉及范圍、恢復(fù)手段、相關(guān)風(fēng)險(xiǎn)、所需資源等一一考慮清楚。倉(cāng)促應(yīng)戰(zhàn)的話,難免顧此失彼,且對(duì)可恢復(fù)的程度、時(shí)間等,也很難預(yù)估。
影響因素四:技術(shù)實(shí)現(xiàn)難度大
不熟悉運(yùn)維的人可能會(huì)覺(jué)得恢復(fù)是比較簡(jiǎn)單:不就是重裝一下系統(tǒng)或者恢復(fù)下數(shù)據(jù)庫(kù)備份嗎,其實(shí)這其中的涉及技術(shù)比我們想的要更復(fù)雜。
1.業(yè)務(wù)架構(gòu)復(fù)雜,現(xiàn)在常用的軟件的架構(gòu)及部署是極其復(fù)雜的,在微服務(wù)大行其道的今天,每個(gè)微服務(wù)本身就是一個(gè)集群,微服務(wù)和微服務(wù)之間還有各種依賴關(guān)系,同時(shí)每個(gè)微服務(wù)都有可能會(huì)和數(shù)據(jù)庫(kù)打交道,光理清楚這些服務(wù)之間的依賴和配置就夠大家受的了。
2.時(shí)間緊,任務(wù)重,此次事件涉及到幾乎是整體架構(gòu)的梳理,難度不亞于從0到1搭建一個(gè)新系統(tǒng),再加上客戶壓力和輿論壓力,難度可想而知。
3.數(shù)據(jù)庫(kù)問(wèn)題,有可能是增量備份的完整性欠缺,此外,還會(huì)出現(xiàn)由于近期的數(shù)據(jù)Scheme變更引發(fā)的備份數(shù)據(jù)兼容性問(wèn)題等。這些都需要研發(fā)人員和運(yùn)維人員的共同推進(jìn),這些都會(huì)導(dǎo)致工作量加大和時(shí)間的推遲。
微盟的問(wèn)題:技術(shù)管理和數(shù)據(jù)災(zāi)備不能忽視
成本是影響公司數(shù)據(jù)管理投入的直接因素
微盟刪庫(kù)事件,暴露了部分互聯(lián)網(wǎng)公司內(nèi)部數(shù)據(jù)管理的混亂。按理像微盟這種體量的公司對(duì)于數(shù)據(jù)安全和保護(hù)的投入和重視程度理應(yīng)是非常大的。但是此次事件背后隱藏的是利益問(wèn)題,對(duì)以微盟為代表的企業(yè)來(lái)說(shuō),數(shù)據(jù)安全和保護(hù)對(duì)于是比較大的成本支出,并不能直接創(chuàng)造營(yíng)收,所以往往有些還在成長(zhǎng)階段的企業(yè)不會(huì)重視投入,很多制度保護(hù)也往往流于表面。對(duì)大公司來(lái)說(shuō),如果忽視數(shù)據(jù)安全會(huì)有可能帶來(lái)更大的損失,所以一般來(lái)講大公司對(duì)數(shù)據(jù)安全對(duì)投入和措施比較規(guī)范,類(lèi)似微盟這樣對(duì)刪庫(kù)問(wèn)題基本不會(huì)出現(xiàn)。
互聯(lián)網(wǎng)公司管理內(nèi)功欠缺
21世紀(jì)是屬于互聯(lián)網(wǎng)等新產(chǎn)業(yè)的時(shí)代,但是管理問(wèn)題一直是新興互聯(lián)網(wǎng)企業(yè)前行的最大阻礙,企業(yè)管理的意義,估計(jì)每個(gè)公司的高管都懂,任何一個(gè)企業(yè)的領(lǐng)導(dǎo)掌舵者都不會(huì)忽略的問(wèn)題,但是能夠真正做到真的很難。
互聯(lián)網(wǎng)發(fā)展迅速的同時(shí)也埋下了隱患,浮躁的行業(yè)使得互聯(lián)網(wǎng)公司高層管理沒(méi)有時(shí)間學(xué)習(xí)管理,沒(méi)有時(shí)間苦煉內(nèi)功,這次微盟事件,給互聯(lián)網(wǎng)公司上了重要的一課,也希望更多公司能吸取教訓(xùn)。
如何避免此類(lèi)事件?
此次事件給微盟和微盟客戶造成了巨額損失,對(duì)于整個(gè)事件背后暴露的管理與技術(shù)漏洞等問(wèn) 題,其他公司甚至整個(gè)行業(yè)需要如何避免類(lèi)似問(wèn)題再次發(fā)生呢?小編總結(jié)了茹炳晟和朱磊的建議,來(lái)從運(yùn)維和公司兩個(gè)角度聊一下。
對(duì)于運(yùn)維技術(shù)人員:
1.避免任何形式的人肉運(yùn)維
如今隨著軟件架構(gòu)復(fù)雜性的不斷提升,從早期的“人肉”運(yùn)維,到現(xiàn)在的DevOps,再到目前初綻頭角的AIOps,運(yùn)維的理念和技術(shù)手段也一直都在不停地演進(jìn)。但這其中人的影響一直存在。
這也是為什么大型企業(yè)都會(huì)建立比較完善的分級(jí)和分層發(fā)布流程,層層監(jiān)管和審批,避免個(gè)人單點(diǎn)故障的無(wú)限放大。當(dāng)然,這些監(jiān)管和審批必須要納入到由技術(shù)驅(qū)動(dòng)的DevOps流水線中來(lái)完成,而不是靠傳統(tǒng)的領(lǐng)導(dǎo)簽字來(lái)完成。
所有對(duì)生產(chǎn)環(huán)境的變更,像系統(tǒng)參數(shù)、安全策略、網(wǎng)絡(luò)配置、應(yīng)用參數(shù)、環(huán)境參數(shù)、文件更新和數(shù)據(jù)庫(kù)更新都應(yīng)該是通過(guò)DevOps的流水線走正式的發(fā)布上線流程,所有的操作必須是由腳本或者自動(dòng)化代碼來(lái)完成,任何個(gè)人都不應(yīng)具有直接在生產(chǎn)環(huán)境上執(zhí)行命令操作的場(chǎng)景。
因此應(yīng)該避免任何形式的人肉運(yùn)維,倡導(dǎo)“人管代碼,代碼管機(jī)器”,而不是“人直接管機(jī)器”。
2.未雨綢繆,做好災(zāi)備演練
一般來(lái)講待辦事項(xiàng)分為兩類(lèi),分別是既重要又緊急的事和非常重要但是不緊急的事,也就是運(yùn)維同學(xué)經(jīng)常面對(duì)的各種救火型任務(wù)(生產(chǎn)環(huán)境Bug fix、Hotfix發(fā)布等)和未雨綢繆型任務(wù)(自動(dòng)化運(yùn)維、監(jiān)控?cái)?shù)據(jù)分析統(tǒng)計(jì)、模型獲取與優(yōu)化等)。
理想情況下,應(yīng)該將更多的時(shí)間放在未雨綢繆型任務(wù)上,而只將少量的時(shí)間放在救火型任務(wù)上。當(dāng)把未雨綢繆型任務(wù)做好了,那么救火的概率就下降了。但是現(xiàn)實(shí)情況正好相反,運(yùn)維同學(xué)天天忙于各種發(fā)布、各種線上救火,根本沒(méi)有精力去償還各個(gè)時(shí)期欠下的技術(shù)債,這種模式就難逃成本中心的宿命。
因此運(yùn)維部門(mén)在平時(shí)定期開(kāi)展一些故障演練的實(shí)踐是很必要的,結(jié)合混沌工程(Chaos Engineering)的思想,來(lái)確保系統(tǒng)的魯棒性和可維護(hù)性,以此來(lái)應(yīng)對(duì)各類(lèi)突如其來(lái)的“黑天鵝”事件。“紙上得來(lái)終覺(jué)淺,絕知此事要躬行”,只有在實(shí)際故障演練的過(guò)程中,我們才有可能得到很多寶貴的一手實(shí)戰(zhàn)經(jīng)驗(yàn),光靠想是不行的。
對(duì)于整個(gè)公司:
1.運(yùn)維是成本中心的謬論
在很多人的眼中,運(yùn)維部門(mén)都被歸在成本中心,簡(jiǎn)單來(lái)講就是花錢(qián)的部門(mén)。運(yùn)維是成本中心的宿命論對(duì)于運(yùn)維的發(fā)展其實(shí)是很不利的,如果運(yùn)維部門(mén)長(zhǎng)期處于機(jī)械性的發(fā)布執(zhí)行和生產(chǎn)環(huán)境救火的狀態(tài),那么就會(huì)陷入無(wú)止境的惡性循環(huán)。
很多時(shí)候,我們總是解決了看得見(jiàn)的問(wèn)題,但是看不見(jiàn)的問(wèn)題往往會(huì)在看不見(jiàn)的地方聚集,這類(lèi)問(wèn)題一旦出現(xiàn)就都是大問(wèn)題。所以我們需要轉(zhuǎn)變運(yùn)維是成本中心的思維定式,讓運(yùn)維的同學(xué)能夠更積極地去思考和解決系統(tǒng)性的問(wèn)題。
2.做好危機(jī)公關(guān)
微盟的這次刪庫(kù)事件,對(duì)很多行業(yè)用戶造成了很大的影響,但是面對(duì)危機(jī),微盟所表現(xiàn)出來(lái)的社會(huì)責(zé)任感是值得我們借鑒和學(xué)習(xí)的。面對(duì)突如其來(lái)的故障,微盟并沒(méi)有試圖掩蓋真相,而是第一時(shí)間在其官網(wǎng)發(fā)表聲明,解釋事情的背后原因,并且明確告知了后階段的恢復(fù)計(jì)劃以及明確的時(shí)間節(jié)點(diǎn)。
多一些真誠(chéng),少一些套路,有問(wèn)題一起扛,是面對(duì)此類(lèi)危機(jī)最好的方法。如果你試圖掩蓋,蓋不住了就撒謊,接著就像張宇唱的那樣“用一個(gè)謊言圓一個(gè)謊言”,必然會(huì)讓自己陷入更深層次的危機(jī)。危機(jī)之下,我們要的是公開(kāi)的信息,這樣才能減少公眾的猜測(cè),抵制黑公關(guān),并獲得大家的理解和支持。
3. 練好“內(nèi)功”
面對(duì)類(lèi)似疫情這類(lèi)突發(fā)事件,首先讓員工知悉真實(shí)情況,并做好必要的宣導(dǎo)工作。從員工角度來(lái)講,一般能夠理解此類(lèi)情況,并愿意付出。其次是要做好工作量評(píng)估及必要的人員安排,包括值班、輪休等。最為重要的一點(diǎn),是負(fù)責(zé)人到崗,與員工一起承擔(dān);一方面便于快速響應(yīng)、快速?zèng)Q策;一方面減少員工壓力,有利于公司業(yè)務(wù)的快速開(kāi)展。
還有對(duì)于管理層來(lái)講,應(yīng)重視技術(shù)工作(包括基礎(chǔ)運(yùn)維)的重要性。從團(tuán)隊(duì)構(gòu)建上予以傾斜,建立起一支有戰(zhàn)斗力的技術(shù)團(tuán)隊(duì)。從人才角度上,在“選育用留”多個(gè)環(huán)節(jié),把握公司價(jià)值觀,將真正認(rèn)同公司價(jià)值、愿意付出的同學(xué)選到、用好;淘汰不合格人員。
最新消息
2020 年 2 月 25 日,微盟發(fā)布公告稱,公司線上生產(chǎn)環(huán)境及數(shù)據(jù)遭到員工惡意破壞,導(dǎo)致公司系統(tǒng)服務(wù)不可用。經(jīng)過(guò)幾天的“搶救”,3 月 1 日,微盟再次發(fā)布公告稱,數(shù)據(jù)已全部找回,將于 3 月 2 日進(jìn)行系統(tǒng)上線演練,于 3 月 3 日上午 9 點(diǎn)恢復(fù)數(shù)據(jù)正式上線,同時(shí)針對(duì)受到影響的商家也給出了賠付計(jì)劃。
賠付計(jì)劃
根據(jù)公開(kāi)資料顯示,微盟目前的渠道代理商超 1600 家,注冊(cè)商戶超 300 萬(wàn)。此次微盟宕機(jī)或?qū)е?300 萬(wàn)商家生意停擺,損失巨大。因此,微盟也公布了商家賠付計(jì)劃,整體準(zhǔn)備了 1.5 億元人民幣賠付撥備金,其中微盟公司承擔(dān) 1 億元,管理層承擔(dān) 5000 萬(wàn)元。
針對(duì)商家因系統(tǒng)不可以而造成的不同損失,微盟也制定了不同的賠付方案:
現(xiàn)金賠付計(jì)劃
針對(duì)因系統(tǒng)不可用而造成利潤(rùn)損失的商戶,微盟將按照商家邊際貢獻(xiàn)利潤(rùn)額進(jìn)行賠付,具體公式計(jì)算如下:邊際貢獻(xiàn)利潤(rùn)額 = 日均收入×行業(yè)平均邊際貢獻(xiàn)利潤(rùn)率×系統(tǒng)故障時(shí)間
流量賠付計(jì)劃
針對(duì)因系統(tǒng)不可用而造成流量損失的商戶,微盟將給予騰訊廣告 50000 曝光次數(shù)的流量補(bǔ)償,并且提供賬戶運(yùn)營(yíng)服務(wù),同時(shí)再延長(zhǎng) SaaS 服務(wù)有效期兩個(gè)月。
放棄自建數(shù)據(jù)庫(kù),基礎(chǔ)設(shè)施全力上云
以上是經(jīng)濟(jì)方面的賠償,在技術(shù)方面,此次核心運(yùn)維對(duì)微盟生產(chǎn)環(huán)境和數(shù)據(jù)造成破壞,使得商家對(duì)微盟系統(tǒng)安全和穩(wěn)定性產(chǎn)生了質(zhì)疑,同時(shí)也給微盟自己敲響了警鐘。
微盟在 3 月 1 日發(fā)布的公告中稱,微盟將會(huì)支持基礎(chǔ)設(shè)施全力上云,逐步放棄自建數(shù)據(jù)庫(kù)服務(wù) ,遷移到騰訊云數(shù)據(jù)庫(kù)(CDB),增加數(shù)據(jù)庫(kù)跨可用區(qū)和異地災(zāi)備的能力,同時(shí)將黑石 1.0 物理機(jī)全面升級(jí)黑石 2.0,全面使用云主機(jī)。
除了之外,微盟還宣布將加強(qiáng)數(shù)據(jù)安全管理機(jī)制和安全災(zāi)備體系建設(shè)。
采訪對(duì)象:
1.茹炳晟:業(yè)界知名實(shí)戰(zhàn)派軟件質(zhì)量和研發(fā)工程效能專(zhuān)家,騰訊云最具價(jià)值專(zhuān)家,中國(guó)商業(yè)聯(lián)合會(huì)互聯(lián)網(wǎng)應(yīng)用技術(shù)委員會(huì)智庫(kù)專(zhuān)家,暢銷(xiāo)書(shū)《測(cè)試工程師全棧技術(shù)進(jìn)階與實(shí)踐》的作者,“軟件測(cè)試52講-從小工到專(zhuān)家的實(shí)戰(zhàn)心法”的專(zhuān)欄作者?,F(xiàn)任Dell EMC中國(guó)研發(fā)集團(tuán)資深架構(gòu)師,歷任eBay中國(guó)研發(fā)中心測(cè)試基礎(chǔ)架構(gòu)技術(shù)負(fù)責(zé)人,HP軟件中國(guó)研發(fā)中心資深架構(gòu)師、性能測(cè)試專(zhuān)家,Alcatel-Lucent高級(jí)技術(shù)主管,Cisco中國(guó)研發(fā)中心資深工程師等職位,具有超過(guò)16年的軟件研發(fā)和技術(shù)管理經(jīng)驗(yàn)。
2.朱磊:專(zhuān)注運(yùn)維安全的北京沃頓在線信息技術(shù)有限公司創(chuàng)始人,《暗戰(zhàn):數(shù)字世界之戰(zhàn)》一書(shū)作者。他曾任京東研發(fā)系統(tǒng)安全經(jīng)理,具有多年的互聯(lián)網(wǎng)信息安全管理經(jīng)驗(yàn),豐富的信息安全理念和多個(gè)安全系統(tǒng)架構(gòu)經(jīng)驗(yàn)。
3.韓鋒:花名:群峰,阿里云數(shù)據(jù)庫(kù)產(chǎn)品團(tuán)隊(duì)高級(jí)產(chǎn)品專(zhuān)家,CCIA(中國(guó)計(jì)算機(jī)行業(yè)協(xié)會(huì))常務(wù)理事,Oracle ACE,dbaplus社群聯(lián)合創(chuàng)始人,ACMUG主席團(tuán)成員、專(zhuān)家組成員,《SQL優(yōu)化最佳實(shí)踐》作者。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】