The advent of the cloud has fundamentally changed the way we deploy software and store data--with good reason. Generally speaking, there are many advantages of cloud computing over on-premise infrastructure, such as greater scalability and faster application deployment. But that does not mean that the cloud is the perfect solution for every situation. Before you jump on the cloud computing bandwagon and move all of your software to the cloud, it’s important to assess whether the cloud is actually the best fit for your particular workloads.
To that end, let’s take a look at a few reasons why you might not want to use cloud-based services for computing, storage, software deployment and other purposes. We’ll focus in particular on the advantages of cloud computing based on public clouds, although many of the points below apply to private clouds, as well.
To be clear, my goal here is not to argue that the cloud is bad in general. It’s not. But, like most technologies, it is not the ideal choice for certain situations, including those below.
1. Your Organization is Very Small (or Very Large)
The cloud is great for organizations whose infrastructure needs are sizable--meaning at least a dozen or so server instances and hundreds of gigabytes or more of storage.
But if your infrastructure needs are limited to a handful of servers and little storage, the cloud could be overkill. If a few servers in the back of your office will meet your needs, hosting your applications and data in the cloud might create more deployment and compliance challenges than it’s worth.
Similarly, if you’re a very large organization, it may be more cost-effective to build your own infrastructure rather than using the public cloud.
2. You Already Own Sufficient On-Premise Infrastructure
One of the most common arguments in favor of the cloud is that it saves you from the cost and effort of purchasing and setting up infrastructure.
That’s a good point if you’re talking to a young organization that’s building its infrastructure from scratch (or an established organization that is in the midst of a major infrastructure overhaul).
But if you already have an on-premise infrastructure in place that is meeting your needs, and you expect it to continue to do so for the foreseeable future, it’s harder to make the argument for migrating to the cloud. Doing so would mean losing out on some of the investment you made in acquiring and implementing your on-premise infrastructure in the first place.
If you’re in this situation, you might consider splitting the difference by deploying new workloads on the cloud, but continuing to use your on-premise servers and storage for existing workloads.
3. Hidden Cloud Computing Costs
Calculating total cost of ownership (TCO) is always tricky. When it comes to on-premise infrastructure, you have to factor in not just the acquisition and maintenance costs of your servers and disks, but also things like how much electricity your data center consumes to power the servers themselves, as well as cooling systems.
At first glance, the cloud might seem to offer simpler cost calculations. Most public cloud computing plans require you to pay fixed rates based on the amount of storage, compute time and network bandwidth that you consume. You might think that these represent all of your costs.
But they don’t. There are lots of hidden costs associated with cloud storage, such as data retrieval fees. You also have to account for the time your IT staff spends maintaining cloud infrastructure; just because cloud infrastructure is software-defined doesn’t mean no one has to set up and monitor it (or that the skills required to do these things are readily available within your organization).
And it’s possible that using the cloud could add costs by locking you into certain tools due to compatibility limitations, thereby forcing you to use more costly software than you would otherwise.
4. Cloud Network Latency Can Be Poor
The network is often the weakest link in our infrastructures, in the sense that data usually flows more slowly over the network than storage systems deliver it and than CPUs can process it. That’s true even if you’re working only with local networks. But network performance tends to be particularly slow when you need to transfer information through the public Internet.
Because interacting with most public cloud infrastructures requires you to use the public internet, the user experience for cloud-based applications is likely to be poorer than it is if your infrastructure exists on-premise, in the same physical place as the people who use it.
The extent to which network performance is a problem depends on the type of workloads you are deploying. If you’re hosting Web apps that serve basic HTML front ends, you probably don’t need super-fast networking. But if you are trying to run big data applications and need to move lots of information between local computers and your cloud, the public cloud may not meet your needs well.
5. The Cloud Can Fail
To some people, one of the big advantages of cloud computing stems from the notion that cloud infrastructures are more reliable than local infrastructures.
While it’s true that cloud computing providers have gotten very good about maintaining uptime--AWS famously promises “11 9s” of uptime, for example--this does not mean that cloud infrastructures are immune to failure. You don’t need to look far to find multiple examples of recent cloud failures.
The fact that cloud infrastructures sometimes go down does not mean you should never use them, of course. On-premise infrastructures can fail, too. But if you think your IT team can achieve the same or better level of availability using on-premise infrastructure than it can in the cloud, then you might be best served sticking to an on-premise architecture.
There you have it: five reasons why the cloud may not be the right fit for your workloads. While the cloud may be more cost-effective, scalable and easier in many cases, it’s no panacea.