Where is an application better off: On a bare metal server or a virtual server from providers like Hostwinds[1]? Several factors can help in choosing the right server type when an application finally goes into production. For example, latency and performance depend on the server type.
Top 5 factors when choosing a server type: virtual or bare metal?
Bare metal or virtual servers? Before deploying an application, a decision must be made about the infrastructure to be used. Microservice-based applications open up the possibility of distributing processes across different server types. Later changes are also possible – but are often associated with increased effort, so it is worth thinking carefully about your own requirements before taking the step into production.
Factor 1: Server performance & latency
Virtualizing servers means that the device itself must first devote some of its capacity to precisely this process. This increases the utilization of the device. So physical servers are fundamentally more powerful – but virtual servers make better use of their resources, as Blessen Cherian says. Instead of reserving part of their performance for special workloads, the entire performance can be used here. This is particularly important for applications that rely on high performance. For very specific requirements, on the other hand, the individual configurability of bare-metal servers represents a major advantage over virtual servers.
- In terms of latency, microservice-based applications also perform a little worse on virtual servers than on physical servers.
- The number of internal connections required to retrieve the full application is simply much higher, so even slightly increased load times can be a factor.
- So when milliseconds matter, this is where a bare-metal server decision should be made.
Factor 2: Scalability & costs
When it comes to scalability, virtual servers often come out on top. In order to scale up the capacity of physical servers, new hardware must be installed. This is not necessary with virtual servers, so that an expansion of the existing capacity is often cheaper here in the short term than with physical servers. In the long term, however, this need not be the case. The license costs that virtual servers continuously produce are often higher than those of a corresponding bare-metal server. Short-term scaling decisions are also often easier to make in a virtual environment. Those who only have a need for increased server capacity for a limited period of time usually have to expend less effort in a virtual environment.
Factor 3: Technical requirements
Mike Coleman lists a whole list of requirements of microservice-based applications where virtual servers are superior to bare metal servers. For example, he says virtual servers are easier to use when it comes to API access and are therefore better suited to automating processes. Even when multiple operating systems are needed, Coleman said virtual servers should be used because OS instances can run in parallel on a virtual server. As a Docker Technical Evangelist, however, Mike Coleman’s tendency toward virtual servers in container deployment is no surprise.
Factor 4: Data recovery & security
Another strength of virtual servers becomes apparent when every webmaster’s nightmare occurs: the server breaks down, and no one can access the data. On virtual servers, webmasters have more options for regular backup; the better automation options play a key role here. In a microservice architecture, virtual servers can often be used to compensate for failures of individual parts of the infrastructure.
However, security is a double-edged sword, especially in cloud-based systems. Webmasters have the greatest control over any kind of access to a server when they have direct access to the device. Cloud hosting generally does not allow as detailed an assignment of access rights as an in-house server. Nevertheless, bare metal servers in the cloud are considered more secure compared to virtual servers because the space on them is not shared with other customers.
Factor 5: Leverage existing resources
Not every application makes it necessary to use only one type of server. Existing resources and contracts should be taken into account in any case when the decision for or against a server type has to be made. For example, in some cases it is perfectly possible to run parts of a microservice architecture on a bare-metal server[2], while other parts run simultaneously on a virtual server. Continuous infrastructure changeover can also make sense if this is planned for from the outset. However, it is important to always know why your own application is running on which type of server.
More Information
[1] http://www.peer-server.com/en/hostwinds/
[2] https://www.ovhcloud.com/en-gb/bare-metal/