Hello guys,
I am currently leveraging the Hobby Plan for a small application that I’ve developed. The application, fortunately, has been gaining significant traction and is growing consistently.
Since I’m relatively new to the world of DevOps, I find myself facing some uncertainties on the best way to scale my application effectively. Specifically, I am unsure about whether I should focus on increasing the VM’s RAM or the number of VMs itself.
Could anyone provide some insights or guidelines on when it would be appropriate to upgrade the RAM or increase the number of VMs? Are there any specific benchmarks or indicators that I should be looking out for to make these decisions?
Furthermore, I have been considering upgrading to the Launch Plan. Would this be a beneficial step for my growing application? If so, could you kindly elaborate on the advantages that the Launch Plan could potentially offer over the Hobby Plan?
Thank you in advance for your time and assistance !
I have been considering upgrading to the Launch Plan. Would this be a beneficial step for my growing application? If so, could you kindly elaborate on the advantages that the Launch Plan could potentially offer over the Hobby Plan?
If your app is getting serious, having a plan would definitely beneficial, specially because paid plans include email support. You can read more about plans and pricing at Plan Pricing · Fly and Fly.io Resource Pricing · Fly Docs.
Could anyone provide some insights or guidelines on when it would be appropriate to upgrade the RAM or increase the number of VMs? Are there any specific benchmarks or indicators that I should be looking out for to make these decisions?
There is no right or wrong answer on whether you should vertically scale(adding more resources to a server) or horizontally scale(adding more servers).
For example, a game server, or a real-time application might benefit more from vertical scaling; but a static website, or the average REST API might benefit more from horizontal scaling.
That is to say it depends a lot on the nature of your app and the bottlenecks you expect.
That said, most apps benefits from having at least 2 machines for high availability/redundancy, so if one machine fails, your app won’t go completely down since it will have a second machine to support it.
If you still are unsure about how to scale your app, I’m happy to discuss it further if you provide more details of your app
I’m building a chrome extension that allow my user to have translations of word from say french to english while watching netflix, so potentially, a lot of users would make request to my API to get real time translations.
Do you think I should scale the machine count to 2 or even 4?
Yes, I think you should scale to 2 machines for high availability. Beyond that, I can’t give you an answer because it depends on your app’s needs.
I recommend you starting with 2 machines and monitoring your app’s resources usage. From your screenshot, it seems your app is running on shared-cpu-1x with less than 1GB of RAM, so instead of adding more machines, you might want to increase the RAM/CPU of the 2 machines before adding more machines. But again, it depends on your resource usage.
You can also check Automatically stop and start Machines · Fly Docs, which allows you to have machines on “stand-by”. So you could have 2 machines always running, and 2 extra machines stopped. The stopped machines would be automatically started when needed.
I will pay only for the request made right or by the amount of vms running ?