When we talk about scaling a server, we often refer to two things
- Scaling up (vertical scaling)
- Scaling horizontally
Scaling up means adding more compute resources to your server. If your server had 16 GM RAM, scaling up by 16 GB increase it to 32 GB.
Scaling horizontally means adding more servers to your environment. If you initially worked with 16 GB RAM servers and would like to get to 64, you could add 3 more 16 GB servers.
Which to choose and when?
Choose vertical scaling if your load increased or is expected to increase by a fixed/fairly-constant amount.
Due to limitations on hardware upgrades, there are limits to how much computing power can be added to one machine. So vertical scaling isn't always possible. That's where horizontal comes in.
Horizontal scaling offers you the opportunity to technically add unlimited power to your server stack if resources are unlimited. Use horizontal scaling if your app needs more uptime guarantee or the load it receives exponentially increased or is expected to increase.
Not handling scaling yourself
If you don't want to handle scaling, your best option is serverless functions. Serverless functions abstract scaling so you only focus on your app. The best feature of serverless functions is that you only pay for what you use.
Thanks for reading. Adios ✌🏾🧡.