Is running multiple process groups one of the approaches to app scaling?
The canonical example for why you may want to have more than one process group in your app is if you have a web server which utilises an asynchronous job queue.
In that case, you’d have an app (or sometimes people call it web) process group, which is configured with a run command that boots the web server, and you’d have something like a worker process group, with a run command that boots a job queue worker.
Specifically, the job queue worker would not do any web server work, it exists only to process jobs, and vice versa for the web server Machines.
If you have two process groups, it’s very easy on Fly.io to vertically and horizontally scale them distinctly, so maybe that is what you were getting at?
Usually, “scaling” (without any other context) would refer to vertical/horizontal scaling of your one-and-only process group, so not totally sure I’m following your question, but hopefully the above is useful.
My answer: not really. Running multiple instances of the same image is an approach to scaling (horizontal scaling). Running multiple apps is an approach to segmenting an application so it is easier to build and maintain (though maybe that does help scaling efforts as a second-order effect).