I’d like to know some more about the infrastructure and scalability of openBalena. Just to know how it works and some practical things.
First of all, I know openBalena consists of the following things (and please, correct me if I’m wrong):
- haproxy (functions as a forwarder afaik)
- VPN (openVPN based)
- Registry (For provisioning devices?)
- S3 (For storing container images/releases?)
- cert-provider (For Let’s Encrypt certificates)
Now, for future reference, I’d like to know some more about the following things:
I’d like to setup an infrastructure around my openBalena instance. In other words, my openBalena server now runs on 1 server, which has 2vCPU’s, 4GB RAM and 80GB SSD. It only has a few devices, so probably no issues there. But in the near future, it’s possible that a couple of hundred devices will be registered and connected to this instance. What’s the best way to setup my server infrastructure? And do you have some predictions about what hardware to use? Can I create some kind of load balancer? And instead of the S3 container running on my 80GB SSD, is it supported that I use another volume for this?
Because more and more devices will be connected, scaling is a big thing. The VPN is probably one of the things that need scaling the most. In the open-balena vpn repository, there’s a small explanation that you can scale. But is it as simple as setting
BALENA_VPN_GATEWAY=<openbalena-server>and off it goes? And how about some of the other containers, how can I scale those? For example, running multiple API’s for load balancing or multiple redis/db instances for redundancy?
And last but not least, are there some hardware requirements that you’ve to take into account? For example, a VPN server needs 8GB RAM, but the API needs lots of CPU. Of course it’s very hard to say: You’ll need this much RAM and this much CPU for XXX devices, but an estimate would be more than welcome!
I can’t imagine that I’m the only one with these questions, because openBalena is an awesome project and I’m sure many others use it. So feel free to add some more questions (and answers of course!), because it’s not a topic only created for me, but for many others that are using or are going to use openBalena!
Thanks in advance!