4

So I have a Dell XS23 Rack with 8 CPUs and 40G Ram with vmware esxi in my production environment. The way I'd partitioned it before was 2 API servers (quad core, 8gig ram) 2 DB servers same specs, etc.

The reasoning for this was to have load balancing as well as replication, fail over etc, but all running on one single piece of hardware.

As you can see the more VMs you add obviously the more disk/cpu/ram will be wasted on the actual OS and not the application, so Docker would be really advantageous in this situation.

Now my question is, should I just create one massive server running all my Docker containers or should I still have my VMs around and run dockers within them (defeats the purpose of docker sort of :s) Since Docker is fairly new and I can't find much docs online I'm resorting to ServerFault community for some ideas. Thanks!

2
  • 1
    Failover with one server? What happens when the hardware dies? As for Docker, well, that's one of the long list of things that most of us will never, ever touch. Feb 7, 2014 at 22:13
  • I've backup of my dbs on another physical location, and the code is in bitbucket, so I can bring the services back up in a day or two in case something horribly goes wrong :-) will change it later, but eh, startup life Feb 7, 2014 at 22:22

3 Answers 3

2

There's no point in virtualization unless you've a very specific reason to do so. The reason might be like, giving root access to the containers to various people and so on.

If everything is under your control, and you don't need to give access to anybody else, I'd discourage any kind of virt since it just adds to more CPU usage - the overhead in case of container based emulation is not much, but you have to setup promiscuous mode for network adapters which increases CPU usage.

Many applications can connect via UNIX sockets which would be advantageous to avoid the whole TCP thing. From the size of the server, I think you have bought / rented it for some serious performance purpose.

1
  • 1
    the overhead of vms on cpu performance is very low these days - low single digit percentages. Aside from the much more optimal cpu utilisation across the estate which it gains, and which vastly outweighs the previous statement. This is why nearly everyone uses virtualisation these days.
    – Sirex
    Nov 12, 2014 at 22:46
1

I wouldn't bother virtualizing it, unless you have a good reason. It only adds more complexity to your stack and doesn't give much in the way of actual failover that Docker doesn't already provide.

1

From talking to a friend, I came to the conclusion that I do need some sort of redundancy in order to protect myself against OS failure. For example if my esxi box maps the ram/disk for one of the VMs on a bad partition on the host OS.

So I'm thinking of setting up 2-n servers all running docker. Each of them would host a single API and UI docker image, and they'll all be load balanced. Now I have my redundancy as well as docker benefits.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .