not sure in which category this should belong in so I'll just post it here.
I have a big headache at the moment. I need to set up a web server for small web development company. I can get up to £100 a month for server expenses but I am struggling with infrastructure choice. I'll list what thoughts I have so far, please tell the cons of my ideas and maybe suggest better solutions.
p.s. 99% of sites are built in Drupal.
- Plain old big server with sites in sub-folders. For easier life use Apache server. PHP5.5+ could opcache php code but what about Varnish cache and such? I would need to edit it's config file each time a new site is added;
- Plain old big server with some kind of virtualization. Now about this stuff I've just read some articles and I assume this is possible. The new thing called LXC can create lightweight containers with minimum overhead. It would be similar if not exactly same as using Docker, which is also an option. So in theory every site would have it's own container, which would look like a whole linux distro. I've read somewhere you can re-use these containers, at least Docker you can. So one container would be just for MariaDB which would connected to all other site containers. This option sounds nice, all sites would be isolated enough but configuring this environment could be a headache. I think I would need to use HAProxy to redirect traffic to correct container. also something like Chef should come into play to automate everything. It would have a lot of moving parts and failure points.
- Just go with a AWS micro servers for each site? use vagrant for launching identical environments. But AWS plans do not have price ceiling, if one site will be used too much, I could go over my budget.
- Instead AWS, use Linode cheapest plans and do the same? Linode plans do have a ceiling but if sites constantly hit ceiling, I could have only 10 sites in a budget (if we don't convert price), which is unacceptable because #1 could handle more than 10 sites...
To me, Docker solution sounds awesome but most articles talk about single app being deployed using docker or scaling single app using Docker. But what about multiple sites in one server using Docker? Also I would need to use nginx instead of apache and configure it's microcache so I wouldn't need Varnish cache.
Any thoughts on this subject?
P.S. Big fan of TekSyndicate just not very active in community.