Question

I have an application (an IP conferencing service) that I need to scale. It has quite a few independent components/applications, written in different languages (mainly C++ and PHP, some Perl). Currently a single installation runs on 5 machines, with 1-2 components sharing a single box. The configuration of each box therefore is different, so it's a pain to scale the whole thing, not to mention maintenance.

The individual components vary from media proxies to message proxies and databases, so load is everything but even.

I was thinking about putting all components on a single machine and add more boxes as I go along with some sort of a load balancer in front. Others advised me to scale the other way - add specialized boxes where the app load gets high - but this leads back to the maintenance nightmare.

Do you know resources where I should start? Ideally I'd need some benchmarks which approach is better in terms of performance? (thinking aloud, when I have X amount of load and Y amount of memory and processing power where does it matter how I allocate it?)

Was it helpful?

Solution

I'd go for virtualization. That way you can have various similar configuration machines, and distribute load among them as needed, even if you keep modules in separate VMs.

OTHER TIPS

You need to determine where the highest load or bottle neck will be it will be difficult to properly plan this without.

I would second looking at virtualization. It makes your app: Quick to deploy Easy to backup On event of failure quick to restore

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top