Hi, I’ve seen a variety of Mastodon on Aarch64 resources, including a very nice tutorial on running an instance on OCI: GitHub - xmflsct/oracle-arm-mastodon
But I’ve noticed several Mastodon instances falling over under load - and scaling applications like this should be a strength of Ampere. Anyone interested in using Mastodon as a reference workload for scaling on OCI or GCP? I imagine it will be more write-heavy of a workload than WordPress - should be fun to dig in and see how well it scales!
@vielmetti I remember you mentioned getting Mastodon working on a Raspberry Pi when we spoke recently - any pointers to good resources? Interesting in helping with a new instance just for kicks?
Kris Nova, one of the admins for hachyderm, a popular open source community instance of Mastodon, has been posting some awesome articles about their experiences scaling Hachyderm:
Having been operating my own micro-instance for about a year (including an exciting mastodon 3.4 → 4.0 migration) I would not recommend the “from scratch” approach laid out in Tim’s blog post. It’s nice for “getting to know” Mastodon from a dev perspective, but this set-up will ultimately be hard to maintain and to automate (let alone back up, restore, monitor, scale, etc.).
Nova’s posts are a lot more helpful in this regard - they are operating a distributed, geologically co-located instance for tens of thousands of active users, including multiple big accounts with thousands of followers. The posts focus on operations and on scaling and share quite a few valuable insights.
For single-node deployments of a maintainable, scalable Mastodon set-up we’ve been dabbling in deployment automation in the Flatcar project a while ago: GitHub - flatcar/flatcar-mastodon: Automation for deploying a Mastodon node on Flatcar . While this approach takes all the excitement out of the initial set-up (which is what Tim’s post exclusively focuses on), it comes with maintainability, observability, and back-up built in. It’s entirely based on Docker container images (the repo only contains meta-data and scripts to set things up) so it should transiently work on ARM64 (though I haven’t tried that yet). The back-up integration in particular allows for “cloning” a node into a larger instance size, hence vertically scaling the service.
TL;DR: everything scales reasonably well until you hit postgres limits, at which point you need to tune postgres This reflects my own experience with scaling Mastodon.
Here are two other links for information on Mastodon. This post is about the architecture of Mastodon and this one is a step by step guide on how to create an Mastodon instance. There are some quirks to the tutorial.
We will get a tutorial that will walk you through all the steps to get Mastodon up and running soon.