Before choosing an infrastructure hosting platform, it’s important to understand both the qualities of the infrastructure and the demands your application will make of it. In today’s infrastructure space, it’s particularly important to balance the specific benefits of cloud platforms and bare metal. The cloud’s strength is scalability. Whatever other benefits a cloud platform might offer, the ability to quickly deploy virtual servers to meet demand is its raison d’être.
As I’ve talked to executives investigating infrastructure hosting solutions for their business, I’ve often noticed a tendency to conflate scalability with performance. The assumption is that because infrastructure is easily scalable, that necessarily equates to superior performance. In reality, that’s not the case. Performance and scalability are related but not identical concepts.
Scalability refers to the ability of a service to maintain a consistent level of performance as demand grows. A simple example would be a website that serves pages at consistent speeds as the amount of requests increases. Performance is in many ways a simpler measure: it indicates how quickly infrastructure can perform a particular task. In a machine learning context, we might be interested in how quickly a server can crunch through a data set.
The cloud is built for scaling, but most cloud platforms don’t optimize for performance, largely because the two concerns are in tension. Dedicated servers will always perform better than equivalently priced cloud servers because of the complexity and resource consumption profile of cloud technology. There’s a performance price to be paid for cloud elasticity.
As Steven Haines writes in NetworkWorld:
“The idea that deploying an existing application to the cloud will make it perform faster is simply not true. As a matter of fact, your performance may be better in your own data center where you control all aspects of the hardware on which your application is running.”
Haines, however, is firmly on the side of cloud scalability. He’s a cloud architect. I, on the other hand, would argue that for the vast majority of enterprise workloads, colocated servers are the better option because performance-optimized bare metal servers colocated in a world-class data center are scalable enough and offer a superior price-performance ratio. For established companies with server administration and IT expertise, the math is clearly in favor of dedicated servers.
In addition to the obvious cost and performance gains, enterprise organizations also benefit from everything else that comes along with buying, owning, and managing their own servers and network equipment. They can build the platform that best suits their specific needs, rather than molding their applications to the cookie-cutter cloud environment. They have full control over the security of the hardware. And, perhaps most importantly, reliability and availability are firmly under the control of the company with its reputation and revenue on the line.
Massive scalability is helpful for some limited use-cases, but it’s rare to come across a project where performance, control, and a predictable route to consistent scaling at a reasonable cost over the life of the project aren’t the more desirable infrastructure characteristics.