has anyone tried to deploy the docker image to azure? I saw there is some official documentation for AWS but I have a $150 azure credit per month and if I can figure out how to deploy the docker image to azure container apps I can get another server going.

1 point

Can someone explain to me what’s the point in having a lot of small instances of something like Lemmy?

I’m very familiar with Azure, and looking at the docker-compose file and AWS setup, it’s very straightforward to setup a simple instance on Azure container apps. How much it costs you will highly depend on what you want to do with it and how you expect it to be used.

Like, how much traffic are you expecting?

permalink
report
reply
1 point

I’ve been trying to setup a working instance using container apps, web apps for containers and ACI, but it remains finicky. Do you know of a bicep or deployment script that does this properly?

permalink
report
parent
reply
2 points

The idea of having several instances is an architecture choice. Instead of having all the users and content served by a single monolith, the users and the content are spread around several instances that then talk to one another in the process called federation to serve that content for other instances.

This spread out architecture allows for lesser hosting costs per instance and if an instance goes down it does not mean the entire service goes down as a whole. You may experience technical difficulties on one instance while the rest are completely fine, just unable to get stuff out of the instance. Additionally, it allows for easier moderation as moderators (admins?) are instance specific. You don’t have to moderate the whole of Lemmy, keeping your own house clean is enough. This means you are likely to have a higher ratio of mods per users with more instances, which leads to better quality in moderation work. Then if some other instance is not behaving, stop federating from them to yours.

And then some. I hope this at least explains some of the design choices at fediverse?

permalink
report
parent
reply
2 points

Thanks for the reply. If you don’t mind, I still have few questions.

I understand the value of a distributed architecture and federation. What I wasn’t sure about is the value of tons (thousands? hundreds of thousands? millions?) of small instances vs few hundred or thousand large ones.

This spread out architecture allows for lesser hosting costs per instance and if an instance goes down it does not mean the entire service goes down as a whole.

It seems that federation would put more pressure on all popular instances, no? the more popular an instance, the more likely others to want to federate with it, the more work it needs to do to push data, the more calls, etc. I understand that relays could spread out the load, but you’re just pushing the problem one more level. I already see wildly different numbers of comments on the same thread between the different instances depending on the home vs federated, with low usage (talking about <100 comments). It seems to take a long time for things to sync, and some comments don’t seem to sync.

And while sure, your own personal instance of Lemmy might be up and fine, if the popular instances you federate with are down, you’re essentially cut off still, right?

Additionally, it allows for easier moderation as moderators (admins?) are instance specific. You don’t have to moderate the whole of Lemmy, keeping your own house clean is enough.

You have to moderate any instance you allow to federate with still, right? Like either you lock down which instances you want to federate with (have an allowlist) or you block abusive instances (have a denylist) either way it’s a lot of management still. More flexible, for sure, but not exactly a walk in the park, right?

permalink
report
parent
reply
1 point

I think you sort of answer your own question when you wonder what the value of having tons of smaller instances versus a smaller number of larger ones as you discuss the stress of federation from the larger instances soon after. Similarly if content is split between multiple instances any single one going down is going to be less noticeable.

As for moderation, everything does not federate everywhere at once, there needs to be some interaction between the instances first (like subscriptions to communities) for things to really start transferring over. Yes, moderation will still take work, but you don’t have to address the entire fediverse at once.

As for

I already see wildly different numbers of comments on the same thread between the different instances depending on the home vs federated, with low usage (talking about <100 comments). It seems to take a long time for things to sync, and some comments don’t seem to sync.

I cannot say I would have explored the effects, so I can’t really comment on the topic. If the delays are significant and there’s straight up things not getting federated, that’d be an issue and should be fixed by the maintainers. Lemmy remains relatively new.

permalink
report
parent
reply
1 point
*

I haven’t used azure but if you use the ansible installation method, it will install everything into an instance (whatever they are called in azure, the typical computer virtual machines).

But you need a public domain name to get let’s encrypt certificates to work. So you should buy a domain name and point it at your instance first.

If you have that, the ansible install will set everything up, and run stuff inside docker for you.

permalink
report
reply
1 point

I’m actually considering doing an instance on gcp cloud run, just because my main work is in gcp and it’s a pretty decent way to run containers.

I’m thinking I might do a build of the image per the doco via GitHub actions and push the image into artifact registry (GCP service)…

permalink
report
reply
1 point

If you get this working can you make a write-up on how? I’d like to do this as well.

permalink
report
parent
reply
2 points

For sure. Shouldn’t be too hard just need to sit down and spend a good block of time on it.

I’ll probably use a bit of either pulumi or terraform, if that’s ok!

permalink
report
parent
reply
1 point

You can use Lemmy-Ansible to install Lemmy into whatever Azure provides. Be it containers, VMs, or native hardware.

permalink
report
reply
1 point

My job is all on Azure, but only in their SaaS offerings so I’m not too familiar with container apps. Definitely interested, I might experiment with it.

permalink
report
reply

Programming

!programming@beehaw.org

Create post

All things programming and coding related. Subcommunity of Technology.


This community’s icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

Community stats

  • 69

    Monthly active users

  • 320

    Posts

  • 3.3K

    Comments