Bugsink Logo Bugsink Docs Blog Code Community Pricing Install

我放弃了自托管 Sentry 的原因

Klaas van Schelven Klaas van Schelven; 2024年9月6日 - 6 分钟阅读 Self-hosting Sentry 在 2010 年代初期,我是 Sentry 的忠实粉丝。它是一个用于跟踪 Web 应用程序错误的绝佳工具。当时,我正在为律师事务所开发软件,因此将错误报告发送给第三方服务是不可能的,我需要自己托管它。所以我就这么做了。

离开律师事务所后,我做了几年的承包商。所以当我偶然听到一位同事问是否可以在本地托管 Sentry 时,我想我可以帮忙。毕竟,我已经做过了。 大错特错

制造恐慌

我注意到的第一件事是 Sentry 文档中充满了关于自托管是个坏主意的警告。 这是你无法编造的引言,如果你是他们的直接竞争对手

我们不一定向所有人推荐自托管。除了现有的隐性成本外,随着 Sentry 的发展,我们的自托管版本将变得更加复杂,需要其他类型的基础设施。我们为最新功能提供支持的内部系统也将不断发展,并需要更多的容器,包括一个用于新数据库的容器。

他们甚至还有精美的图片和完整的 pdf 来配合: The cost of self-hosting Sentry Credit: sentry.io

硬件要求

尽管有这些警告,但我还没有放弃。毕竟,我已经做过一次了。所以我打开文档并开始阅读。更多的警告,这次是关于缺乏对自托管版本的支持。考虑到他们也需要赚钱,我可以理解这些(比那些可怕的图片更容易理解)。

但接下来是硬件要求:他们建议至少 16GB 内存 和 4 个核心。从我曾经在 512MB 的 VPS 上运行 Sentry 的时代来看,这有点令人震惊。那么,这是一个真正的问题,还是我应该与时俱进,并接受 16GB 是新的常态?我认为这 一个问题,原因如下。

首先,它传递了一个关于软件的 复杂性和脆弱性信号。16GB 的内存需求只是在尖叫“这是一个庞大而复杂的软件,会以神秘的方式崩溃”。我知道这不是很科学,但这是基于经验。

其次,存在 简单的成本问题。超级便宜的托管公司 Hetzner 最便宜的 VM 每月花费 3.29 欧元,但如果您需要 16GB,您将每月支付 15.90 欧元——几乎是 5 倍。而且这是假设您可以在廉价的托管服务上运行。如果您按计算付费,或者您在一家大型公司工作,那么机器的成本可能会高得多。

在企业环境中也相关的是:很可能存在一些阈值,在该阈值以下,启动“小型”机器很容易(对于某些小型值),但高于该阈值,您将需要 恳求 豆子计数器、系统管理员或经理的 许可

最后,正如 Linus Torvalds 所说:

如果你能非常快速、非常好地完成某件事,人们就会开始以不同的方式使用它。

“如果它很小”,则同样适用。一种不同的用例是 在本地运行它,以帮助本地开发。如果您需要 16GB 的内存来运行 Sentry,您将面临使您的笔记本电脑运行缓慢的风险,或者至少必须考虑它。如果在 100MB 范围内,您可以直接运行它并忘记它。

哦,如果您想在 Raspberry Pi 上运行它,请忘记它,但不仅仅是因为 RAM。Pi 有一个 ARM 处理器,并且 Sentry 仅支持 amd64

这么多脚本…

文档的下一章是关于实际安装

您首先会注意到的是,安装是通过 shell 脚本完成的。这本身不是问题,但我也不是那种会先阅读就从互联网上运行 shell 脚本的人,所以我这样做了。

实际脚本大约 30 行,但每行都包含另一个脚本。算上这些,你会得到:

me@mymachine~/../self-hosted/install$ wc -l *.sh [...] 837 total


`

这不是我愿意投入的时间。特别是根据文档,这只是实现可靠安装的第一步:

打包用于小批量部署和概念验证

请记住,设置 Sentry 的全部原因是为了帮助同事。我不会让他们进行概念验证,我也不想成为维护 Sentry 安装的人。我也不打算告诉他们阅读 837 行 shell 脚本。

进一步搜索

最后,我进行了一些随机的互联网搜索,以了解自托管 Sentry 的人们的实际体验。以下是一些 引言

这是一个大量的 Docker 容器。事情会随机失败,或者可能会有很多流量,不太记得了。难以升级,或者会自动升级并破坏?。

如果你可以投入大约 1/4 到 1/2 的工程师,那么我认为这是值得的。请记住,它绝对是一个熊,现在有大量的有状态依赖项。

我不能说这令人愉快,可能是我最不喜欢维护或与之交互的服务

现在让我们假设这些不是 Sentry 自己的营销部门的宣传,也就是说,这些都是真实的。这些看起来都不是很有希望。而且由于我没有 1/4 到 1/2 的工程师可以投入到这项工作中,因此我将花费我自己的大量时间。

结论

我在甚至没有开始之前就放弃了自托管 Sentry。

我不会运行一个需要 16GB 内存、具有复杂的安装脚本并且已知难以维护的软件。我也不会向其他人推荐它。

那么这样做有什么好处吗?我想是的……这段小小的旅程让我非常生气,以至于我编写了一个 Sentry 的直接替代品,它可以在您能找到的任何廉价硬件上运行。我希望它能成为与我口味相同的软件的有用替代品。 About Terms Privacy Cookies LinkedIn Discord