BalenaCloud is using pools of servers dedicated to each function within the stack; in the case of openBalena you’re running the API, database, registry and VPN services all on one machine so there is additional load on that single box. If you’re planning to use upwards of the 1000 devices we recommend as a ceiling for a single-box solution, then you would need to look at running the different services across multiple machines, so that you can provision the hardware more appropriately. As an example, you might wish to look at using a managed instance of Postgres so that you can scale it on-demand as your fleet grows.
I have no significant experience on openBalena, but the scaling issue should be solvable with Kubernetes. Since all of the services in openBalena are docker images, it should be possible to write helm charts and deploy to e.g. Azure Kubernetes Service or Google Kubernetes Engine.
With that many devices I’d say Kubernetes should be the first choice to explore, you can even get managed Postgres from both of the cloud solutions these days.