On the Fireside Fedi interview with Jerry ( the admin of Infosec.Exchange Mastodon instance ) a scary truth was suddenly revealed ( on 34:11 ): Just to keep the instance up and running he needs to spend up to $5000 a month, pretty much out of his pocket. Donations to the instance barely cover any of that. And if he will ask people to pay to use it, they will, rightfully so, switch to a different instance.
Provided there is an “upper limit” on what scale we are talking, Ive often wondered, couldn’t private users also host a sharded copy of a server instance to offset load and bandwidth? Like Folding@Home, but for site support.
I realize this isn’t exactly feasible today for most infra, but if we’re trying to “solve” the problem, imagine if you were able to voluntarily, give up like 100gb HDD space and have your PC host 2-3% of an instance’s server load for a month or something. Or maybe just be a CDN node for the media and bandwidth heavy parts to ease server load, while the server code is on different machines.
This kind of distributed “load balancing” on private hardware may be a complete pipe dream today, but it think if might be the way federated services need to head. I can tell you if we could get it to be as simple as volunteers spinning up a docker, and dropping the generated wireguard key and their IP in a “federate” form to give the mini-node over to an instance, it would be a lot easier to support sites in this way.
Speaking for myself, I have enough bandwidth and space I could lend some compute and offset a small amount of traffic. But the full load of a popular instance would be more than my simple home setup is equipped for. If contributing hosting was as easy as contributing compute, it could have a chance to catch on.
Something similar is available for PeerTube:
That’s not really how it works. If it was made to work that way, it would still be a relatively small group donating their own compute resources to subsidize everyone else. Which is what we already have, and isn’t very scalable.
I responded above, but my point kind of was that it doesn’t work that way, but as we rethinking content delivery we should also rethinking hosting distribution. What I was saying is not a “well gee we should just do this…” type of suggestion, but more a extremely high level idea for server orchestration from a public private swarm that may or may not ever be feasible, but definitely doesn’t really exist today.
Imagine if it were somewhat akin to BitTorrent, only the user could voluntarily give remote control to the instance for orchestration management. The orchestration server toggles the nodes contents so that, lets say, 100% of them carry the most accessed data (hot content, <100gb), and the rest is sharded so they each carry 10% of the archived data, making each node require <1tb total. And the node client is given X number of pinned CPUs that can be used for additional server compute tasks to offload various queries.
See, I’m fully aware this doesn’t really exist on this form. But thinking of it like a Kubernetes cluster or a HA webclient it seems like it should be possible somehow to build this in a way where the client really only needs to install, and say yes to contribute. If we could cut it down to that level, then you can start serving the site like a P2P bittorrent swarm, and these power user clients can become nodes.
I realize that is not how the fediverse works. I’m not speaking about the content delivery as much as the sever orchestration.
That’s why I’m saying if somehow it could work that way, it would be one way to offset the compute and delivery burdens. But it is a very different paradigm from normal hosting. There would have to be some kind of swarmanagement layer that the main instance nodes controlled.
My point was only that, should such a proposal be feasible one day, if you lower the barriers you could have more resources.
I myself have no interest in hosting a full blown private instance of Lemmy or mastodon, but I would happily contribute 1tb of storage and a ton of idle compute to serving the content for my instance if I could. That’s where this thinking stemmed from. Many users like me could donate their “free” idle power and space. But currently it is not feasible.
Instead of going for these complicated architectures, it would be better to simplify and make activitypub less dependent on server software.
Great link, and I fully agree. If it’s possible anyways.
I think that would just be a different instance.