What to Expect When You’re In the Cloud: First year tips, tricks and tutorials is a series of posts appearing weekly that will highlights the unique experiences, questions and successes individuals have their first year in the cloud. Posts are based on clients and non-clients alike. To submit your question, or story, tweet @Bluelock.
Continuing our series highlighting first year lessons learned and questions answered, today’s question focuses on vertical and horizontal scaling.
Scalability is a key reason a lot of users move to cloud infrastructure as a service. Cloud is dynamic, so you don’t have to be exactly right the first time when it comes to what your application needs in the cloud. You can, and should, use it as a learning period to better understand what your application resource needs will be as it stabilizes.
Bluelock CTO Pat O’Day explains, “If you have a new application and you’re not sure how much it will need, you can start with a small footprint and resize the application accordingly as you have success.”
There are two different ways to scale in the cloud. Vertical scaling refers to when you scale “up”. This means you add resources like memory or storage to your existing server. Horizontal scaling, or scaling “out” refers to adding more servers, rather than just adding resources.
“If you scale vertically,” O’Day explains, “You take a single server with, for example, one CPU and one gig of RAM, and you put a lamp stack or .net stack on it. As the server grows, it could grow to include 20-30 processors with 50 gig of RAM. By using cloud’s self-service abilities you’ve been able to vertically scale the virtual server, but you’re still running on one single server.”
Depending on how the application is written, it can be a challenge to scale horizontally if it wasn’t set up that way initially. If you have a web tier, an app tier and a database tier going out to multiple machines that need to be load balanced, it can get complicated quickly.
“For ease of scaling at any time, we recommend companies start with a pair of small web servers and database servers,” explains O’Day. “That way, when you scale you will be able to easily scale horizontally or vertically. You’ve left yourself room to grow in either direction.”
If you’ve enjoyed this post, read the most recent series post, “Old Apps, New Apps and Non-Virtualized Apps“.