微盟刪庫(kù)事件已經(jīng)發(fā)生超過(guò)10天。單從3月1日官方發(fā)布的公告來(lái)看,事情似乎已平息可告一段落,但對(duì)許多商戶們來(lái)說(shuō),軟件問(wèn)題并沒(méi)有完全解決,而事故引發(fā)的震蕩才剛開(kāi)了個(gè)頭。
一個(gè)危險(xiǎn)的刪除命令
2020年2月23日晚間,全國(guó)大大小小使用微盟服務(wù)的線上商戶都陸續(xù)發(fā)現(xiàn)管理后臺(tái)出現(xiàn)了問(wèn)題,有的是因?yàn)闊o(wú)法登入界面操控系統(tǒng),有的是因?yàn)轭櫩桶l(fā)現(xiàn)商城崩潰后詢問(wèn)。
事故來(lái)自于微盟研發(fā)中心運(yùn)維部的核心員工賀某,在家通過(guò) VPN 登入內(nèi)網(wǎng)跳板機(jī),對(duì)微盟的數(shù)據(jù)庫(kù)進(jìn)行了破壞,致使大部分客戶資料丟失。
微盟是國(guó)內(nèi)最大的智能商業(yè)服務(wù)提供商之一,主要業(yè)務(wù)是為中小商戶提供微商城、小程序、餐飲 o2o 等解決方案。比方說(shuō)你想搭建一個(gè)小程序或網(wǎng)頁(yè)用來(lái)賣(mài)貨,但沒(méi)有開(kāi)發(fā)能力不知道怎么下手,使用微盟的服務(wù)便可以省去這方面技術(shù)上的困擾,直接上傳相關(guān)素材設(shè)計(jì)頁(yè)面,銷(xiāo)售商品管理訂單等。
微盟為商戶提供的是軟件技術(shù)服務(wù),而運(yùn)行這些程序的系統(tǒng)則需要靠服務(wù)器的計(jì)算運(yùn)行來(lái)支撐。微盟選擇的方案是租賃騰訊云的黑石物理服務(wù)器,與自己線下購(gòu)買(mǎi)搭建服務(wù)器相比,使用云服務(wù)在維護(hù)管理方面更省心,財(cái)務(wù)上的資產(chǎn)支出款項(xiàng)也會(huì)更輕量。
據(jù) PingWest品玩了解,微盟的數(shù)據(jù)庫(kù)分為兩部分:從騰訊云租賃云數(shù)據(jù)庫(kù)(CDB),和自建 MySQL 數(shù)據(jù)庫(kù)。前者由騰訊云統(tǒng)一管理,企業(yè)可節(jié)省運(yùn)維成本,可享受的備份、恢復(fù)等服務(wù)也較多;后者的訪問(wèn)權(quán)限掌握在企業(yè)自己手中,微盟的大部分核心資料都存放于此。
根據(jù)騰訊云《微盟數(shù)據(jù)被刪后的七天七夜》一文中的表述,“運(yùn)維人員用一種讓程序員聞風(fēng)喪膽的Linux系統(tǒng)下文件刪除命令,整體進(jìn)行了不可逆的刪除”,以及恢復(fù)數(shù)據(jù)過(guò)程之漫長(zhǎng)艱難,可以大致判斷,賀某是使用“rm -rf /*”命令,刪除了自建數(shù)據(jù)庫(kù)(包含備份)。你大概可以理解為“shift + delete”,被刪除的文件一般都難以恢復(fù)。
我們前面提到,微盟還有一部分?jǐn)?shù)據(jù)存放在騰訊云數(shù)據(jù)庫(kù),這部分內(nèi)容并沒(méi)有受影響。但由于幾乎所有與商戶有關(guān)的核心數(shù)據(jù),如客戶和訂單信息,這些全都在自建數(shù)據(jù)庫(kù)中,賀某的刪庫(kù)操作便足以讓微盟幾乎所有的業(yè)務(wù)全線崩盤(pán)。
運(yùn)維員工輕松完成如此危險(xiǎn)重大的操作,說(shuō)明微盟在權(quán)限設(shè)置等方面存在著嚴(yán)重的數(shù)據(jù)安全管理缺陷,作為一家上市公司來(lái)說(shuō)這顯然是反常的。
按理來(lái)說(shuō),這種讓程序員聞風(fēng)喪膽的刪除命令,基本就已經(jīng)能將數(shù)據(jù)庫(kù)中所有文件徹底刪除無(wú)法恢復(fù),那么微盟和騰訊云是如何在七天七夜后將數(shù)據(jù)全面找回的?
已刪除的數(shù)據(jù)如何恢復(fù)
由于被刪的數(shù)據(jù)庫(kù)為微盟自建,因此,想找回這些數(shù)據(jù),必須靠微盟自己著手主導(dǎo)。但受限于技術(shù)能力和儲(chǔ)備,微盟團(tuán)隊(duì)只能在第一時(shí)間向有技術(shù)合作的騰訊云求助。
據(jù)騰訊云團(tuán)隊(duì)向 PingWest品玩介紹,雙方在恢復(fù)數(shù)據(jù)過(guò)程主要分為三個(gè)大的時(shí)間節(jié)奏:
第一,控制受損面。不能讓現(xiàn)在還有機(jī)會(huì)找回的數(shù)據(jù)及其服務(wù)器再發(fā)生任何的問(wèn)題;第二,通過(guò)專(zhuān)業(yè)的軟件和團(tuán)隊(duì),掃描硬盤(pán)找回?cái)?shù)據(jù);第三,由微盟自己進(jìn)行業(yè)務(wù)的上線、調(diào)試演練等一系列工作。
三個(gè)步驟看起來(lái)簡(jiǎn)單,但實(shí)際上每一步都涉及大量技術(shù)細(xì)節(jié),需要許多這方面的專(zhuān)業(yè)人員去花費(fèi)精力操作監(jiān)守,其中以第二步最為困難。
據(jù)悉,由于備份服務(wù)器上的文件類(lèi)型更單一,數(shù)據(jù)更集中,因此騰訊云技術(shù)團(tuán)隊(duì)選擇了從備份服務(wù)器入手。但找數(shù)據(jù),也并不是把數(shù)據(jù)找到就可以了那么簡(jiǎn)單。
首先,由騰訊內(nèi)部技術(shù)團(tuán)隊(duì)大海撈針般掃描硬盤(pán),提取出所有被刪的隱藏?cái)?shù)據(jù)(這一步已經(jīng)需要耗費(fèi)許多時(shí)間),然后將這些零碎的數(shù)據(jù)挨個(gè)嘗試拼接,恢復(fù)出原貌。數(shù)據(jù)恢復(fù)后交給微盟,由微盟的團(tuán)隊(duì)驗(yàn)證是否為可用數(shù)據(jù),能否導(dǎo)入數(shù)據(jù)庫(kù),能否正常加載至服務(wù)器。
為了方便理解,我們可以把硬盤(pán)比喻為筆記本,數(shù)據(jù)文件即為寫(xiě)在本子上的文章語(yǔ)句。賀某的刪庫(kù)動(dòng)作相當(dāng)于將所有字跡擦除,還把整個(gè)本子撕碎。而騰訊云需要做的,便是通過(guò)紙張上面的筆尖壓痕猜測(cè)對(duì)應(yīng)的文字筆劃,并將這些碎片拼湊為完整的字段。
而之前寫(xiě)筆記本的微盟,在拿到這些字段之后,也需要去繼續(xù)驗(yàn)證它們是否為對(duì)的文字,是否屬于同一篇文章,組合之后語(yǔ)義有無(wú)問(wèn)題。隨后,微盟還需要將這些文章念出來(lái),審核是否完全沒(méi)問(wèn)題。
所以我們可以看到,當(dāng)微盟在公告中表示“數(shù)據(jù)已全面找回”時(shí),并不意味著業(yè)務(wù)產(chǎn)品已經(jīng)正常,而是還需要經(jīng)過(guò)上線演練,才能恢復(fù)整個(gè)系統(tǒng)。
數(shù)萬(wàn)商戶共擔(dān)人禍
“公告說(shuō)恢復(fù)了,我們這邊后臺(tái)看根本沒(méi)有!”
方陽(yáng)是一家海淘電商的 CEO,從2019年開(kāi)始使用微盟搭建小程序。他和團(tuán)隊(duì)花了半年多的時(shí)間調(diào)整版面設(shè)計(jì)、修改產(chǎn)品圖等等,終于將小程序商城裝修得有模有樣。
1月底疫情爆發(fā),他的店鋪隨之開(kāi)始售賣(mài)酒精和手套等防護(hù)用品,銷(xiāo)量上漲,年前售出了五千多單。就在他和團(tuán)隊(duì)準(zhǔn)備發(fā)貨時(shí),微盟后臺(tái)崩潰,訂單詳情無(wú)法查看,他不知道該把貨物發(fā)到哪里,顧客也著急,通過(guò)各種渠道找到他的聯(lián)系方式催發(fā)貨和投訴。
和方陽(yáng)一樣焦急的商戶還有很多,他們都在刪庫(kù)后數(shù)次聯(lián)系客服,但得到的回應(yīng)基本都是“再等等;我們也不清楚;應(yīng)該過(guò)兩天就好了”。
2月25日,微盟發(fā)布通告,表示生產(chǎn)環(huán)境即將修復(fù)完成,可為老用戶提供臨時(shí)過(guò)渡方案——即重新搭建一個(gè)新的商城,以在全面恢復(fù)前能完成其他新交易。微盟的競(jìng)爭(zhēng)對(duì)手有贊也趁機(jī)在各個(gè)社交平臺(tái)騷擾受害商家,表示可以幫助免費(fèi)重建過(guò)渡。
“怎么可能呢?我們之前花了大半年才搭好,重建的話,一天一個(gè)人力撐死也就只能上20多個(gè)商品。然后產(chǎn)品圖一直在更新也都存在后臺(tái)的素材庫(kù)里,找回來(lái)難,重新做更花時(shí)間?!?/p>
方陽(yáng)補(bǔ)充道,“而且微盟那邊一直說(shuō)過(guò)兩天就恢復(fù)了,那我們還費(fèi)這個(gè)力干嘛”。
方陽(yáng)的業(yè)務(wù)為純電商,受刪庫(kù)最大的影響便在于事故期間的訂單流失。對(duì)于商品時(shí)效性更強(qiáng)和涵蓋線下業(yè)務(wù)的商鋪來(lái)說(shuō),打擊更為深遠(yuǎn)和致命。
馬太所在的公司主營(yíng)時(shí)尚女裝,線下?tīng)I(yíng)有幾十家連鎖店,線上也使用微盟開(kāi)了4年左右的“旺鋪”。此前公司的營(yíng)業(yè)收入中,線下連鎖店一直占大頭,但受疫情影響,線下店鋪門(mén)可羅雀,幾乎不再來(lái)客。
線下的收入來(lái)源被斬?cái)啵薮蟮姆孔夂凸べY成本卻沒(méi)有變少,此外他還要面對(duì)下一季度新品的進(jìn)貨成本壓力。疫情期間,馬太的公司收入來(lái)源只能轉(zhuǎn)為全部依靠線上。
“現(xiàn)在考慮的已經(jīng)不是利潤(rùn)問(wèn)題,可以說(shuō)是只要賣(mài)得出去貨,進(jìn)得來(lái)錢(qián)就行了,成本已經(jīng)不再那么重要?!?/p>
或許是來(lái)自老客戶的捧場(chǎng),或許是來(lái)自線下店鋪的轉(zhuǎn)化,疫情期間馬太的旺鋪銷(xiāo)量開(kāi)始大幅增加。之前一天的訂單量可能在10以下,但最近每天都能達(dá)成幾百單的成交量,最高達(dá)到了單日20萬(wàn)元的銷(xiāo)售額。
轉(zhuǎn)危為安活下來(lái)的希望旋律,在2月23日這一天被按下了暫停鍵。最直觀的影響無(wú)疑是修復(fù)期間銷(xiāo)售訂單流失,但即使系統(tǒng)后續(xù)上線恢復(fù),事故的余震也將持續(xù)很長(zhǎng)一段時(shí)間。
其一,馬太的商鋪為線上線下結(jié)合,顧客粘性較大,線上商城出事時(shí)間過(guò)久,顧客對(duì)品牌失去信任,會(huì)連帶著影響到線下未來(lái)業(yè)務(wù);另一方面,微盟公告中的“恢復(fù)服務(wù)”“數(shù)據(jù)找回”等表述,更是加劇了顧客對(duì)商戶的誤解——顧客以為后臺(tái)已經(jīng)全面恢復(fù),實(shí)則不然。有些顧客甚至找到馬太的線下店面,要求退貨退款。
其二,訂單和顧客流失加上服裝商品帶有季節(jié)時(shí)效性,將造成原本能賣(mài)出、但現(xiàn)在賣(mài)不完的商品堆壓,提高倉(cāng)儲(chǔ)成本,過(guò)季折價(jià)售賣(mài)也將降低總體收入。
其三,預(yù)估收入下降,影響下個(gè)季度的新品采購(gòu),進(jìn)一步導(dǎo)致下季度的商品銷(xiāo)售貨源問(wèn)題。
其四,疫情期間線下成本高,原本可以依靠線上收入緩解,但現(xiàn)在由于訂單流失,現(xiàn)金流被擠壓,企業(yè)的生存變得更為艱難。
“最讓人氣憤的是微盟只從自己利益出發(fā),對(duì)于事故一直是推諉、隱瞞真相。他們也不給我們明確的恢復(fù)時(shí)間,讓我們無(wú)法進(jìn)行下一步的工作安排?!?/p>
微盟公告中表示3月3日將恢復(fù)正式上線,但直到3月5日夜,馬太的旺鋪依然沒(méi)有恢復(fù)正常。他告訴 PingWest品玩,“可笑,我今天去問(wèn)官網(wǎng)客服數(shù)據(jù)及業(yè)務(wù)恢復(fù)情況,他們讓我們?nèi)フ掖砩獭薄?/p>
微盟的傲慢
無(wú)論是天災(zāi)還是人禍,微盟和使用微盟服務(wù)的商戶們一樣,無(wú)疑都是利益受損的被害方。而數(shù)據(jù)恢復(fù)工程難度極高,耗時(shí)也長(zhǎng),目前我們看到的恢復(fù)狀況,大概已經(jīng)是微盟技術(shù)團(tuán)隊(duì)竭盡努力所能實(shí)現(xiàn)的最好結(jié)果。
從恢復(fù)難度和技術(shù)語(yǔ)言差異的角度來(lái)看:2月25日通告“預(yù)計(jì)老用戶數(shù)據(jù)修復(fù)可在28日晚上24點(diǎn)前完成”;26日通知“微商城、智慧零售、微站業(yè)務(wù)正式恢復(fù)服務(wù)”;28日表示“預(yù)計(jì)剩余部分?jǐn)?shù)據(jù)恢復(fù)時(shí)間還會(huì)持續(xù)2-4天左右”……這些一而再再而三的推遲,都可以理解。甚至于3月1日正式公告的“將于3月3日上午9點(diǎn)數(shù)據(jù)恢復(fù)正式上線”,都能寬容地去看作全面上線難度過(guò)高,微盟預(yù)估錯(cuò)時(shí)間。
但在這10天中,微盟對(duì)小客戶的溝通方式和態(tài)度,都讓所有人感到失望,甚至害怕。
多家商戶告訴 PingWest品玩,在系統(tǒng)剛剛崩潰時(shí),有的客服回答過(guò)兩天就能好,有的客服則甩鍋表示問(wèn)題由騰訊云故障導(dǎo)致。大部分客服人員都沒(méi)有留下文字方面的證據(jù),只使用電話或語(yǔ)音傳達(dá)信息。
上圖來(lái)自知乎用戶“丑石羊”的回答,盡管對(duì)接人員沒(méi)有明確表示問(wèn)題來(lái)自騰訊,但“騰訊那邊技術(shù)正在瘋狂處理,我們這邊暫時(shí)還沒(méi)有預(yù)備方案”的表述,也不免存在暗示責(zé)任的大嫌疑。
即使在后續(xù)問(wèn)題原因已經(jīng)曝光,官方也發(fā)出統(tǒng)一公告后,許多客服依然是一問(wèn)三不知。
高頓是微盟的代理商兼商戶,在事故發(fā)生多天后,他以商戶的身份組織了其他商家共同維權(quán)。在群里,他看到了商戶們因?yàn)闊o(wú)處溝通造成的慌亂和怨氣,便建議自己對(duì)接的微盟華北渠道總監(jiān)徐峰進(jìn)群,或者讓代理商們聯(lián)系商戶溝通傳達(dá),以解決信息不對(duì)稱(chēng)的問(wèn)題。
徐峰不但沒(méi)有接受他的建議,還在得知存在商戶維權(quán)群之后,威脅高頓如果再鬧便法務(wù)聯(lián)系。此外,對(duì)高頓的代理商解約需求也不予理會(huì)。
據(jù)悉,微盟的銷(xiāo)售業(yè)務(wù)主要分為兩部分,自建銷(xiāo)售團(tuán)隊(duì)和代理商。代理商在簽合同時(shí),需要先交5000元的保證金,以及預(yù)付近10萬(wàn)元的軟件款用于購(gòu)買(mǎi)商城軟件服務(wù)的開(kāi)通權(quán),類(lèi)似于飯卡預(yù)充值。代理商使用折扣價(jià)批量購(gòu)買(mǎi)后,可加價(jià)售賣(mài)給普通商戶,從中賺取差價(jià)。如果代理商想解約,需要扣除保證金和違約金,但未開(kāi)通(即未賣(mài)出)的軟件款項(xiàng)可退回。
高頓愿意付違約金解約,但徐峰并沒(méi)有給他辦理。而遇到解約受阻問(wèn)題的代理商,并不止高頓一個(gè)。
幸運(yùn)的如上圖中的周女士,通過(guò)調(diào)解平臺(tái)投訴最終成功拿回預(yù)付的軟件款,其他無(wú)力維權(quán)的代理商,除了咽下苦果則無(wú)計(jì)可施。
有運(yùn)營(yíng)人員告訴 PingWest品玩,業(yè)內(nèi)流傳一個(gè)說(shuō)法是“微盟是家銷(xiāo)售導(dǎo)向的公司”。本文記者在刪庫(kù)事件后嘗試性地注冊(cè)了微盟后臺(tái),5天后便接到了銷(xiāo)售人員的詢問(wèn)電話。
2019年中旬,易典所就職的文化傳播公司想通過(guò)小程序做線上知識(shí)付費(fèi)服務(wù)。她研究了一下行業(yè)里做得比較大的有贊和微盟,發(fā)現(xiàn)有贊的合同存在霸王條款,而微盟銷(xiāo)售人員介紹的服務(wù)功能更齊全,因此選擇了微盟。
但在購(gòu)買(mǎi)服務(wù)之后,易典才發(fā)現(xiàn)銷(xiāo)售所保證的拼團(tuán)和砍價(jià)等促銷(xiāo)功能,并沒(méi)有和她用的知識(shí)付費(fèi)板塊打通,而像交作業(yè)、簽到這類(lèi)知識(shí)付費(fèi)常用插件,微盟也沒(méi)有開(kāi)發(fā),更別提產(chǎn)品三天兩頭出 bug。
每次易典發(fā)現(xiàn) bug 尋找售后人員時(shí),總會(huì)發(fā)現(xiàn)對(duì)方連插件功能都不清楚,問(wèn)題無(wú)解時(shí)甚至?xí)芩拔覀円粋€(gè)售后要服務(wù)幾百個(gè)品牌”。在刪庫(kù)事故發(fā)生后,易典選擇先找客服詢問(wèn)狀況,然而,客服建議她聯(lián)系售后。
但易典也沒(méi)有辦法。可提供 SaaS 服務(wù)的大企業(yè)就這么幾家,誰(shuí)也沒(méi)有好到哪去。
?。ǚ疥?yáng)、馬太、高頓、易典為化名)