When you think of a cloud deployment, you probably assume that there’s virtualization involved. In fact, most people assume that if they’re not using virtual machines, they’re not really using cloud computing. However, the National Institute of Standards and Technology (NIST) definition for cloud computing doesn’t have virtualization asone of the defining components. The environmental characteristics that define cloud computing include:
- On-demand self-service. The customer can provision cloud components, such as storage and server time, without having to interact with the cloud provider.
- Broad network access. Customers and their visitors can access the network through standard mechanisms including desktop computers and mobile devices.
- Rapid elasticity. Customers can set capacity to scale in accordance with demand, often without human intervention.
- Resource pooling. Customers access storage, processing, and other cloud functions in multiple locations. They’re part of a dynamic, multi-tenant system.
- Measured service. Customers can monitor and control their resources usage and arrange for billing according to a metering system.
When customers need increased capacity, they often imagine that the datacenter deploys additional virtual machines. Datacenters can, however, also bring additional physical servers into play. Cloud providers deploy physical “bare metal” servers for clients, and they bill based on hourly usage. Bare metal servers and VMs both have different performance advantages.
Why Some Say Metal Is Better
Virtualization security tools for business have come a long way. Also, programmers have developed new ways to isolate and partition virtual environments. Even so, because cloud computing feels abstract and ethereal, many companies will simply never feel confident that virtualized environments are secure. Bare metal servers allow physical segregation within the datacenter, which gives some companies a sense of greater security.
In addition, some work-intensive applications that deal with huge datasets don’t perform as well in the virtualized environment. Big applications like Hadoop, NoSQL, and business intelligence tools demand a lot of resources, which can cause network congestion and problems accessing block storage. When other applications are trying to access the same resources simultaneously, VMs can develop what Ioana Hreninciuc, commercial director for Bigstep, calls the “noisy neighbor” effect.
In some cases, noisy neighbors mean nothing more than a two-second lag on a website. For latency-sensitive situations, like gaming, video streaming, and e-commerce, the effect can reduce performance by as much as 15 to 20 percent. Bare metal means physical resources aren’t shared between multiple tenants; no neighbors, no noise.
When VMs Are Just Fine
Although some advocate for segregating resource-intensive applications on bare-metal clusters, others say that proper VM configuration eliminates latency issues. Ashish Morzaria, SAP’s director of product management, argues that people compare the performance of BI applications in the virtualized environment against the performance of non-BI applications, which gives the illusion that BI would perform better on bare metal. When you compare BI on a VM against BI on bare metal, he says, you don’t see performance degradation as long as you meet certain conditions.
To run BI applications efficiently in a virtual environment. Morzaria recommends following the developer’s deployment guidelines to the letter. These guidelines include:
- Correct VM configuration. Once any CPU exceeds 80 percent of its capacity, its performance begins to degrade whether it’s a VM or bare metal. Morzaria notes that although VMs become overtaxed more quickly, but it’s a problem that can be prevented by scaling earlier. He recommends starting to scale out at 65 percent capacity to avoid VM performance problems.
- Guaranteed computational resources. Morzaria recommends setting up strict guarantees CPU and memory reservations instead of trying to negotiate shares of resources and maximum usage limits. Resources should be guaranteed just as they would be with a physical server.
Putting It All Together
Overall, VMs work best for dynamic workloads, particularly when performance isn’t an issue, and they’re great for fast scaling to accommodate spikes in usage. Also, virtual machines can spin up almost instantly, where deploying a new bare metal server can take more time. On the other hand, for steadier and more predictable workloads, bare metal deployments could provide significant cost savings, but putting resources on a single machine creates a potential point of failure.
In the end, the best answer might include a blend of bare metal and virtual infrastructure. Talk to your cloud services provider about switching some of your storage and computing to bare metal while reserving VMs for dynamic demands.