For the past few years, enterprises have grappled with the personal cloud dilemma: “Should we use public or private cloud?”
To some degree this has moved beyond a binary, either-or decision and now many enterprises are using both, but the question still remains on a per-workload basis: “Should I run this workload on public or private cloud?”
To help enterprises weigh up which one to go for it’s useful to find comparable attributes and to consider their pros and cons. The original five cloud characteristics, as stated by the National Institute of Standards and Technology (NIST), are a great starting point for such a comparison:
- On-demand self-service
- Broad network access
- Multi-tenancy (resource pooling)
- Operations (measured service)
1. On-Demand Self-Service
Cloud consumers and administrators love being able to serve themselves. If there are no people and, more importantly, no service request tickets or forms to fill in, then the nirvana of friction-free IT feels nearer.
For public cloud service providers, self-service isn’t an afterthought - they have deliberately made it the only way to control your resources, see your bill, and to use your services. For this reason, public cloud self-service quality is incredibly high, with quality user interfaces and APIs.
However, there is a downside to this laser focus on self-service - it’s not enough when things go wrong. In such scenarios, cloud customers who have put the IT backbone of their business in the hands of a third-party want to talk with a human being. They want to be assured that a quick fix is imminent; they might also feel better raising their voice a little. Thankfully, public cloud service provider phone support, usually provided at extra cost, is now improving.
Private cloud software has improved to now offer users self-service and, at least from the point of the users ordering extra virtual machines, things are better than they used to be. However, if you want more than virtual machines you might find that private clouds have fewer offerings via their self-service front-ends, and these self-service capabilities are often clunky and poorly integrated - leading to a poor user experience. Additionally, APIs tend to be complex or completely missing.
2. Broad Network Access
Private clouds, running inside an enterprise, benefit users because they are on the corporate network and should thus be available to all. Plus most organisations have fast local and wide area networks connecting users to the datacenter within which the private cloud resides.
The downside to this is that enterprise networks can be under-invested in, which leads to fragmented and poorly performing networks that directly impact both user experience and the ability to connect to cloud services. The biggest issue is often the difficulty associated with connecting to private clouds from new locations outside of the corporate network.
Public cloud providers make enormous investments and innovations in their networking. They might provide their own content delivery networks, points of presence, and new ways of software-defined networking. They also often have a global presence that means your cloud resources can be available globally.
However, because these public cloud providers are so large and innovative, their networks have a history of issues with load balancers, noisy neighbors and, as one industry commentator cheekily put it, their own “weather patterns”.
3. Multi-Tenancy (Resource Pooling)
The average public cloud provider offers a multi-tenant cloud, pooling resources that it then divides up for individual cloud customers. For example, the Microsoft Azure cloud architecture pools compute resources by rack and then into subdivisions. Storage is architected in pools that are then replicated many times across many locations and also shared amongst many tenants.
This is a very mature operation but there can still be differences in the service you get, often because the network is one of the most shared (and complex) resources. Resource pools aren’t uniform either - when you start a virtual machine you could be in a pool of old or new machines, you don’t have a choice. This is resource pooling in action.
In a private cloud, the same architectural pooling is possible, on a smaller scale, and similar mechanisms exist to create and share multi-tenant resource pools using software like OpenStack. However a private cloud is single-tenant, so the resource pooling has a lower isolation requirement (because the whole cloud is isolated).
This is the biggest difference between public and private clouds because it’s about size and responsiveness.
Elasticity of resources, up or down, with the requisite changes in billing, is the raison d’etre of cloud. It’s what allows people to save money and yet to still be agile and experimental. The only downside is that this pay-as-you-go capability can be costly if you have long-running static workloads.
Private clouds offer consumers elastic resources but they are ultimately constrained by the enterprise IT procurement process. Users can consume all they want up to the ceiling, but to move the ceiling up takes time (and justification).
5. Operations (Measured Service)
In an elastic, self-service system the cloud platform needs some “smarts” to optimise itself and to help the administrator to make sense of a constantly moving system.
VMware’s Dynamic Resource Scheduler is an example of an enterprise measured service system that is used by VMware’s private cloud technology. Visual operations systems then integrate with such a resource scheduler to allow both dynamic and human modification of cloud resources. However the downside is that these enterprise-grade optimisation tools often aren’t built specifically for cloud, but they are slowly being integrated and modified over time.
Public cloud systems offer limited, but increasingly better, operational systems for cloud customers. They are constantly optimising the provider-end of resources to balance acceptable performance with density. These cloud operational systems are built for cloud so they integrate and operate very well, but they may lack the detail that the enterprise user expects.
In summary, public cloud is more advanced than any private cloud; it’s becoming easier to use and more integrated with the enterprise. The rate of feature releases and reducing pricing levels at the leading cloud service providers also make a compelling case for public cloud.
Private cloud may be comforting to enterprise IT staff, but the cons are stacked with constraints and costs.
Sarah Lahav, CEO of SysAid Technologies