The initial server, Alice, couldn't handle the rapid growth from 500 users to 36,000 during the Twitter exodus. The move was necessary to scale properly and avoid legal issues with the ISP.
The core components include a Postgres database on a Hetzner metal server, PG Bouncer for connection pooling, Redis for caching, Sidekiq for handling background jobs, and Puma for the web application. Media storage is handled by DigitalOcean Spaces, and a CDN is used for caching media files.
Federation is managed through Sidekiq, which processes incoming and outgoing events across the Fediverse. Scaling challenges are primarily focused on Sidekiq queues, which can get backed up during high activity periods. The team is also working on redundancy for the Postgres database and web server.
Hackaderm costs around $1,000 per month, with the majority of the expenses going toward media storage. DigitalOcean provides the storage at a discounted rate, but the CDN costs are significant.
Hackaderm is part of the Nivenly Foundation, which receives donations and sponsorships. Contributions from individuals and organizations support the server's infrastructure and operations.
The primary scaling challenges are related to Sidekiq, which handles federation tasks. The team is exploring auto-scaling options for Sidekiq queues to handle spikes in activity. The database also requires redundancy to ensure failover capabilities.
Hackaderm allows individual account blocks and server-wide defederation. The moderation team is critical for maintaining a healthy community. The server also subscribes to defederation lists to block problematic content from other servers.
The main long-term risks include the rising cost of media storage and potential changes in legal jurisdictions. The team is also concerned about the sustainability of infinite storage and the impact on user experience.
Hackaderm performs weekly full backups and daily incremental backups, retaining data for 21 days. The backups are stored in a way that allows for quick recovery in case of a disaster.
Hackaderm has approximately 55,000 accounts, with around 11,000 monthly active users. The server has seen steady growth since its inception.
<context>托管 Hachyderm Preston Doster 加入节目,告诉我们运行一个拥有 55,000 个账户和 11,000 名月活跃用户的 Mastodon 服务器需要什么。 加入讨论Changelog++ 会员在本集节省了 10 分钟,因为他们让广告消失。今天就加入吧!赞助商:Sentry – 代码出错,修复更快。注册时使用代码 CHANGELOG 可享受团队计划 100 美元的折扣。不要只是观察。采取行动。Sentry 是唯一为开发者构建的应用监控平台,能够找到每个问题的根本原因。超过 100,000 个不断增长的团队使用 Sentry 快速发现问题。
公共 grafana 仪表板
有什么遗漏或损坏的地方吗?欢迎 PR!</context> <raw_text>0 一。
这是与 Justin Garrison 和 Autumn Nash 的 Ship It。如果你喜欢这个节目,你会爱上 The Change Log。这是周一的软件新闻,周三的深度技术访谈,以及周五的精彩脱口秀,供你周末享受。在你获取播客的地方搜索 The Change Log 就能找到它。Ship It 由 Fly.io 提供支持。五分钟或更短时间内启动你的应用。了解更多信息,请访问 Fly.io。♪
嘿,朋友们。我和我的朋友 Dave Rosenthal,Sentry 的首席技术官在一起。所以,Dave,我听你说过 trace connected。我知道 Sentry 的下一个大前沿是追踪这个指标平台。你是怎么到达那里的?开发者需要了解你对这个产品的思考吗?在我来到 Sentry 之前,Sentry 正在开发一个指标产品。
我们开始以更传统的方式构建这个指标产品,指标就像是有点不相干的。它们只是另一个数据源。它们是某个地方的另一张表。是的,你可以按时间排列它们。当然,你可以稍微深入了解一下,但实际上它们并没有与追踪连接在一起。在我们自己尝试之后,与用户一起尝试之后,我们从中退后了一大步。
意识到我们想要做的整整一类事情是无法通过这种不相干的指标来实现的。因此,我们改变了我们的 API,改变了我们的方式,现在我们真的在一个非常明确的方向上构建一个不是这些传统的、不相干的指标系统的指标系统。它是追踪连接的。
这样当你真正深入到一个实际问题时,我们可以获得那种丰富的调试上下文。你知道,这有权衡。这并不是那么简单,只是随意地在系统中记录随机指标。你必须在构建遥测时考虑这个指标实际上是如何与底层运行的代码结构相关联的。
但我们认为这是对用户的正确权衡,因为这就像是花一点额外的时间来弄清楚那个连接。但当你实际使用数据时,连接就在那儿等着你。所以小投资,大回报。这只是一个例子,说明我们如何在内部做出决策,以使我们的用户在这个追踪连接的理念上获得成功。非常酷。看到你如何思考实现这些项目的最终结果真是太好了。
看到你在幕后思考和迭代的方式真是太酷了。好的,朋友们,去 Sentry.io。使用我们的代码 CHANGELOG 可享受团队计划 100 美元的折扣。这基本上是四个月的免费使用。Sentry.io。使用代码 CHANGELOG。不要使用其他任何东西。使用我们的代码。这对你有好处。再次强调,Sentry.io。
你好,欢迎来到 Ship It,这是一档关于你推送后发生什么的播客。我是你的主持人 Justin Garrison,和我在一起的仍然是 Autumn Nash。最近怎么样,Autumn?嘿,大家好。今天的节目中,我们有一场我期待已久的对话,因为我一直对...
和 Massadon,特别是它的基础设施如何运行以及如何扩展,以及服务器之间如何通信感兴趣。我喜欢去中心化的事物,尤其是在非诈骗的金融方式上。所以这有点是我- 我喜欢你必须具体说明这一点。是的。
我喜欢互联网,对吧?互联网是你能得到的最去中心化的系统,并且由于很多原因,它的扩展性非常好。然后我看到这个 Mastodon 的东西,想,嘿,我们可以做那种互联网的事情,但在社交网络上是可移植的,让人们连接。我已经写博客很长时间了。我曾经有一个网站环的列表,我也会把人们发送到那里。人们如果足够老的话,应该还记得网站环。等等,什么是网站环?网站环不是一种在网站之间交流的方式,而是一种列出你也在阅读的网站的方式。
这就像是一个为拥有网站的人提供的推荐引擎。他们会说,我有一个博客。如果你喜欢我的博客,你可能会喜欢这些其他人的博客。他们会链接到其他人。所以这就像是一个发现引擎,在发现引擎出现之前。所有这些都是个人策划的。然后没有人更新它们。你就像我最喜欢的老朋友。就...
这很奇怪,因为我从来没有在电脑旁长大。我知道。我从小学时就爱上了电脑。而你是大学时才有的。你是怎么做到的,先生?你难道在某个时候就不出宿舍了吗?你是把自己锁在里面,找到了每个...你怎么有时间约会 Beth?你结婚真是个奇迹。我们是因为我修了她的电脑而认识的。我没告诉你吗?不,是的。这是最可爱的事情。
我在大学时需要一份工作,我得到了这份工作,因为走廊对面有一个实验室。宿舍里有一个实验室,这是我每天都在使用的,因为我自己没有电脑。我们能谈谈这有多可爱和书呆子吗?你修了她的电脑,然后你们结婚了 20 年。我没有修她的电脑。我是在她的电脑上工作。不,我没有破坏它。这是一个完整的事情,像是- 他就像,她必须回来,如果它永远不打开。我不知道。
我在 IT 部门工作。那是一个学生 IT 运行的事情。所以我们会修理电脑。我们也是第一批在整个学校拥有 Wi-Fi 的大学之一。因此,每年当人们来时,他们会带着台式机。2001 年没有人有笔记本电脑。因此,他们会带着台式机,像是,我需要连接到网络。我们会说,我们要为你安装一个 Wi-Fi 卡。你上大学时没有笔记本电脑?
是的。人们,我们有一个笔记本电脑租赁计划,以便人们可以租用笔记本电脑。如果他们想要的话。这些都带有可选的 Wi-Fi。这是,是的,这是一件事,但她带着一台台式机。那是一台旧的,呃,Mac tell。她把一台台式机带到你的,所有人都搬到了台式机。每个人都带着台式机,她需要一个 Wi-Fi 卡来连接。它在我们的商店或其他地方。然后我们就像,哦,我们需要把这个送到客户那里。我们必须把它带回宿舍。他们就像,好吧,我当时在工作。
“嘿,它在哪里?”“哦,是其他人认识她。”有人说,“哦,是 Beth。”
我想,谁是这个人?我不知道这个人在哪里,“哦,是的,她剃了头。我见过她。我想见她。我可以请你把那台电脑带回来吗?我真的就像,让我接手这个工单。我送了电脑,我没有做任何工作。好的,但这是我听过的最可爱的事情。他就像,兄弟,这是我的工单。别看工单。我在左边指着,我能看到电脑。我仍然有那台电脑,那台电脑是我们相遇的原因,我仍然有那台电脑。
这是一台糟糕的仿制 Mac,当苹果曾经授权他们的轻量级操作系统时。这是最可爱的事情。就像这是最温暖和模糊的事情。好吧,我再次相信爱情。就是这样我们相遇的,因为我没有修她的电脑。我在她的电脑修好后把它送给她。这是最可爱的故事。就像太可爱了。
我有点小泪水,就在那里。就像太温暖和模糊了。这是最可爱的书呆子故事。在 Bumble 和约会应用程序之前。该死。你是说我必须修理别人的电脑才能找到我的灵魂伴侣?这太糟糕了。如果你能修理某人的打印机,那可能是一个新的。我想要一个能修理我打印机的人。你的 3D 打印机什么时候来?永远不会。抱歉。抱歉,Beth。
无论如何。这不是我们要谈论的内容。我太苦涩了。你看到地上的线材了吗?你看到了吗?你看到了吗?它就像在困扰我。就像成吨的线材,但你很伤心,你没有 3D 打印机。你在那边用吹风机试图把它融化成某种形状。无论如何。
抱歉。这不是你听到的。Preston Duster 在电话上。你是 Twilio 的基础设施架构师,这完全不是我们想谈论的内容。不,今天不是。我有问题。那么 Twilio 是做什么的?Twilio 是做什么的?所以我会称我们为一家通信公司,对吧?所以我们通过构建 API 来抽象出拨打电话或发送 SMS 等事情的复杂性而成长。
我们现在已经扩展到许多不同的渠道,几乎进入了联系中心领域。谁在使用 Twilio,主要是为了什么,也许像,我是一个付费客户,仅供参考。是的。是的。是的。所以我们最初真的在向工程师营销,对吧?所以想要构建应用程序以发送 SMS 的人,对吧?我们所成长的就是 C pass 或者,
客户服务平台,实际上是关于的,所以当你从 Uber Eats 或 DoorDash 或其他任何地方下订单时,你收到的文本说,嘿,你的送餐员在等待你的订单,如果通过 SMS 发送给你,有可能是通过 Twilio,因为他们会使用我们的 API 来抽象出所有的复杂性。
我一直想要的事情是,我已经为 Twilio 号码付费多年,因为我生成了一个号码,差不多一年一美元。他说,谢谢。这就像,是的,你保留这个电话号码一年。它是一个洛杉矶的 323 号码。我记得那个号码是什么。我现在得查一下,但我每年都在想,是的,我会付一美元。我会保留它。这基本上就像一个域名。我喜欢工程师们收集号码。
域名。名字都很好,对吧?是的。但我一直想要 Twilio 的 iMessage 或 RCS 支持。我知道你不能谈论路线图或任何事情,但我最终去了另一个,SendBlue。我很确定他们是建立在 Twilio 之上的,他们在基本号码处理的基础上实现了 iMessage 的东西。但它确实正确地处理 iMessage。
所以我一直想,哎,我想要 RCS。我只想要直接的,因为现在苹果 iOS 也支持 RCS,我想,如何获得一个更好的 RCS 互动号码,比 iMessage 更可移植。是的。
是的,完全可以。我可以给你一些关于 RCS 的文档。那么现在可以工作吗?我上次查看它是在去年。是的。我会给你一些东西。太好了,兄弟。又一个项目。我得完成那个我一年前搁置的项目。酷。但我们想谈谈 hacky term。你是 hacky term.io 的基础设施团队的一部分,这是我所知道的最大的 Mastodon 实例之一。呃,
我知道外面有一些大的实例。显然,像 Mastodon Social,我认为仍然是最大的,可能是数量级的。我在你的服务器上。你在 Hackaderm 上?是的。所以我想谈谈,你已经有一段时间了。我知道 Chris Nova 和朋友们开始了它,它已经运行了很长时间。我喜欢你们运行它的方式,就是你们对数据的开放程度。你们就像,这是它是如何工作的。这是指标。这是我们如何扩展它。还有这些...
所有这些东西从外部来看真的很酷,哦,酷。我不必运行它就能看到你的仪表板。是的,绝对是。是的,我很幸运能与 Chris 相遇,当时她和我们在一起,你知道,大约两年前,对吧?当时有大规模的 Twitter 出走,对吧?这是第一波,对吧。
我知道,似乎每六个月就会有一波。是的,我们现在是第七波之类的。但 Chris 开始 Hackaderm,实际上是在她的地下室里运行的。有一台旧的 Dell PowerEdge,名叫 Alice,帮助我们度过了 Hackaderm 的最初日子。然后我们意识到,随着 Twitter 的那一波大潮,我认为我们从大约 500 人增长到大约 36,000 人,在几周的时间里达到了峰值。
所以,你知道,增长是荒谬的,对吧?这促使我们说,嘿,我们实际上必须走出地下室,建立一些适当的基础设施,对吧?所以就像我说的,我与 Chris 相遇,她就像,嘿,你想来帮忙吗?然后,剩下的就是历史了。所以在增长的浪潮中骑行真的很有趣。
尤其是,使用纯粹的开源软件,纯粹的去中心化软件,比如 Mastodon。是的,真的学习它以及它是如何扩展的,构建我们的帝国并调整它以服务于今天在上面的人们。她做不同的事情时真的很酷,她会做那种,
我不知道这是否会是 AMA,但她会谈论不同的基础设施以及她是如何构建它的,所有这些。那是 Mastodon 最酷的部分,她会如此开放,谈论她使用的不同服务器。
她会谈论她将如何进行维护,或者,你知道,所有那些酷炫的东西。她真的很酷,她会像直播一样。她就像,我只是要,我有一些事情要做。让我跳到摄像机前,我们来谈谈。这是 Macedon 上我期待的唯一几件事情之一。嗯。
是的。那么,使用官方的 Macedon 实例时,情况如何?因为像有分支,还有其他选项。我曾经使用过一个,Cloudflare 写的,呃,wildebeest,呃,它完全集成到他们的工作者中,诸如此类。我觉得这真的很酷。因为它是一个所谓的无服务器,呃,Macedon。呃,但升级和更改东西极其困难。但你们使用的是官方的 Macedon 软件,这是一个 Ruby on Rails 应用程序,带有一个 Postgres 数据库,对吧?是的。你说对了。这就是核心。是的。如果有人曾经运行过 Ruby on Rails,你将会处理 Sidekick。你将会处理 PG Bouncer,诸如此类,或者像传统的扩展方式,对吧?你能描述一下这个过程吗?嘿,我们从 500 个用户增长到 30,超过 30,000。
是的,完全可以。很棒的是,你实际上触及了生态系统中的主要参与者。因此,从底层来看。我们从 Alice 开始,那是一台托管所有内容的服务器,
计划是将事情拆分开来,对吧?就像你说的,Postgres 在底部作为数据库。我们最终在那里购买并实际在德国 Hetzner 的法兰克福数据中心运行金属服务器。因此,Postgres 就坐在上面。所以这是一个金属服务器。它相当大,具有足够的剩余容量以供增长,诸如此类。
而且应该有,这是我们必须去做的一个大项目,建立我们的二级副本,对吧?这样我们就有一些良好的故障转移,良好的冗余。但这就是底部,对吧?正如你提到的,随着我们向上堆叠,PG Bouncer,
绝对是为了连接池,并确保我们不会在那种意义上过载数据库。有一对 Redis,既做临时缓存,也做更永久的缓存,这有助于加快通过 Web 服务器的交互。随着我们从那里向上,你提到的 Sidekiq。Sidekiq 实际上是所有去中心化内容工作的核心。如果你能想象,在 Fediverse 中的任何时刻,
有很多事件正在发生,对吧?你必须在事情发生时将事件发布出去。你必须能够拉取正在世界上发生的事件,并在合理的时间内处理它们。因此,很多 Sidekick。所以我们相当一部分的时间和精力以及一些服务器容量只是确保这些工作能够完成它们需要做的事情。
对。我们有很多不同的队列参与其中,也有很多并行性。我认为,至少从我的理解来看,这就是我认为的 Macedon 和 Blue Sky 之间的核心区别,所有世界互动的重担都在各个 Macedon 实例上。
在每一个实例上,我喜欢一条帖子,我发送更新,我做一些需要告诉我在不同服务器上关注的所有人的事情,然后我需要听到所有其他人来自所有不同服务器的消息。因此,在单个服务器上,似乎是相当受限的。如果每个人只关注 Hackaderm 上的人,你可能没问题,对吧?你不会产生很多网络流量。你不会做很多内部处理,做那些事情。但一旦你开始让人们
关注其他服务器上的数十个人,或者很多人关注其他实例上的其他人,这似乎会给你的实例带来很多额外的压力。绝对是。是的。是的。联邦工作。很有趣。对,因为是的,正如你可以想象,随着社交图谱的增长,你必须与世界各地越来越多的端点进行交互。对吧?所以像,我们有一些人有一些非常大的关注者。
有趣的是,有时这会导致峰值,对吧?你可以去查看 Grafana,你可以查看我们的队列深度,看看某些事件发生的地方,仅仅因为有这么多的聊天和来回的互动。我记得很久以前,
Twitter 曾说他们有一个专门的服务器机架给 Justin Bieber。我不会感到惊讶。就像,因为架构,每当有一个大关注者发送更新时,它会造成如此大的流量,他们不得不扩展它。就像,我们只是有很长一段时间,他们在本地,他们有裸金属的东西。就像,我们有一个机架给 Justin Bieber。
这就像他的,它就像,哇,真是太神奇了。想想看,我想,哦,他多久互动一次?这无关紧要。就像,因为我们希望那样传达给想要看到他所说的事情的数百万人。然后他们回来与之互动,所有这些事情。所有这些工作都必须以某种顺序处理,它们必须协调并重新同步,一切。哇。是的,完全是。这是最好的故事之一,或者我想说的用例...
数据驱动的应用程序?是的,设计数据密集型应用程序。他们谈到当他们必须为非常受欢迎的 Twitter 用户与普通 Twitter 用户拆分架构时。这是惊人的,看到每个用户的工作量有多大。
Tim Banks 在几个月前的节目中谈到过这个问题,或者说,关于热门女孩的问题,对吧?他谈论的是 Tinder 版本,这真是疯狂,因为我们认为这甚至更有趣,因为人们使用旅行模式如此频繁,你知道我的意思吗?而且只是从一个地方移动到另一个地方,谁会想到这会是一个完全不同的原因,导致你必须改变架构?我们使用互联网和与不同应用程序互动的方式发生了多么大的变化。
不同的应用程序用于不同的事情,以及这如何导致不同的架构。
我是不是唯一一个会下载一个应用程序或访问网站,像是某些东西很慢或某些东西表现得很奇怪。我试图弄清楚它背后的架构是什么?因为我觉得很多时候我会想,哦,我想,我打赌这可能是一个 Sidekick 问题,对吧?就像他们试图扩展某些东西,像是有一个队列。试图诊断随机应用程序。我完全这样做。我只是想,我打赌这可能是某个地方的排队问题,有人就像,哦,你只是没有扩展这个部分,或者,你知道,重试或类似的东西。
是的,让我们看看。架构中的其他东西。所以 Mastodon Web 是一个 Puma 应用程序。因此,在我们的生态系统中,我们实际上只有一个实例。再一次,这是我们必须做的另一个小项目,就是建立一些冗余和扩展点。然后在我们最后的边缘是我们的 CD,我们称之为 CDN 边缘。
但我们在 Linode 或 Linode 托管一些东西,取决于你喜欢怎么说。我们在世界各地有存在点,您知道,仅用于缓存,加快速度。Linode 被 Akamai 收购了,对吧?他们是的,是的。所以我仍然停留在旧名称上。我很确定品牌仍然说他们有 Linode by Akamai 或类似的东西,是的。是的,所以我们有这些存在点,所以像西部、东部美国、欧洲,
日本,偶尔会点亮它们。你在什么情况下觉得你必须有一个 CDN?所以实际上,当我们从 Alice 从地下室迁移到我们当前的架构时,我们就在那时实施了,对吧?实际上,这其中很大一部分是 Mastodon 中涉及的流量是媒体文件,对吧?所以图像、视频、音频等等,对吧?以及它对核心服务器的压力,
即使有缓存也提供更好的体验。就像我们说,好的,我们必须做 CDN。我们必须有一些更接近我们的人。并且分发缓存以减轻核心服务器的负担。因此,这已经在架构中。如果我没记错的话,当它在 Alice 上时,限制是 NFS 存储,对吧?哦,是的。是的。它是后端存储的 NFS。现在存储在哪里?因为那是大量的数据。因为它在 CDN 上,但你有像
几百个 G 可能正在进来,哦,呃,轻松达到 TB,对吧?所以,呃,现在所有这些都在 Digital Ocean 上,所以我们正在使用他们的空间产品。没错,没错。好的,兼容 S3 的 API。不是要分散注意力,但你们是如何资助这个的?这是一个超级好的问题,呃,所以我们非常幸运,当我们,您知道,
在 Hackaderm 的整个生命周期中,对吧?我们是我们称之为 Nivenly 基金会的一部分,这是一个开源非营利基金会,Chris 创立的,大约两年前。我是那里的董事会成员。这就像是伞形组织。我们有一些人很善良地为我们做出贡献,相信这个使命。这些贡献的一部分也流向 Hackaderm。因此,我们有直接为 Hackaderm 贡献的人。我们有为 Nivenly 贡献的人。
这就是资金的来源。Nivenly 在 Hackaderm 之外做什么?是的,完全可以。所以 Nivenly,我们的目标是,您知道,这也是 Chris 的愿景,建立一个可以帮助开源项目真正识别我们所称的模式的基础。因此,我们如何开始新的开源项目?我们如何资助它们?我们如何帮助它们自我管理,对吧?这样贡献者、维护者可以保留对其各自项目的控制。
和方向以及愿景。因此,真正是关于教学和寻找不同独特的方式来支持他们。因此,再次,开源贡献者可以去做开源的事情。梦想真的能够以这样的方式支持他们,以至于他们可能不必有正常的日常工作。这真的很有趣。
是的,完全可以。我们现在有几个项目在进行中。所以 Hackaderm 是其中之一。我知道 Nivenly 已经存在了一段时间,Chris 和我在过去谈论过这个问题。你对这个...
Preston Doster 加入节目,告诉我们运行一个拥有 55,000 个账户和 11,000 个每月活跃用户的 Mastodon 服务器需要什么。 加入讨论Changelog++ 会员在这一集节省了 10 分钟,因为他们让广告消失。今天就加入吧!赞助商:Sentry – 代码出错,修复更快。注册时使用代码 CHANGELOG 可享受团队计划 100 美元的折扣。不要只是观察,采取行动。Sentry 是唯一为开发者构建的应用监控平台,能够找到每个问题的根本原因。超过 100,000 个不断增长的团队使用 Sentry 快速发现问题。
Justin Garrison – Twitter、GitHub、LinkedIn Autumn Nash – Twitter、GitHub、LinkedIn 节目笔记:访谈
公共 grafana 仪表板
有什么遗漏或损坏的地方吗?欢迎 PR!</context> <raw_text>0 资金来源是什么?因为我知道有捐赠方面的内容。其中一些是我实际支付的美元,还有一些是赞助,比如 DigitalOcean 正在赞助 HackyDerm 的对象存储。你们是否会分解支出去向?比如,有没有一条线说明 HackyDerm 的费用是多少?
是的。有趣的是,我是 Niven League 的财务主管。很好。所以是的,我们在后台跟踪所有这些。我们还没有,或者我甚至可以说,我没有定期发布这些信息。但我们的意图是每季度发布一次,并对我们获得的实物捐赠类型、会员捐赠类型完全透明。然后,是的,这些费用是如何分解的?
那么 Hackaderm 的成本是多少?目前 Hackaderm 的费用大约是每月 600 美元。因此,这笔支出的绝大部分用于媒体存储。好吧,那媒体存储的 CDN 部分,对吧?因为 DigitalOcean 的部分是赞助的,对吧?实际上并不是。所以我认为现在我们得到了一个小折扣。所以是的,DigitalOcean,如果你在听,赞助一下,我们很乐意谈谈。但没错,这一切都来自 Hackaderm 的资金。
那么你们是用捐赠提前购买硬件吗?是的,所以我们实际上是通过 Hetzer 租赁的。他们实际上... Hetzer 的定价非常合理,无论是金属还是他们的云产品。谁会想到?是的,我们从他们那里租赁了几台服务器。是的,这就是我们今天的运营方式。所以我们实际上现在不拥有任何硬件。我甚至不知道他们有云。我知道他们做...
裸金属的租赁,但这真的很有趣。是的,完全是。而且这实际上是 Hackaderm 的一个有趣的特点,或者说是特性,对吧?正如我们讨论的堆栈,所有这些组件都在不同的云中,对吧?我们明确选择不与其中一个大型云合作,把所有的鸡蛋放在一个篮子里。
我们的想法是,因为 Mastodon 的足迹相对简单。简单可能不是正确的词,但像... 如果你熟悉 Rails,那就简单了,对吧?没错。所以实际上我们托管的是一个应用程序。我们说,嘿,我们要走多云路线。因此,如果我们在其中一个云上遇到问题,我们可以轻松地将托管的那部分转移到其他地方。没错。
大家好,我和我的好朋友 Adam Jacob 在一起,他是 System Initiative 的联合创始人兼首席执行官,
我很高兴他能在这里,因为这意味着 System Initiative 已经推出了。Adam,我听说你推出了什么。是的。哦,我很兴奋。我们确实推出了。是的,我们在 9 月 25 日推出了什么。是的,你现在可以通过访问网站注册,三次点击就可以进入。然后你可以自动化基础设施。这太酷了。这是宇宙中最酷的事情。我对此感到非常自豪。
好吧,让我们提升一些人的水平。让我们提升 Terraform 的人、Pulumi 的人、AWS CDK 的人。随着 System Initiative 的推出,这些人正在以旧方式进行操作,对吧?是的,我的意思是,我希望这是事实。好的。
我认为,基本上,我们发现我们在实现我们希望通过 DevOps 和运营工作所取得的结果时,部分原因是我们使用的工具在某种程度上帮助带来了这些困难的结果。写静态代码、让你的朋友审查它要困难得多。在 System Initiative 中,你所做的是使用这个像活的架构图来组合你使用的所有不同关系。然后你可以编程这个架构图来完成你需要它做的所有事情。因此,它自动理解如何做诸如创建资源、删除资源或更新标签等事情。
但你也可以用你自己的自定义策略扩展它。整个过程实时进行,支持多人协作。假设你要构建一些基础设施。你必须去使用 AWS 账户。你要启动一个新服务。因此,你必须设置所有不同的组件,VPC 和
EKS 集群,以及 ECS 和数据库服务。你必须设置 IAM 规则。你需要做很多事情。使用 System Initiative,发生的事情是你注册后,会获得这个工作区,然后你会有 AWS 提供的所有不同架构资产的列表。你要做的就是把这些东西放入屏幕中央的这个大图表中,这基本上就是这个活的架构图。然后你将它们连接在一起,就像你绘制架构一样。
当你这样做时,它实际上是在编写代码来描述这些事物是如何工作的。并且它作为模拟运行。因此,它实时告诉你,这样做是否可行。所以你不必等待。没有漫长的反馈循环。我们实际上提前验证了所有这些基础设施和架构。然后你可以说,嘿,这看起来不错。这是我想在现实世界中看到的。你可以应用那个变更集。它会跟踪你必须做的所有不同事情,以便真正实现那种基础设施。
然后它就去做。然后在完成后,它也会跟踪那些事情。因此,你可以看到两方面。你可以看到你创建的现实世界中的真实事物,它与你认为你想要的模型相连。然后你可以用它来管理它。然后当你有自定义或调整或需要为自己构建的东西时,你可以直接在系统中实时编写这些内容,使用你用来做基础设施的相同变更集。
这就是使用 System Initiative 的感觉。这是有史以来最强大、直观、协作的工作方式。好的,System Initiative 已经推出。它是 GA,并且是未来。访问 systeminit.com。三次点击即可开始。他们确实有一个免费套餐,意味着免费。无需信用卡,你可以玩玩。再次强调,systeminit.com。那是 S-Y-S-T-E-M-I-N-I-T.com。
管理 Hecator 的团队有多大?这是一个轮换的团队。我们有一些核心成员,大约可以说有四到五个核心成员在这里,然后还有一些志愿者,他们会来来去去。
所以我们目前建立的基础设施的好处是,它相对稳定,对吧?像是可能导致它变得不稳定的主要压力源可能是另一个 Twitter 出走,对吧?像是另一个大规模增长。但即便如此,我们也为未来做了规划。我们有备用容量。
以及目前的关键规模点。所以是的,软件基本上就这样运行,对吧?而且大活动最终是像重大升级这样的事情,对吧?所以来自 Mastodon 上游的版本提升。因此我们上周刚做了 4.3.0,这是我们一段时间以来最大的升级。
然后我们做了 4.3.1,基本上没有什么,因为它非常简单。但通常,困难的升级是涉及数据库迁移的升级。这些总是最困难的。没错。只是因为你在处理真实数据。总是有一点恐惧,但我们有一些好的缓解措施,以防万一。还是 Rake 吗?
是的。所以这只是核心 Rails 的东西,对吧?Break migrate DB。好的,酷。那 Redis 的许可是否影响了 Hackatube 的运行方式?所以没有。但我们确实讨论过转向一些真正开源的东西。并且在同样的背景下,Terraform 转向 VSL 许可。我们谈过 OpenTOFU。实际上,到目前为止,我们已经...
我忘记了哪个版本的 Terraform。
但我们锁定了最后一个开源许可的 Terraform 版本。然后再一次,在某个时候,另一个小项目可能是,让我们去开放 Tofu。
你有多个云,Terraform 就很棒。就像,嘿,我们让这看起来像一件事,基本上。但你在 Hetzner 只有基本的几台服务器。你实际上是如何部署的?是 Terraform 创建我的服务器,管理我的服务器,然后像 Ansible 配置应用程序吗?是在这些服务器上运行 Kubernetes 集群吗?你在做什么?所以是的,所以没有那么光辉。所以我们实际上,再次,另一个关键的基础设施决策是我们很早就做出的,不使用 Kubernetes。
因为我们想避免引入的复杂性。再说一次,不要误解我的意思,我在日常工作中整天使用 Kubernetes。但对于这个,我们做出了一个关键决定,像是,嘿,它增加了间接层,尤其是当我们考虑网络和
以及你必须通过 Kube API 处理的抽象时。我们说,嘿,我们将把这视为一个简单的应用程序,对吧?所以,现在我会非常诚实,部署相当手动,对吧?所以是 SSH 并去做事情,对吧?你知道,我们在配置方面做了一些轻量级的 Ansible 工作,像是在主机启动后的后配置。但是的,在大多数情况下,实际上是手动的,对吧?所以像主机周围的核心基础设施是通过 Terraform 管理的。
是的。你就像,我得到一个 IP 地址,我要去做我知道如何做的事情,作为管理员。我认为很多人过于强调一切都需要自动化。我说,不,我运行过很多基础设施,在很多地方,手动步骤实际上对某些事情非常重要。是的,完全是。而且,有些运行手册是针对经常发生的活动的。因此,再次,Mastodon 升级,每次我们进行 Mastodon 升级时都有一个标准脚本,我们每次都运行,而且相对来说,它不是说无人值守。只是,
非常自动化,有人监视它,完成后就完成了。是的,也许一次升级需要,再次,没有数据库迁移,可能一次升级需要 30 分钟。
即使我们进行了 4.3.0 升级,我认为我们在大约两个小时内完成了。再次,基本上没有事件,非常简单。它只涉及一个花费更长时间的数据库迁移。你们有一组人会被通知 Mastodon 吗?我们实际上没有。所以我们目前的设置方式是,我们有一个正常运行机器人,它会监视,进行我们公共面向属性的合成检查。它会提醒 Discord。
我们有一些人在世界各地,我们有一个基础设施频道。如果有人看到什么,他们会去做一些事情。对吧?所以
所以没有像实际被通知的那样花哨。我是南加州 Linux 博览会的基础设施团队的一员。我们有一个 Slack 频道,有一个数据狗,像是,嘿,猜猜看?网站宕机了。有人说,哦,我在。我来检查一下。是的,绝对是。是的。然后为了继续观察堆栈,再次,另一个小项目即将到来。所以我们有 Grafana。Grafana 有一个公共网站。如果你想查看我们的公共仪表板,只需访问 grafana.hackaderm.io。
你可以查看公共仪表板,其中包含关键指标,对吧?不完全是 SLO 的水平,更像是 SLI,我们正在查看我们提供的不同服务的非常具体的健康属性。那需要登录。
哦,我可能得单独把公共仪表板发给你。我本来打算把它放在笔记中。稍后我会发给你。但你可以查看关键指标。再一次,正如我们之前谈到的 sidekick,这可能是我们监视的主要内容之一,sidekick 队列有多热?它们是否变得非常深?出于某种原因,它们是否被阻塞?如果它卡住了,你必须重启它?
你得做点什么,对吧?所以 Grafana 具有由 Prometheus 支持的主要可视化层,用于指标。我们正在手动注册服务器以进行抓取和类似的事情。不久前,我们设置了 Loki 和 Promtail 来抓取日志并将其发送到中心,因此它们也可以在 Grafana 中使用。还有...
从观察者的角度来看,还有什么?哦,即将到来的小项目是在 Mastodon 4.3.0 中,终于支持 OpenTelemetry。因此下一个小项目是获取 OTEL 收集器拆分并开始呈现,这实际上将非常重要,因为从 4.3.0 开始,他们还弃用了 stats D 项目。
我想,委员会。我们刚刚请了 Austin,Austin Parker 来参加节目,他在酒店董事会,这是一场非常有趣的对话。所以是的。太棒了。超级酷。是的。这将是一个有趣的小项目,我可能想在这个周末尝试做一些事情。所以是的,完全。
你说你经历了人们离开的波动,从 500 人到超过 30,000 人。今天有多少活跃用户?所以我认为我上次检查每月活跃用户时大约在 11,000 到 12,000 之间。所以,你知道,这仍然是很多人。所以我认为总账户数大约是 55,000。这也在公共仪表板上。我认为每月活跃用户大约是 11,000。酷。是的。
运行得还不错。你已经扩展了这些东西。red SQ 和 PG bouncers,还有其他你认为这是下一个会崩溃的地方吗?如果你达到 100,000 用户或 30,000 每月活跃用户,下一个会崩溃的是什么?是的,完全是。我认为就扩展而言,可能是 Sidekick,我们可能有很好的机会做得更好,可能像是反应式的自动扩展,甚至与 sidekick 一起,像是,嘿,我们有一个预定义的阈值,我们去启动另一个可能的机器,去运行 x 数量的 sidekick 队列,或者副本来处理负载,当我们在队列中落后或深度达到某个百分比时。我的意思是,这通常是压力最大的地方。我们看到事情变得紧张。Web 方面,你知道,我之前提到过,有一个项目去,像是,去那里增加一些冗余。这更多是从冗余和故障缓解的角度,而不是像
像是规模或压力点。它实际上表现得相当不错。然后,我的意思是,我总是害怕数据库,对吧?只是因为数据,数据就是数据,对吧?所以我认为那里有一些很好的机会。再次强调,较少从扩展的角度来看,因为 Postgres 确实做得非常出色。
运行得很好。所以更多的是,从读取副本的角度来看,可能从主数据库中卸载一些,但更多的是,嘿,如果大数据库宕机,我们是否有地方可以快速切换,而不必从备份恢复?那种事情。是的。你目前有多少个备份?所以现在我们每周进行一次完整备份。我认为我们保留这些备份的时间,我得再检查一下我们保留完整备份的时间是三周,21 天。然后
我们每天进行增量差异备份。所以从备份的角度来看,我们实际上处于一个相当不错的位置。这实际上非常好,尤其是考虑到你们的团队有多小,以及你们每月花费多少钱。没错。好吧,对我们来说也是如此,我们可以拥有这样的小团队,并且能够安慰地说,嘿,如果发生了非常糟糕的事情,比如说所有磁盘都失败了,像是那个主数据库。
我们可以恢复,并且有一个合理的,像是 RPO,RTO,对吧?我认为这也是因为你有一个非常有才华的团队。如果没有这么多经验,我不知道你们是否能以你们的人数来运营。绝对是的。是的,不要误解我的意思。我们拥有的人员,构建初始团队
架构以使我们到达这里,实际上执行它的人。多年来帮助我们的人,甚至那些只来一个月或两个月,做了一点事情然后离开去做下一个事情的人。每个人都很棒,对吧?我们绝对不会在这里。如果没有这些人,我们无法运行这个。好吧,你也是有才华的人之一。
我尽量提供帮助,你知道的。所以,但,是的,考虑到其他规模点,我总是回到 Sidekick,对吧?因为那是,随着 Fediverse 图的增长,那是压力非常大的地方。Sidekick 和数据库是你基础设施中最痛苦的部分吗?是的。
是的,句号。是的。我的意思是,Redis 是众所周知的,基本上就是这样。然后 Puma 是,没错,Puma 没问题。它在那里。没错。是的。一般来说,当我回想起我们经历的事件或挑战,或者我们经历的可怕时刻时,通常是,嗯,sidekick 队列被严重阻塞。怎么回事?
然后真正弄清楚调优。Hazel Weekly 在调优这些队列、并行性、队列数量、它们实际部署的位置等方面做了很多很好的工作。然后是数据库。Postgres。是的,针对 Postgres。然后基本上就是,给它很多能力,很多 CPU,很多内存,快速磁盘,并且让我们过度配置一切。
这样我们就知道它为此做好准备。这也很有趣,因为像那样,使用金属服务器的垂直扩展在成本效率上要比像,哦,让我扩展这个 EC2 实例要高得多,我的成本将增加四倍。但这在关系数据库中很困难,因为它们需要很多时间。
会接受你给他们的东西。你知道我的意思吗?是的,没错。所以每个人都在说,我们可以在 Postgres 上做所有事情,Postgres 是个怪物。但我认为我们也将了解到为什么我们需要非关系数据库或 NoSQL 数据库,因为每个人都在说,只需将所有内容放入其中。我说,我想你忘记了人们在关系数据库上遇到的扩展问题。但 Postgres 是 GOAT。
一切都在其上运行。没错,没错。是的。还有我们必须记住的另一件事是,你知道,因为它们是金属服务器,如果我们想要另一个,对吧。如果我们说我们要添加另一台服务器,那是一个需要一周的过程。
这实际上很快,没错。是的,不要误解我的意思。从 Hetzer 的角度来看,这是快速的,非常响应,非常反应。但这不是,嘿,我去 EC2 并运行实例。突然间,我在几分钟内就有了另一台机器,对吧?是的,没错。所以我们必须进行一些预先规划和前瞻性思考。再一次,这就像,嘿,让我们得到一个大盒子。是的。
你提到 Hazel,我们将在几周后请她来节目,但她和我谈论了基础设施的进展。我认为最吸引人的事情之一是,当它运行在 Alice 上时,
Chris 不断接到她的 ISP 的电话。你流量太大了,对吧?你需要一个商业计划,对吧?所以这也是一个动机,像是,我们实际上不能从某人的家中运行这个大型社交网络。没错。那是一个很大的部分。将其转移到像一个基金会的部分,再次,作为成为
Innova 的基础是一个很大的部分。然后还开始考虑数据驻留等问题,对吧?并且考虑我们运营的不同法律管辖区,我们有数据的地方。于是我们说,好吧,嘿,我们将非常具体地转移到欧盟。
而德国是一个非常具体的选择,对吧?因为那里提供的保护和法律的强度。我记得她发布了一张 Alice 在她地下室的照片,那太酷了。你几乎会忘记服务器为社交媒体做了多少工作,因为
一切都生活在你的手机和云中,看到一台物理服务器,大家都连接在一起,真是太酷了。并且那台来自某人家的物理服务器可以处理大约 500 人,像是,这是我的服务器。像这样,这很好。在 ISP 敲门之前,你需要任何东西,像是每个,
像是扩展出去,你不需要 PG bouncer 和所有那些东西。你就像,我有足够的磁盘容量,可能用一些清单来做到这一点。这可能不是很棒,但它有效。人们低估了,像是,我想去开一个博客。我想去做一些事情,像是只需从你的网站或你家中运行它。你有一个公共 IP 地址。你可以像 DNS 那样做,并且你甚至可以旋转它,所有那些东西。你可以从你家中做到这一点,开始而不需要去支付所有其他东西。
是的,绝对如此。Mastodon 项目做得非常好,我知道我说过我们不使用 Kubernetes 或容器化的 Mastodon。他们在构建这个小微生态系统方面做得非常出色,是的,如果你运行 Kubernetes,你可以非常轻松地说,我想要一个 Mastodon,然后你去应用部署,你就得到了一个,对吧?这从可接近性和低门槛的角度来看是超级酷的。
只要你知道 Kubernetes。只要你知道 Kubernetes。门槛实际上有点高。但 Rails 也是如此,对吧?如果你知道如何运行 Rails 应用程序,那么你就会觉得,哦,这一切都很熟悉。Rails 的整个目的就是让每个人都感到熟悉。如果你从一个 Rails 应用程序转到另一个,像是,猜猜看?这将以相同的方式扩展。调试它并查看发生了什么也会非常熟悉。
好的,但他们为什么要使用 N 这么多次?他们为什么要使用什么这么多次?对于 Ruby。当他们做像 N,N,N,N,N 而不是括号时。它让我发疯。
我只想知道是谁这样做的,为什么要用花括号?是的。给我花括号。因为你关闭括号时就像结束。你必须用计数的结束来阅读它。我花了很多小时找缺失的结束。我有闪回。是的。是的。我不是 Ruby 人,但我学到的足够多,足以让人感到危险,至少保持 Bastion 运行。所以。
我的意思是,我宁愿调优 sidekick 也不想再深入 JVM,对吧?我一生中做过的两个大应用程序都是 JVM 或 Ruby。我说,不,给我 Ruby。我会接受括号和结构。因为我讨厌无结构。你喜欢句子长的函数。没问题。你想要工厂。但你知道这很好,但我们知道我们具体要求它做什么。好的。那么是什么法律让你选择欧盟?像,
在德国具体是什么?是什么促使你做出这个选择?是的,绝对如此,所以 GDPR 显然是一个,像是一个,可能是最大的主导因素,对吧?再说一次,
我们拥有的数据类型非常有趣,对吧?因为在很多方面,我不会说它是 PII,意思是,像是,你知道,个人可识别信息。有时确实是。但它可能是,对吧?人们可能会发布有趣的 PII。但这是对发布者非常个人的信息,对吧?
再一次,我们的意图是让我们处于一个可以感到安全的地方,也许主流政府或其他什么不会出现并说,“嘿,Hackaderm,你正在托管这种类型的内容。我们要关闭你。” Mastodon 实例因这个原因而关闭。这甚至不是一个理论上的,“哦,不,这可能正在发生。”</raw_text>
Preston Doster 加入节目,告诉我们运行一个拥有 55,000 个账户和 11,000 名月活跃用户的 Mastodon 服务器需要什么。 加入讨论Changelog++ 会员在本集节省了 10 分钟,因为他们让广告消失。今天就加入吧!赞助商:Sentry – 代码出错,修复更快。注册时使用代码 CHANGELOG 可享受团队计划 100 美元的折扣。不要只是观察。采取行动。Sentry 是唯一为开发者构建的应用监控平台,能够找到每个问题的根本原因。超过 100,000 个不断增长的团队使用 Sentry 快速发现问题。
Justin Garrison – Twitter、GitHub、LinkedIn Autumn Nash – Twitter、GitHub、LinkedIn 节目笔记:采访
公共 grafana 仪表板
有什么遗漏或损坏的地方吗?欢迎 PR!</context> <raw_text>0 我和 Hazel 谈论这个话题时感到很着迷,其中一个原因是它作为 Nivenly 基金会的原因是为了保护那些在工作的人,对吧?因为有些人会说,你是这个东西的网络管理员,你要上法庭,我们会找你。对,没错。尤其是在一个充满 DMCA 删除通知的世界里,想想人们可以通过各种法律手段来追究责任。你能描述一下为什么这对像 Mastodon 这样的事情特别成问题吗?
如果我运行一个网站,那就没问题。没错,像 DMCA。是的,我的意思是,像内容,为什么其他人在其他服务器上发布内容对你来说是个问题?当然。是的,部分原因是,人们可以随意发布内容,对吧?而且,再次根据服务器的位置、当局、现行政府以及发布的内容类型,我们可能会
被置于十字准星之下,政府会说,嘿,你在托管这些在我们管辖范围内是非法或冒犯的内容。你需要处理它。否则我们可能会封锁你的网站,或者,嘿,我们可能会追究你的公司或你公司的个人,毕竟,你在我们的管辖范围内可能在做一些非法的事情。
所以找到那个甜蜜点,再次像德国那样,当我们进行迁移时对我们来说非常重要。看起来你对此投入了很多关心和思考,这很酷。是的,绝对是。我的意思是,最初的意图是,这个项目起源于 Chris 的地下室。目的是让这个项目能够存在很长时间,对吧?
对,再次,这就是技术架构、法律架构的重要性,尽管我们不是律师,但我们花了很多精力去思考这些,因为我们希望在五年、十年,甚至更多的时间里继续存在。
好的,朋友们,我在 Timescale 这里和我们的新朋友 Avthar Suwathan 一起。所以,Avthar,帮我理解一下 Timescale 到底是什么?所以,Timescale 是一家 Postgres 公司。我们在云端和开源生态系统中构建工具,使开发者能够更好地使用 Postgres。因此,使用它进行时间序列分析,以及最近的 AI 应用程序,如 RAG 和搜索代理。好的,如果我们的听众想要开始...
Postgres、Timescale、AI 应用程序开发。你会告诉他们什么?什么是好的路线图?- 如果你是一名开发者,你要么被要求构建 AI 应用程序,要么对这个领域的所有创新感兴趣,想要自己参与。好消息是,今天任何开发者都可以成为 AI 工程师
使用他们已经知道和喜爱的工具。因此,我们在 Timescale 与 PGAI 项目所做的工作使开发者能够使用他们已经熟悉的工具和数据库构建 AI 应用程序,而这个数据库就是 Postgres。这意味着你实际上可以提升你的职业生涯,构建新的有趣项目,你可以
增加更多技能,而无需学习一整套新技术。最棒的是,这一切都是开源的,PGAI 和 PG Vector Scale 都是开源的。你可以通过 Docker 在本地机器上启动它,按照 Timescale 博客上的教程,构建这些前沿应用程序,如 RAG 和搜索,而无需学习 10 种不同的新技术,只需使用 Postgres 和你可能已经知道并熟悉的 SQL 查询语言。
所以,是的,就是这样。今天就开始吧。这是一个 PGAI 项目,只需访问任何 Timescale GitHub 仓库,无论是 PGAI 还是 PGA Vector Scale,按照其中一个教程开始成为 AI 工程师,只需使用 Postgres。好的,只需使用 Postgres,使用 Postgres 开始 AI 开发,构建 RAG。
搜索 AI 代理,一切都是开源的。访问 timescale.com/AI,使用 PG AI,使用 PG Vector Scale,所有这些都在你的桌面上本地运行。这是开源的。再次强调,timescale.com/AI。你是如何处理的,呃,
因为像 Mastodon 也会从其他服务器缓存内容,我关注一些来自其他服务器的内容,即使我没有关注那个人,我也会从那个其他服务器获取随机内容。而且,这不仅仅是你的用户,你可以把你的用户踢出去,对吧?像某人一直发布一些非法内容。你会说,实际上,你不能在这里这样做,去别的地方。你基本上可以禁止他们。
但是其他人在其他服务器上发布的内容,你无法禁止那边的人。唯一的补救措施是像封锁对那个其他服务器的所有访问吗?是的。所以实际上,我会以两种不同的方式说这件事。Mastodon 在这方面做得很好。
但仍然可以继续做得更好,对吧?因为他们实际上开始构建一些不错的管理工具,就像你说的,本地你绝对可以说,嘿,这个成员,他们被禁止,因为他们发布了不符合服务器规则的内容或其他什么。但你实际上也可以对不在你服务器上的人这样做,对吧?所以如果来自 Mastodon.social 的某人正在发送垃圾邮件,假设,对吧,这实际上是非常常见的,你可以单独封锁那个账户。
对,即使他们在远程服务器上。如果你发现整个服务器,比如说有一个未经过管理的服务器或一个内容或立场可疑的服务器,不符合你的行为准则,你实际上可以完全与那个服务器断联。
对,这意味着在那里的任何活动都不再通过你的服务器转发,老实说,我喜欢你知道的,尽管我们在这里谈论基础设施,但对我来说,Hachyderm 的真正魔力在于管理团队,我的意思是,每个社交网络都是这样的,管理就是重要的事情,确实如此,最终,网络和你网络上人们的体验只与管理团队的质量有关。
这是我们的团队再次花费大量时间、思考和精力去思考,好的,
什么是管理?管理体验是什么样的?对于在 Hachyderm 上或甚至不在 Hachyderm 上的人来说,这应该是什么样的?因为总是有可能有人加入 Hachyderm 并开始从我们这里发送垃圾邮件,对吧?我们如何跟进?你知道,我们如何尊重地对待人们,但同时确保我们有良好的界限,以保持一个健康的社区,供我们的朋友们使用。是否有,因为你提到过,
转发阻止的事情,立即让我想到我会用一个 pie hole 来处理的事情,对吧?我有一个大的主机文件,我就像,不,你就是不接触任何东西。那是一个订阅吗?有没有已知的 Mastodon 服务器,你可以订阅一个黑洞列表,我们不允许那里的内容?是的,完全可以。所以我认为这是一个很大的,这对 Mastodon 潜在的演变点,像整个 Fediverse 实际上是要弄清楚这一点。
所以有许多服务或组织提供这样的东西。你可以说,好吧,我想订阅一个去中心化列表。再一次,这实际上是一个在社区中正在进行的非常大的辩论。他们应该是允许列表吗?他们应该是你订阅的拒绝列表吗?订阅在技术或社会层面上是如何工作的?所以是的,你可以。
对,再次,根据你的管理员如何管理你的服务器,有些人会这样做,有些人则不会。目前,这不是内置于核心的功能,像订阅去中心化列表的功能。现在这不是 Mastodon 核心的一部分。
不是在 ActivityPub 中。是的,正确的。所以像 Mastodon 是上游 Mastodon 项目。是的。因为我知道其他 Mastodon 服务器没有这些功能,他们甚至不进行转发,对吧?就像一个超级轻量级的,我可以为自己运行这个。我不做 Mastodon 服务器上真正繁重的事情。我不这样做。没关系。你不必做那些事情。但实际的订阅,确保这在服务之间有效,主要是针对上游 Mastodon 服务器。
我不知道这是否,我想这算是官方的。就是那个在 Mastodon.social 上的。是的。这与 Threads 有什么关系?对吧?就像 Threads 正在与 ActivityPub 进行对接,Tumblr 开始这样做。你看到流量有增加吗,或者,
你需要扩展、阻止或管理的新地方,因为 Facebook 拥有比你更多的基础设施。他们可以投入更多的钱和服务来解决问题,比如说,嗯,你知道,Sidekick,你只需获得一个完整的数据中心。我不在乎。这对我们来说无所谓。你是如何处理的,是否给你的实例带来了额外的压力?
是的,到目前为止,没有。现在,话虽如此,你知道,特别是像 Threads,实际上,我对他们的内部基础设施并不是很熟悉,他们是如何设置的,但你知道,他们开始参与有限的联邦。他们在选择性地说,我们想要这个功能来自这个东西,让你感到温暖和模糊,我们有活跃的活动。确实如此。是的。所以在 Threads 首次宣布“嘿,我们将联邦到 Fediverse”时,实际上,
这是一个大讨论,一个大争议,服务器是否应该允许这样做?
允许这样做,对吧?Meta 开始推动东西进入 Fediverse 是否合适?所以在这里有一个大讨论。从技术角度来看,是的,就像你所说的,Justin,担忧是,好的,如果他们对所有人都开启这个功能呢?你会把它炸掉。它会摧毁,没错,Fediverse。有些人认为,嘿,那就是计划,对吧?那就是他们将摧毁 Fediverse 并接管它的方式,对吧?但到目前为止,正如我所说,因为我认为
他们采取了这种有限的、谨慎的联邦方法。我们还没有看到任何东西,从 Sidekick 的角度来看,或者说一般的规模角度来看。这一点到目前为止没有破坏任何东西。现在这将改变未来,我不知道,但到目前为止一切都很好。我听到最近的播客,问负责 Threads 的人,他们在那边。他们问,像你们会不会默认开启?
互动。他说,绝对不会。我们绝对不会默认启用这个功能。你立刻就会想,好的,酷,我们永远不会让超过像,永远不会让双位数百分比的 Threads 用户去找到那个晦涩的设置,去说,像是,好的,联邦化我所有的东西,跨越所有的活动,随时随地。就不会发生,因为它不会默认存在,他们没有动力去这样做。
因为他们是卖广告的。我认为大多数人甚至不知道它的存在。对,这就是重点,对吧?就像,这是一个让极客们参与的功能。确实如此。是的。是的。就像你提到的广告,这也是一个大问题,再次与联邦模型有关,像,好的,Meta 会开始尝试通过联邦推送广告吗?
然后我在 Hackaderm 上看到一个广告。再一次,到目前为止,还没有看到这一点。显然,随着情况的发展,我们可能会改变我们的立场。我从来没有真正考虑过这可能是如何运作的,因为默认情况下,只有用户在进行收件箱和发件箱的握手。
但是是否还有其他元数据被发送,他们可以尝试推送内容给你,像是这个是,是的,所以像根据你所查看的范围,通常当你登录到像 Mastodon 时,你看到的是你的动态,对吧?就像,好的,我在寻找或关注的人和标签。你实际上可以更改范围,以查看在 Fediverse 中发生的事情,对所有你的服务器转发的内容。因此,在这种情况下,他们可以推送一条帖子,
他们可以有一个用户,所谓的用户,可以推送一条帖子,那是一条广告。它恰好来自 threads.net。并且它出现在那种全球 Fediverse 视图中。这可能是一个方式。你只需在那时信任他们,因为他们可以说,这条帖子有一百万个赞,而你没有办法验证或做任何事情,像,哦,是的,显然这是世界上最受欢迎的东西,我们应该向更多人展示。是的。并且根据目前 Mastodon 的工作方式,没有算法。
在某种意义上,事情并没有加权。可能会显示一些趋势标签,但就你的动态和帖子而言,它是线性的。先进先出。但如果他们说它有十亿个赞,那就是 ActivityPub 消息所说的,所以它必须是。我想他们也可以发送一堆
带有标签的内容以使其成为趋势,对吧?就像,哦,即使你没有向人们展示这个,这里有一堆东西,你没有办法验证。你没有任何方式,因为这是他们的基础设施向你发送内容,而你只是像,好的。是的,这就是联邦模型的有趣之处,对吧?或者说,实际上只是联邦本身,对吧?最终,它变成了一个信任网络,对吧?就像,
你信任这些其他服务器向你发送你希望你的人看到的东西吗?这是一个信任网络,它影响着你的网站,这很奇怪,对吧?因为像我的博客,我的网络环,我得到所有的内容。我的网络环,我信任那些人,因为我已经阅读他们的内容一段时间,但他们发布的任何内容实际上并没有影响我。
对。就像它没有出现在我的网站上。我很久没有在我的网站上有评论,因为我不想让你的东西出现在这里。如果我想听到你的意见,我会去社交媒体。我会在外面找到那个意见,但我不想让它混淆像,某人刚刚阅读了这个。
甚至像 YouTube 评论,对吧?我很高兴他们现在默认隐藏大部分评论。因为大多数评论都是这样的,这是垃圾,或者其他什么。就像,哦,这会影响其他人对像,我刚刚读到的东西的看法。是否我看到了我喜欢的东西?这无关紧要。因为其他人说这个糟糕。就像,好的,可能 10 个评论中有 9 个说这个糟糕。所以我就是错的。就像,
这实际上无关紧要。所以我在我的网站上关闭了那些东西,但你现在必须信任其他网站向你发送一些你无法验证的东西,这可能会影响人们如何看待那些不受你控制的东西,但以某种方式被聚合并展示出来。是的,绝对是。是的。这就是我们要回到管理,拥有良好的管理实践,一致的管理实践。管理是关键,能够阻止人们。
是的,绝对是。内容绝对会影响声誉。如果我们在某件事情上采取行动的时间太长,或者我们采取的行动被认为是错误的,
对。人们可能会说,哦,Hachyderm 的管理。你们,您们没有做到正确。我发现有趣的是,Mastodon 的管理模型基本上是服务器。虽然有个别的封锁列表,但最终你必须落在一个运行良好的社区服务器上,你信任管理员在为你的最佳利益行事。如果情况不是这样,你唯一的补救措施就是找到一个与你更契合的社区。
Mastodon 没有像蓝天那样的东西,蓝天有个别维护的封锁列表。就像有人说,嘿,这些是骚扰者。这些是我不喜欢的人。如果我不喜欢五个人的列表,你可以订阅我的封锁列表,你也可以不拥有那五个人。但 Mastodon 在个体层面上没有这样的东西,对吧?所以在个体层面上,我认为没有。我得再检查一下。
我知道有一些脚本可以让人们导入它们,并进行个别 API 请求来进行这样的封锁。Twitter 也有类似的东西。你可以订阅一个封锁
购买或其他东西,它会自动像这样访问你的账户,进入并说,好的,是的,我要封锁所有这些其他人也封锁的东西。是的,是的。此时,我知道在服务器层面上没有你可以说,嘿,我想使用 Mastodon 的社交封锁列表或其他东西的封锁列表的概念。那不存在。再次,有多个提案关于如何做到这一点,正在飞来飞去。然后,是的,在个体层面上,我认为那不存在。再次,我得再检查一下。
但就你的观点而言,是的,如果你发现自己处于一个不符合你期望的社区,你可以使用迁移功能进行移动。但显然这是一个沉重的代价,对吧?就像,迁移并不是带走你的内容,对吧?是带走你的元数据,带走你的关注者,带走你的身份和你的关注者。甚至不是带走你的身份。就像重定向你的身份。就像,哦,嘿,重定向到这里。对。对。这就像,我将其比作,如果我搬家,
我的新家在别处,我可以告诉邮局在 30 天内转发我的邮件。就像,嘿,如果有邮件寄到这里,请继续寄给我。这实际上是给我的。我不想要某些东西。请为我这样做。你看到这种情况发生得很多吗?你看到人们频繁地在服务器之间移动吗?你知道,这取决于。我是说,这又是 Fediverse 有趣的部分,图形总是在变化。服务器在不断出现和消失。所以我会说,总的来说,是的,我们确实看到这种情况发生得很多。
这也是我担心的事情之一,这些服务器被关闭,因为它们要么太贵,要么出于法律原因,人们对运行它们不感兴趣,或者其他原因。这就像我告诉他们转发我的邮件时,我的邮局关闭了,对吧?就像,现在那个邮局不再存在了。没有人有那个规则来转发你的邮件。抱歉,你只是一个新的人。是的,没错。就像,哦,嘿,X 网站离线了。就像那个域名不再响应,对吧?所以那里什么都没有。
对。立刻,我以为你是指 X,网站 X.com。哦,是的。哦,抱歉。X 又下线了吗?我想,哦,是的。是的。是的。我是以通用域名的方式提到的。是的。
如果 X 下线,你会在你这边获得更多用户。是的,我一直忘记那是现在的域名。我仍然称它为 Twitter。当我想谈论我喜欢的功能时,我也是这样称呼的。太棒了。X 是一个贬义词。失去你在 Mastodon 上的所有内容是令人害怕的。
有一个导出功能可以给你你的内容,对吧?就像它给你一个 zip 文件,类似于,嗯,因为人们忘记了 X 和 Facebook 也有这个。这是因为,当时,叫什么来着?Google Plus。不,是什么?是的。Google Plus 的波浪。那叫做。
我忘了。是的,就像它是社交网络。曾经有一场巨大的法律斗争,人们必须允许你导出你的内容。所有这些大型社交网络都有这个,叫做 takeout。没错,Google takeout。他们是推动这一点的,因为他们想让人们转向 Google Plus。所以我们将进行这场法律斗争,让 Facebook 这样做。我们将让 Twitter 这样做。我们将让
Instagram 这样做。因此,你可以访问所有这些网站,出于法律原因,至少在美国,我不知道世界其他地方,但你可以下载你的内容,他们给你一个 zip 文件,就像 Twitter 导出,对吧?如果你导出你的数据,你会得到一个小型网站,它向你展示你的所有内容,所有的东西。其想法是,你可以去其他地方并将其导入。
到另一个社交网络。就像,嘿,这是我所有的东西。请将其导入为你的东西。我知道有一些项目围绕这个开始,像,哦,我们将把你的 Twitter 放到 Tumblr 上。我们将做这些事情。但它从未真正大规模流行。然后 Google 感到无聊,关闭了 Google Plus,所有通常发生的事情。我可能会导出我的 Twitter 动态。我删除了我所有的 Twitter,并保留了一个导出文件。所以我有一个导出文件。你能否批量删除
你的 Twitter 而不删除?不再可以。因为 API 限制,嗯,你以前可以这样做,所以我在 API 限制出台之前做到了。因此,你可以支付服务费用来批量删除你的 X 帖子。因为他们会说,我们将支付以获得更多的 API 配额给你。嗯,还有一些免费的脚本可以运行。它会说,嘿,删除我的最后 2000 条。然后你下周必须再次运行它,接下来的一天。是的,现在我已经
转移了很多到蓝天,我想我可能会批量删除我的 Twitter,因为那个家伙正在做的阴暗事情。你今天看到的事情吗?
关于他声称他与普京交谈的事情,就像每次都一样,像他拥有我们所有人的数据的数量,是的,我删除了 16 年的内容。我在那个网站上,我真的很享受它,我只是说,不,我不这样做。就像,我必须离开,我只是不想为他正在做的错误事情贡献数据。尤其是在看到像
是的。
开始超越 Twitter 时,我想,没什么好处。这太恶心了。我不想再要它了。完成。走吧。是的。有一件事让我想起,回到 Hachyderm 的最大成本是存储。对。是媒体存储。因此,我们可能需要在不久的将来弄清楚的一件事是,嗯,无限的、无界限的存储的成本是什么?如果我们永远保留所有东西,对吧。
我们将无法运行 Hachyderm,对吧?所以在某个时候,嗯,归档是什么样的?然后用户体验的影响是什么?就像,好的,如果我想导出 16 年的 Hachyderm 历史,我会失去我发布的前 14 年的图像和内容吗?这是真的。是的,这会让我感到难过。是的,确实如此。但是与此同时,我们不能永远保留那些东西,因为那样的话,你知道,我们每年可能会在 S3 存储上花费 10,000 美元,或者其他什么,对吧?
是的。这很有趣。因为你希望它能存在很长时间,而存储成本不会降低。是的,就像,什么是平衡,对吧?我的意思是,确实有一个平衡,关于你在 CDN 中保留多少,但仍然有一个热、温、冷的存储层次的平衡。你认为还有其他长期风险吗?哦。
其他长期风险。我是说,从客户体验的角度来看,我认为这是,或者说消费者体验的角度来看,我认为这可能是主要的风险,对吧?就像,是的,存储成本只会不断上升。其他大问题可能是政治管辖权、法律管辖权类型的变化。这总是一个问题。对我来说,这些将是最大的风险,对吧?