Virtualization

There are two ways you can run your services:

  • on dedicated hardware
  • on a virtualized instance on a server.

When you virtualize a server, ​you’re putting lots of virtual instances on one server. ​Each instance contains a service. ​There are a bunch of pros and ​cons to running your services on either of these platforms. ​Here’s the rundown:

  • Performance, a service running on a dedicated hardware will ​have better performance than service running in a virtualized environment.
    • This is because you only have one service using one machine as ​opposed to many services using one machine.
  • Cost, server hardware can be pretty expensive. ​If you put a service on one piece of dedicated hardware and ​had to do that for nine other services it starts to add up. ​One of the huge benefits to virtualizing your service is that you can have 10 ​services running on 10 different virtual instances, all on one physical server. ​
  •  ​Maintenance, service require hardware maintenance and ​routine operating system updates. ​Sometimes you need to take the service offline to do that maintenance. 
    • ​With virtualized service you can quickly stop your service or ​migrate them to another physical server. ​Then take as much time as you need for maintenance. ​
    • Virtualized servers make server maintenance much easier to do. ​Points of failure, when you put a service on one physical machine, and ​that machine has issues, you’re entering a world of trouble.
    • ​With virtualized servers, you can easily move services off a physical machine and ​spin up the same service on a different machine as a backup.

Pro tip, you can prevent a single point of failure on a physical machine if you have ​a redundant servers set up, meaning you have duplicate servers as a backup