周三,达米什站在入境站的2.4万名观众面前,接受了介绍客户代码,其中一个核心原则是:“承认你的错误。”本周,我们运用了这一原则。

美国东部时间周四早上,我们经历了一次中断,影响了我们的一些营销中心企业客户。我们的工程团队相当迅速地解决了潜在的问题,然后用当天剩余的时间来解决停机的影响。他们今天上午开会分析了所发生的事情,以及我们可以从中学到什么。

我们很抱歉我想提供更多的细节,说明是什么导致了这个问题,以及我们将如何在未来防止它。

问题的根源

HubSpot刚刚向我们的营销中心企业客户推出了大量新功能。通过这一推出,我们还希望使初学者和专业级别的客户能够在自助的基础上尝试完整的企业特性集。

周三,我们的工程团队开始了所需的基础设施工作,最终将支持改进的企业试验体验。计划在9月底之前推出新的试用体验。

在进行第一个更改时,我们错误地将所有现有的营销中心企业门户标记为试验门户。这本身并不会造成问题,因为这些门户仍然具有它们的企业特性和访问权限。

然而,许多这些门户最初都是作为试用门户开始的,当它们被创建时,试用系统会给它们一个试用截止日期。当门户升级到Marketing Hub Enterprise门户时,该截止日期从未被删除。再说一遍,这本身并不是问题,而是在我们的系统中存在了一段时间的问题。

但在周四上午,一个旨在关闭过期试验的日常流程出现在了这些Marketing Hub Enterprise门户网站上,它们现在被标记为过去有过期日期的试验。该流程确定它们是过期的试用版本,并将其降级为免费门户,从这些门户中删除所有企业级功能。

受影响的门户立即失去了它们的自动化、CMS托管、广告、电子邮件和其他属于企业层的功能。最严重的后果是,客户的网站、博客、登录页面和HubSpot上的表格立即停止工作。对于在外部页面中嵌入表单的客户,仍然会捕获潜在客户,并且不会经历任何停机时间。

复苏

在内部监控系统提醒我们内容系统出现故障后,我们的工程团队开始识别和解决问题。问题很快就被发现了,我们的首要任务是恢复这些门户的完整功能。这个过程大约在美国东部时间周四早上7点完成。

第二阶段是修正降级过程的后果。由于降级的门户在没有人工干预的情况下进行升级是不常见的,因此我们的系统没有准备好无缝地自动“重新升级”许多这些“新的”企业门户。结果,我们受影响的客户体验到丢失的站点设置和页面,并发现自己与断开的域和工作流无法执行。

清理工作对我们的团队来说是最具挑战性的,这也是我们的客户最痛苦的地方,因为他们等待他们的营销堆栈的关键部分(如网站和登陆页面)被恢复。在等待的过程中,我们客户的许多客户看到了一条错误消息,看起来好像是我们的客户出了问题,而不是我们(下文将详细介绍我们如何解决这个问题)。

从上午剩下的时间到下午,我们都在努力修复所有这些问题,并将站点恢复到降级前的状态。

那么,为什么要花这么长时间呢?我们不是有备份吗,难道这不是一个简单的回滚一个小时左右的问题吗?

是的,我们有备份,而且我们用了一些。

然而,如果我们只是恢复备份HubSpot的客户问题的影响就会失去所有的工作在四个小时内完成变化之间的生活和我们发现的问题,我们没有办法计算,这将对企业的潜在影响。所以我们决定不单单依靠备份。

相反,我们需要采取更精确的方法。我们需要弄清楚如何恢复特定客户的数据,同时保留所有其他客户的工作。我们必须在产品的许多不同领域都这样做,而我们的客户也在努力为他们的客户让产品运行起来。

恢复过程包括我们的工程团队建立和部署一系列目标脚本,同时与我们的客户支持团队密切合作,以识别和解决受影响的客户的问题。

未来的预防

首先,我想非常明确的是,我们的一些客户所经历的网站停机是不可接受的。这不仅影响我们的客户。它也影响他们的客户和前景。

我们在HubSpot强调的一点是,我们会犯错,这是很自然的——但当我们犯错时,我们会确保从中吸取教训,以避免在未来重复类似的问题。我们的工程团队正在尽一切可能确保这种情况不会再次发生。

我们正在做几个大的改变来防止未来发生这种情况。首先,在短期内,我们已经从系统中删除了所有旧的试用截止日期,这样就不会再有付费门户被认为已经过期。此外,我们正在淘汰管理试验的旧系统,转向一个更现代的系统,在自己的数据库中管理试验状态。作为现代化的一部分,我们将简化处理停用的方式,并确保在更长的宽限期过去之前,我们只采取简单的、可逆的操作。我们还将改进我们的系统,以检测我们的产品配置代码的异常变化,并停止任何一次做出太多变化的修改。

其次,我们将投资于能够快速恢复一部分客户数据的工具,并确保自动更新数据的系统在进行任何更改之前仔细考虑数据的当前状态。我们将改进处理重新激活的方式,以便如果门户由于合法取消、过期试用或bug而失去访问权,我们将能够更优雅、更快速地恢复该门户到其完整状态。

第三,这是一个小但重要的改变——我们将修正如何将错误传达给客户的客户,这样就不会有错误信息让我们的错误看起来像是客户的错误。

再一次,我们很抱歉。

如果您遇到与此停机相关的任何其他问题,请致电HubSpot支持1-888-HUBSPOT x3。

最初发布于2018年9月7日下午3:06:37,2018年9月12日更新