How do we scale?

written by supo on October 27th, 2007 @ 03:39 PM

This is perhaps the most frequently asked question we get at Managed Open Source (MOS). To answer this we always find it necessary to push back on our clients and ask, “how to scale what?”. This is when most of our clients go silent and realize they haven’t put much thought into what questions they really should be asking about their current environment.

The problem with most organizations is that they do not consider exactly what it is they want or need to scale. For example, we recently had a startup client that used the Ruby on Rails framework to build their application and wanted us to “scale Rails”. Scaling open source application stacks is what we do best, but in reality we do not actually “scale Rails”. We scale the application, which has specific needs and intricacies. Ruby and Rails are only two parts of the whole stack. Not to mention there is more to scaling than simply software stack. If you are trying to reach an Asian audience, but have data centers in Europe, that wouldn’t be the optimal way to scale from a data delivery perspective.

Sometimes application optimizations only need to deliver more consistent response times or more correct responses, rather than delivering higher throughput or lightning speed. For example, if your current application configuration can fulfill up to 5,000 requests per second, but only 93% of them get fulfilled without errors, that may not be an acceptable level of response quality. Instead the application may be better off providing throughput of up to 4,000 requests per second but 99.8% responses are successful.

The moral of these examples is when asking “how should we scale?” take a few steps back and ask yourself what is unique to your specific application. What we often find is that there are a few options to tweak at each level of the application stack (including hardware and data center levels) to get to the point where your application can scale better yet not restrict the configuration too much you end up painting your way into a corner.

Think about what “scaling” means for your application and your business needs rather than just in terms of performance and/or throughput.

Managed Open Source’s next set of posts will be on scalability vs. performance in more detail since so many people in IT equate the two.

Comments are closed