I am currently developing a web application and am trying to figure out the best way to host it. I've looked around, used dozens of different phrasings, read hundreds of posts and comments. but none of them seem to answer this particular aspect of the question. they explain how to calculate the number of current users a particular instance of a app can handle. but not how determine where to go form there to reach your goal. I've looked at cloud, I've looked at VPS and I have of course considered dedicated all have different prices but in the end I realized it all comes down to which direction you need to scale (Vertically, Add more power to any one instance of the app via more CPU power and more ram; or horizontally, Add new instance of the app and load scale them)
Part 1
Lets go with a small scenario for now Lets say you have an API application. it takes HTTP requests and responds with JSON, weather it is built in Node, Rails, PHP or anything else is irreverent. Assuming you can estimate all these factors at peek hours: Concurrent Users: 100 -> 1000 -> N Requests per minute per user: 1? 10? 50? size of data transferred on average per request: 1Kb? 2KB? 5KB? 10?
How do you determine which direction is best to scale? is it the ratio of these factors? is there some point that one of these factors can reach where you will have to scale in the other direction to handle it?
Part 2
This time lets assume a different type of application. This time it's a web-socket app that handles real-time data exchange, like chat, or event notification (events pushed from a message Q like Redis or RabbitMQ) This app (form what I gather) will scale completely differently from the same factors as Part 1 how do you determine which direction to go?
Overall
I'm asking these question to figure out which type of hosting would be best for which app. which will give me more stability? which will let me keep more money in my pocket for the same number of users?