Currently we have around 8 different servers with three different providers. I'll label these A, B and C. In total across these different providers we've got around 250 websites/applications/portal/CMS/bespoke apps using the LAMP stack.
The current distribution over the providers are as follows:
A) Three dedicated machines, ranging from 1GB Ram to 2GB - running almost unsupported LTS versions of ubuntu. 1 VPS which has 6GB ram.
B) Three VPS. Two 1GB and one 2GB.
C) Physical machine - 32GB RAM. It's a monster. Currently used for one site only (large traffic and load. Magento specialist).
I've inherited this structure from previous users. I'm really keen to move away from provider A because of the poor service, uptime record and support. So as a company initiative - we're looking to create a more reliable and robust setup.
What sort of architecture would you recommend? We are looking at using Puppet/Chef for automated deployment and consistency across any of the various nodes we wish to setup - what I'm struggling to make a decision on is what is the best way to set this up?
Some thoughts I had:
- Setup each of the server from provider A as a relative clone.
- Setup one massive 'farm', so have a load balancer that goes to a number of apache/php boxes and read code/files from a NAS/CDN box and have separate MySQL boxes. Include stuff like APC, memcache and Varnish?
Just so many options, just can't seem to think of something suitable to fit the job?
How would you as a Sysadmin, choose and architecture and what would you do?