一个法国程序员 Nicolas Beauvais 在推特上发了一系列帖子,控诉 一个云服务商搞死他们公司了,从而引发了一场骚动。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

他是一家仅有 2 人的微型 AI 创业公司 Raisup 的 CTO,控诉对象是有着 300 多员工的美国云托管服务商 DigitalOcean(以下简称 DO)。2015 年 DO 是全球排名第 2 的云托管服务商,仅次于 AWS。

一个自动化脚本能搞死公司?

这是什么情况?

根据 Nicolas 发的帖子,我们整理如下:

背景

Raisup 公司在 DO 买了虚拟机和空间,web app、worker、缓存、数据库、备份都在 DO。

Nicolas 写了 1 个 Python 自动化脚本程序,每 2~3 个月定期执行。为了提高数据处理效率,他在多个虚拟机上并行执行脚本, 50 万行数据大约 1 秒。 这个数据管道,执行完后就关闭。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

第 1 次被封

5 月 29 日,Raisup 收到 DO 的邮件,DO 认为那个 Python 自动化脚本可能是恶意程序,然后把 Raisup 公司账号的所有权限都封了。

这也就意味着,Raisup 网站挂了,其提供的服务全挂,网站备份也没了!Raisup 公司死了!

第 1 次解封

在和 DO 多次沟通后,DO 曾解封 Raisup 账号。Raisup 网站宕机 12 小时后恢复正常访问。

因为所有虚拟机都被关闭了,记录进展的 Redis 内存也被擦除了,所以 Nicolas 不得不重新启动数据管道,

第 2 次被封

不过好景不长,4 个小时后再次被封,很可能还是因为那个脚本。

在随后漫长的 30 个小时内,Raisup 公司发出 4 封邮件,但最终只收到 DO 的自动回复,拒绝解封。(如果你们公司被莫名其妙地被封,在焦急等待的过程中,30 个小时的确非常漫长。)

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

无助的程序员,原本是到国外休假

Nicolas 哭诉道, 「我们就是一家 2 个人的小公司,我是唯一的程序员。今天是我休假两周的第 1 天。我到葡萄牙后收到了 DO 的最终答复,觉得受到伤害,感觉如此无助。」

「我们失去了一切,我们的服务器,更重要的是一年的数据库备份。我们现在必须向我们的客户、《财富》500强企业解释,为什么我们不能恢复他们的账户。」

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

Nicolas 认为 DO 至少应该让他能把备份下载,救救公司。

DO 的道歉

DO 官方推特的回应:

我们听到并理解你的担忧,并为此事的处理方式道歉。我们已经恢复了账户,正在对这一事件进行彻底调查。我们会公布调查结果,为客户和社会提供充分的透明度。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

DO 的联合创始人在推特上回应:

帐户应该重新激活解封。我们需要深入了解这是如何处理的。不应该花这么长时间来恢复帐户,而且也不应该会被标记两次。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

DO 的 CTO 在 Hacker News 上回应:

作为 DigitalOcean 的 CTO,我对这种情况和处理方式感到非常抱歉。目前该账户已完全恢复,我们正在对该事件进行调查。我们正计划发布一个公开报告,为我们的客户和社区提供完全的透明度。 这种情况的发生,是由于我们的内部欺诈和滥用制度所引发的误报。虽然这种情况很少见,但确实会发生,我们尽一切努力让客户尽快回到网上。在这个特定的场景中,我们反应迟缓,在处理假阳性时出现错误。这导致用户被锁在外面很长一段时间。我们为我们的错误道歉,并将在公众报告中分享更多的细节。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

悲惨遭遇引发众多同行的支持和同情

Nicolas 的悲惨遭遇,除了在 5 月 31 日在推特引发大量关注。6 月 1 日在 Hacker News 同样引发热议。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

网友 MrFreemind:

这听起来很危险。DO 不能出来解决问题么?这是我头次听说这样的事。我们用 DO 很多年了。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

网友 Lyndon Fawcett 分享自己的类似经历:

几年前,同样的事情也发生在我身上。DO 不可信任!我从管理面板进入我的账户后失去了一切。他们的支持团队很危险,容易受到社会工程的影响。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

有些则给 Nicolas 指路推荐其他云服务商,有些则表示不会再用 DO 了。

网友 Davis 则建议要把备份存在另外一个服务商那,就不用只依靠一个服务商了。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

不要把鸡蛋都放一个篮子中!

最后,借用程序员 Jon Brown 的话:

即便是只有一个人的创业公司,也应该有其他一些异地备份。不怕万一,就怕一万。记住,永远都不要把所有鸡蛋都放一个篮子中。

1 个 Python 自动化脚本引发的惨案!把公司搞死了?

(文章来源:今日头条)