微盟删库事件已经发生超过 10 天。单从 3 月 1 日官方发布的公告来看,事情似乎已平息可告一段落,但对许多商户们来说,软件问题并没有完全解决,而事故引发的震荡才刚开了个头。
一个危险的删除命令
2020 年 2 月 23 日晚间,全国大大小小使用微盟服务的线上商户都陆续发现管理后台出现了问题,有的是因为无法登入界面操控系统,有的是因为顾客发现商城崩溃后询问。
事故来自于微盟研发中心运维部的核心员工贺某,在家通过 VPN 登入内网跳板机,对微盟的数据库进行了破坏,致使大部分客户资料丢失。
微盟是国内最大的智能商业服务提供商之一,主要业务是为中小商户提供微商城、小程序、餐饮 o2o 等解决方案。比方说你想搭建一个小程序或网页用来卖货,但没有开发能力不知道怎么下手,使用微盟的服务便可以省去这方面技术上的困扰,直接上传相关素材设计页面,销售商品管理订单等。
微盟为商户提供的是软件技术服务,而运行这些程序的系统则需要靠服务器的计算运行来支撑。微盟选择的方案是租赁腾讯云的黑石物理服务器,与自己线下购买搭建服务器相比,使用云服务在维护管理方面更省心,财务上的资产支出款项也会更轻量。
据 PingWest 品玩了解,微盟的数据库分为两部分:从腾讯云租赁云数据库(CDB),和自建 MySQL 数据库。前者由腾讯云统一管理,企业可节省运维成本,可享受的备份、恢复等服务也较多;后者的访问权限掌握在企业自己手中,微盟的大部分核心资料都存放于此。
根据腾讯云《微盟数据被删后的七天七夜》一文中的表述,“运维人员用一种让程序员闻风丧胆的 Linux 系统下文件删除命令,整体进行了不可逆的删除”,以及恢复数据过程之漫长艰难,可以大致判断,贺某是使用“rm -rf /*”命令,删除了自建数据库(包含备份)。你大概可以理解为“shift + delete”,被删除的文件一般都难以恢复。
我们前面提到,微盟还有一部分数据存放在腾讯云数据库,这部分内容并没有受影响。但由于几乎所有与商户有关的核心数据,如客户和订单信息,这些全都在自建数据库中,贺某的删库操作便足以让微盟几乎所有的业务全线崩盘。
运维员工轻松完成如此危险重大的操作,说明微盟在权限设置等方面存在着严重的数据安全管理缺陷,作为一家上市公司来说这显然是反常的。
按理来说,这种让程序员闻风丧胆的删除命令,基本就已经能将数据库中所有文件彻底删除无法恢复,那么微盟和腾讯云是如何在七天七夜后将数据全面找回的?
已删除的数据如何恢复
由于被删的数据库为微盟自建,因此,想找回这些数据,必须靠微盟自己着手主导。但受限于技术能力和储备,微盟团队只能在第一时间向有技术合作的腾讯云求助。
据腾讯云团队向 PingWest 品玩介绍,双方在恢复数据过程主要分为三个大的时间节奏:
第一,控制受损面。不能让现在还有机会找回的数据及其服务器再发生任何的问题;第二,通过专业的软件和团队,扫描硬盘找回数据;第三,由微盟自己进行业务的上线、调试演练等一系列工作。
三个步骤看起来简单,但实际上每一步都涉及大量技术细节,需要许多这方面的专业人员去花费精力操作监守,其中以第二步最为困难。
据悉,由于备份服务器上的文件类型更单一,数据更集中,因此腾讯云技术团队选择了从备份服务器入手。但找数据,也并不是把数据找到就可以了那么简单。
首先,由腾讯内部技术团队大海捞针般扫描硬盘,提取出所有被删的隐藏数据(这一步已经需要耗费许多时间),然后将这些零碎的数据挨个尝试拼接,恢复出原貌。数据恢复后交给微盟,由微盟的团队验证是否为可用数据,能否导入数据库,能否正常加载至服务器。
为了方便理解,我们可以把硬盘比喻为笔记本,数据文件即为写在本子上的文章语句。贺某的删库动作相当于将所有字迹擦除,还把整个本子撕碎。而腾讯云需要做的,便是通过纸张上面的笔尖压痕猜测对应的文字笔划,并将这些碎片拼凑为完整的字段。
而之前写笔记本的微盟,在拿到这些字段之后,也需要去继续验证它们是否为对的文字,是否属于同一篇文章,组合之后语义有无问题。随后,微盟还需要将这些文章念出来,审核是否完全没问题。
所以我们可以看到,当微盟在公告中表示“数据已全面找回”时,并不意味着业务产品已经正常,而是还需要经过上线演练,才能恢复整个系统。
数万商户共担人祸
“公告说恢复了,我们这边后台看根本没有!”
方阳是一家海淘电商的 CEO,从 2019 年开始使用微盟搭建小程序。他和团队花了半年多的时间调整版面设计、修改产品图等等,终于将小程序商城装修得有模有样。
1 月底疫情爆发,他的店铺随之开始售卖酒精和手套等防护用品,销量上涨,年前售出了五千多单。就在他和团队准备发货时,微盟后台崩溃,订单详情无法查看,他不知道该把货物发到哪里,顾客也着急,通过各种渠道找到他的联系方式催发货和投诉。
和方阳一样焦急的商户还有很多,他们都在删库后数次联系客服,但得到的回应基本都是“再等等;我们也不清楚;应该过两天就好了”。
2 月 25 日,微盟发布通告,表示生产环境即将修复完成,可为老用户提供临时过渡方案——即重新搭建一个新的商城,以在全面恢复前能完成其他新交易。微盟的竞争对手有赞也趁机在各个社交平台骚扰受害商家,表示可以帮助免费重建过渡。
“怎么可能呢?我们之前花了大半年才搭好,重建的话,一天一个人力撑死也就只能上 20 多个商品。然后产品图一直在更新也都存在后台的素材库里,找回来难,重新做更花时间。”
方阳补充道,“而且微盟那边一直说过两天就恢复了,那我们还费这个力干嘛”。
方阳的业务为纯电商,受删库最大的影响便在于事故期间的订单流失。对于商品时效性更强和涵盖线下业务的商铺来说,打击更为深远和致命。
马太所在的公司主营时尚女装,线下营有几十家连锁店,线上也使用微盟开了 4 年左右的“旺铺”。此前公司的营业收入中,线下连锁店一直占大头,但受疫情影响,线下店铺门可罗雀,几乎不再来客。
线下的收入来源被斩断,但巨大的房租和工资成本却没有变少,此外他还要面对下一季度新品的进货成本压力。疫情期间,马太的公司收入来源只能转为全部依靠线上。
“现在考虑的已经不是利润问题,可以说是只要卖得出去货,进得来钱就行了,成本已经不再那么重要。”
或许是来自老客户的捧场,或许是来自线下店铺的转化,疫情期间马太的旺铺销量开始大幅增加。之前一天的订单量可能在 10 以下,但最近每天都能达成几百单的成交量,最高达到了单日 20 万元的销售额。
转危为安活下来的希望旋律,在 2 月 23 日这一天被按下了暂停键。最直观的影响无疑是修复期间销售订单流失,但即使系统后续上线恢复,事故的余震也将持续很长一段时间。
其一,马太的商铺为线上线下结合,顾客粘性较大,线上商城出事时间过久,顾客对品牌失去信任,会连带着影响到线下未来业务;另一方面,微盟公告中的“恢复服务”“数据找回”等表述,更是加剧了顾客对商户的误解——顾客以为后台已经全面恢复,实则不然。有些顾客甚至找到马太的线下店面,要求退货退款。
其二,订单和顾客流失加上服装商品带有季节时效性,将造成原本能卖出、但现在卖不完的商品堆压,提高仓储成本,过季折价售卖也将降低总体收入。
其三,预估收入下降,影响下个季度的新品采购,进一步导致下季度的商品销售货源问题。
其四,疫情期间线下成本高,原本可以依靠线上收入缓解,但现在由于订单流失,现金流被挤压,企业的生存变得更为艰难。
“最让人气愤的是微盟只从自己利益出发,对于事故一直是推诿、隐瞒真相。他们也不给我们明确的恢复时间,让我们无法进行下一步的工作安排。”
微盟公告中表示 3 月 3 日将恢复正式上线,但直到 3 月 5 日夜,马太的旺铺依然没有恢复正常。他告诉 PingWest 品玩,“可笑,我今天去问官网客服数据及业务恢复情况,他们让我们去找代理商”。
微盟的傲慢
无论是天灾还是人祸,微盟和使用微盟服务的商户们一样,无疑都是利益受损的被害方。而数据恢复工程难度极高,耗时也长,目前我们看到的恢复状况,大概已经是微盟技术团队竭尽努力所能实现的最好结果。
从恢复难度和技术语言差异的角度来看:2 月 25 日通告“预计老用户数据修复可在 28 日晚上 24 点前完成”;26 日通知“微商城、智慧零售、微站业务正式恢复服务”;28 日表示“预计剩余部分数据恢复时间还会持续 2-4 天左右”……这些一而再再而三的推迟,都可以理解。甚至于 3 月 1 日正式公告的“将于 3 月 3 日上午 9 点数据恢复正式上线”,都能宽容地去看作全面上线难度过高,微盟预估错时间。
但在这 10 天中,微盟对小客户的沟通方式和态度,都让所有人感到失望,甚至害怕。
多家商户告诉 PingWest 品玩,在系统刚刚崩溃时,有的客服回答过两天就能好,有的客服则甩锅表示问题由腾讯云故障导致。大部分客服人员都没有留下文字方面的证据,只使用电话或语音传达信息。
上图来自知乎用户“丑石羊”的回答,尽管对接人员没有明确表示问题来自腾讯,但“腾讯那边技术正在疯狂处理,我们这边暂时还没有预备方案”的表述,也不免存在暗示责任的大嫌疑。
即使在后续问题原因已经曝光,官方也发出统一公告后,许多客服依然是一问三不知。
高顿是微盟的代理商兼商户,在事故发生多天后,他以商户的身份组织了其他商家共同维权。在群里,他看到了商户们因为无处沟通造成的慌乱和怨气,便建议自己对接的微盟华北渠道总监徐峰进群,或者让代理商们联系商户沟通传达,以解决信息不对称的问题。
徐峰不但没有接受他的建议,还在得知存在商户维权群之后,威胁高顿如果再闹便法务联系。此外,对高顿的代理商解约需求也不予理会。
据悉,微盟的销售业务主要分为两部分,自建销售团队和代理商。代理商在签合同时,需要先交 5000 元的保证金,以及预付近 10 万元的软件款用于购买商城软件服务的开通权,类似于饭卡预充值。代理商使用折扣价批量购买后,可加价售卖给普通商户,从中赚取差价。如果代理商想解约,需要扣除保证金和违约金,但未开通(即未卖出)的软件款项可退回。
高顿愿意付违约金解约,但徐峰并没有给他办理。而遇到解约受阻问题的代理商,并不止高顿一个。
幸运的如上图中的周女士,通过调解平台投诉最终成功拿回预付的软件款,其他无力维权的代理商,除了咽下苦果则无计可施。
有运营人员告诉 PingWest 品玩,业内流传一个说法是“微盟是家销售导向的公司”。本文记者在删库事件后尝试性地注册了微盟后台,5 天后便接到了销售人员的询问电话。
2019 年中旬,易典所就职的文化传播公司想通过小程序做线上知识付费服务。她研究了一下行业里做得比较大的有赞和微盟,发现有赞的合同存在霸王条款,而微盟销售人员介绍的服务功能更齐全,因此选择了微盟。
但在购买服务之后,易典才发现销售所保证的拼团和砍价等促销功能,并没有和她用的知识付费板块打通,而像交作业、签到这类知识付费常用插件,微盟也没有开发,更别提产品三天两头出 bug。
每次易典发现 bug 寻找售后人员时,总会发现对方连插件功能都不清楚,问题无解时甚至会呛她“我们一个售后要服务几百个品牌”。在删库事故发生后,易典选择先找客服询问状况,然而,客服建议她联系售后。
但易典也没有办法。可提供 SaaS 服务的大企业就这么几家,谁也没有好到哪去。
(方阳、马太、高顿、易典为化名)