I've got a Rails app deployed on Heroku. It's getting a ton of traffic and it's lagging as a result. I'd like to: 1) make the app run faster and 2) make it so that the app can accommodate heavy traffic on any given day. I read about Heroku's "dynos" feature and have a few questions. Here's the Heroku explainer on what dynos are:
Heroku docs:
The containers used at Heroku are called “dynos.” Dynos are isolated, virtualized Linux containers that are designed to execute code based on a user-specified command. Your app can scale to any specified number of dynos based on its resource demands. Heroku’s container management capabilities provide you with an easy way to scale and manage the number, size, and type of dynos your app may need at any given time.
My questions:
- Increasing my app's dynos count means that I'm increasing the number of containers that will execute its code -- correct?
- Will increasing my app's dynos count make the app run faster? And so, the more dynos (containers) my app has, the greater the app will be able to withstand increased traffic? Is that the correct way to think of it? Increased dynos === increased performance ?
- I currently have 1 dyno and my app runs slow whenever it's hit w/ a lot of traffic. What factors should I consider when determining the optimal dyno count for my app? I can imagine the size of my app is one of those factors -- if so, where can I check to see how big my app is?
- Besides possibly increasing my app's dynos count, how else can I ramp up performance, with regarding to making my app being able to withstand increased traffic and not lag?
- Are there any negative side effects to increasing the dynos count?
Thank you in advance for your help with this! I'm a software developer and I can deploy an app to a virtual platform to get it in production -- but I don't know much about dev ops. Halp!