我们为大型企业客户回答的最困难的问题之一是,为什么他们应该选择Aiven而不是管理自己的数据库和流服务。违反直觉的是,为托管服务额外支付可以为您节省金钱。但是,当我们考虑规模经济(尤其是在获得专业知识和工具方面)时,托管服务的案例就变得很明显。今年早些时候,我们的一些MySQL客户肯定是这种情况,他们以悄悄管理的错误修复的形式获得了对ADIVEN的投资。
。发生了什么
在2023年1月,我们的网站可靠性工程团队开始收到报告,称某些MySQL数据库被捕获在重新启动循环中。 Aiven的SRE团队在这些情况下有剧本 - 即,我们允许节点优雅地失败到待机 - 但是由于某些原因,此过程没有工作:SRES必须手动重新启动节点并恢复它们,并在几天之内恢复它们。或几周的客户,有时是同一客户,会发现自己面临另一场停机。
此外,当SRE团队确实将这些客户的数据库返回在线时,很难从备份中恢复:数据已损坏。
Aiven的SRE团队认为这个问题是间歇性的,无法跟踪。最终统计数据表明,不到1%的数以万计的客户受到影响,而SRE团队只看到与该模式相匹配的事件,最多每周几次。
。但是,在几周的时间里,SRE团队收到了足够的客户报告,以意识到发生了更广泛的事件,他们开始了调查工作。
做侦探工作:规模经济的力量
大多数Aiven的企业客户都有自己的网站可靠性工程团队。那么,您可能会问,为什么他们会在像Aiven这样的公司中找到价值?一个简单的答案是,由于规模经济,Aiven为他们工作。与我们的客户相比,Aiven聘请高质量数据库专家和出色的SRE的效率要高,而且即使对于我们提供的服务,也可以为我们提供的时间投资和工具而言也是如此非常大的企业要做。
这就是这个MySQL问题发生的事情:经Aiven的SRE和数据服务团队进一步调查,我们发现该问题的核心与MySQL 8.0.30中引入的数据类型的更改有关。在有问题的行上使用SELECT
引起了重新启动循环,此外,该行中的数据损坏了,使该错误更有可能在以后发生。
Aiven的数据服务团队通过扫描数千次部署发现了这一点 - 少量客户发生了错误。
用工具挤压10,000个错误
Aiven比较了MySQL 8.0.30和MySQL 8.0.31的源代码,并确定了更改并引起问题的代码块。这听起来很微不足道,但实际上,我们的一位工程师在MySQL中扫描了数百个投入以识别变化。
似乎减轻的是将MySQL升级到8.0.31,但Aiven为我们的客户提供了强大的备份。工具Aiven用于创建和管理MySQL数据库备份滞后于MySQL版本后面:简而言之,我们无法升级MySQL并同时保持备份承诺。
>个人业务可能无论如何都可能选择升级,但是由于Aiven对成千上万的客户进行了大规模运行,因此我们还有其他选择:我们决定将修复程序备份到MySQL 8.0.30,并支持MySQL的自定义版本直到我们备份工具发布了与最新的MySQL版本兼容的版本。这让我们继续运行强大的,合规的备份工具并减轻我们的客户问题。
此外,Aiven的团队开发了一个小脚本,该脚本在启动时重建了所有MySQL数据库 - 这样,我们可以确保将更改应用于所有MySQL数据库客户,而不仅仅是经历该问题的客户。 P>
自行滚动是有风险的
对于管理自己的数据库基础架构的企业,此类错误将太晦涩难以置信:跨成千上万的MySQL客户,Aiven仅观察到该问题仅100次以上,并且仅收到了少数报告。其中,只有少数客户经历了不止一次的问题。 Aiven运行了30,000多个MySQL服务,因此这是一个真正的小比例。
没有听起来可以管理自己的基础架构的企业,因此遇到足够的问题的几率,您的数据库或网站可靠性工程团队可能会注意到一种模式,并且有足够的数据来减轻问题非常低。但是,对于Aiven,在对数千个客户的大规模监视MySQL方面具有更高的投资,这是更容易看到的模式和减轻模式的。您的业务投资于这种工具,但是只需少量费用,您就可以使用像Aiven这样的公司。
那么,您会发生什么呢?
您的业务将经历一个令人震惊的IT事件。首先,像我们的客户一样,您的数据库将被捕获在重新启动循环中。当您最终解决这个问题时,您的数据库很有可能会损坏。如果您很聪明,则可以从备份中恢复该数据库,但是设置自动备份需要小型开发团队通常没有的时间和精力。在许多情况下,除了潜在的数据丢失外,您还可以在手上出现非常漫长而有问题的生产中断。然后,当您最不期望的时候,错误将再次发生,因为您将没有信息来解决该问题。
在Aiven中,我们的客户经历了大约2个小时的最长生产中断,而客户经历的最长数据库重建时间约为6个小时。在生产中的所有故障中,我们只需要手动重新启动服务,一旦自动化照顾其余的锯。由于Aiven使用的强大备份工具,我们的客户丢失了最小数据。从我们的角度来看,拥有一个充满MySQL和SRE专家的值得信赖的合作伙伴来使您的数据库重新在线要比不得不以专业知识自己进行专业知识要好得多。
包起来
Aiven可让您直接在Aiven Console或使用Aiven API中管理数据库,流服务等。有关MySQL,check out the documentation或我们在Developer Center的教程的更多信息。