Web server solution

Hi all,

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.

  1. 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;
  2. 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.
  3. 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.
  4. 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.

Is there a reason why you want to virtualize each site?   IMO it would be easier to get a cheap bare metal server and buy a cPanel license. 

If I had to make a recommendation I would say get an OVH Dedicated server, a cPanel License and call it a day. 

http://www.soyoustart.com/en/essential-servers/

Their 1245v2 servers make great web boxes.  We currently run a bunch of them for web servers. 

£40 for the server + £10 for cPanel. 

They also have extremely good DDOS protection included for free. 

If still want to virtualize they offer Proxmox and ESXi installers.

Disclaimer: I don't work for them but my company has ~300 servers with them. 

well.. there are so many cool new technologies out there and I am not sure how to harness them. your solution is time-tested but it feels so old. will probably stick with it though. thanks for comment

Can you explain some more about what's going on, here?  Are these all internal (or internally managed) sites, or do you need to provide access to your customers?  Are the sites fairly permanent or will they be mainly dev sites, appearing and disappearing frequently?

There is no reason you couldn't get just a few VPS instances (e.g., from digital ocean): put your DB on one and use another for sites, etc..   There's no reason to buy 10 instances for 10 sites, unless the site is huge, cpu-intensive, gets lots of traffic, needs a high level of security, and/or the customer paid for it.  For "typical" websites, you could get a higher-tier instance and host a few dozen sites on it (also using Docker/LXC containers if desired).

sites are not very fancy. just regular Drupal informational sites with small to medium traffic. I just thought it would be cool to try new technologies and learn something useful but I guess I misunderstood the purpose of Docker and similar soft. I might try Aegir because I need to have some sort of front-end management.