The cloud with all of its ease and convenience is slowly eclipsing the racks and racks of machines that defined it. There are many practical reasons driving this movement away from the data center as a hallmark of information technology. Cloud service providers continue to roll out amazing products and time-saving services that make it simple to stand up amazing code. The convenience is wonderful. The economic forces driving the consolidation are strong and probably getting stronger.
But for all the undeniable reasons driving the transition to the cloud, there are a few arguments that don’t fit the narrative, a few rationales for bucking the trend and keeping your own data center running. Maybe not for all of your workloads, but for some of key, targeted tasks.
In the DIY spirit of Emersonian self-reliance, here are 10 reasons for keeping some of your code running on premises in a rack that is yours, all yours.
The cloud is a great asset for a company spread across the globe. It’s a good fit for supporting people working remotely or at home. But if your workforce is coming into the same campus, hitting the same servers, then there are notable downsides to having these servers a long way away, with all those leaving the property, travelling halfway across the country to some distant cloud-based machine in a Zip code you don’t even know.
Local servers are faster than ones parked somewhere else. Moreover, fewer network hops mean fewer points of failure. If the bits never leave the building, you can get by with a smaller internet pipe. All of these are good reasons to keep the servers close to the action. If your workforce is concentrated in one place, put the servers they need near them.
Some people love the cloud because the invisible cloud workers take care of all the grief of running the servers, buying the machines, and installing the software. There’s no doubt that the cloud can be liberating in taking that burden off your shoulders.
But sometimes it can be more comforting to have all those responsibilities yourself. Really? It depends. If it’s a task that’s not essential and you’re willing to be happy with the cloud company’s approach, it can be worthwhile to just let your cloud vendor do its thing and adjust your IT around this. But if you have your own way of doing things, the friction might not be worth the time savings that comes with moving to the cloud.
For example, one of my projects used some legacy code that required an old version of Python. The cloud company, however, used the latest version of Ubuntu and that version used a newer version of Python. I could either wrestle with different versions or install my favorite version of Python on the machine in my lab. It was simpler to just buy my own machine than rewrite the code.
Cloud companies need to make all their customers happy. You’re not the only one who will be buying the service. Signing up for a cloud service isn’t the same as joining a cult, but it’s also not the same as living on your own private island. You just have to get along with your neighbors.
In the most extreme cases, your neighbors in the cloud can be malicious. Scary attacks such as Rowhammer make it possible for nosy neighbors to break into other users on the same hardware. Are they a serious problem? Are active hackers attacking other cloud instances often? Probably not. But one of the big advantages of paying for your own hardware is not worrying about your neighbors in the data center.
Modern contracts aren’t written in stone. They’re usually not even written on paper. When trouble arises, it’s not uncommon for companies to just cut you off with some ambiguous claim of violating some unspecified clause in the Terms of Service. The email discussion lists are full of sad stories from developers and companies that ended up getting a Dear John email from their service provider. Sometimes the cloud company doesn’t even send an email. Everything just stops working.
Maybe your lawyers are good. Maybe your business flies under the radar and you don’t need to worry about cancel culture. Maybe you think all these stories are overblown and happen to other people. The odds do seem long that cloud businesses would behave irrationally and just toss away good revenue. But there’s no doubt that controlling the hardware reduces the legal points of failure.
Cloud companies are often accused of having spotty service. Some seem to deliberately have no public phone number. Some never seem to respond to emails. For every great story of a cloud company employee that went the extra mile, there’s another rant on a bulletin board about nameless, faceless leviathan.
When the data center reports to you, it’s much easier to get a response from them. Yes, there are plenty of angry stories about disappearing IT staff. Yes, sitcoms love to joke about rare sightings of in-house tech support as if they were endangered species. But having power over someone’s salary is one way to get better service.
The latest hardware is always the most expensive. If your work depends on pushing the envelope, then relying on the cloud may make the most sense. But if your work is a bit more boring and predictable, then you can save plenty of money by making do with servers that are several years old. There are potential hidden costs, of course. Older machines break more often. Can your workload handle some unexpected downtime? Can your staff fix the machines? If you’re able to make do, using older, less-hip hardware is often dramatically less expensive.
The companies that do the best with the cloud are those with wildly variable but generally predictable computing loads. Streaming video services, for instance, do most of their computation on Friday and Saturday night. They spin up the machines for a few hours and then shut them down as soon as everyone goes to sleep. For the other 150+ hours in the week, someone else can pay for them.
If your company is the opposite, though, then running your own data center can make more sense. Paying for a cloud machine for 24 hours a day, 7 days a week gets expensive, even after the discounts. It’s much easier to pencil out a budget for a local data center that’s cost competitive if your machines are going to run constantly.
The pandemic has really shaken up the world of commercial real estate and some companies have extra space they can’t easily shed. Perhaps you own the building. Perhaps the lease won’t run out for years. Part of the cost of a cloud machine is the building that holds the hardware. If the cost of real estate is low or maybe even nonexistent for your company, putting a few racks in some empty space could be a good deal for the budget.
Cheaper local power
The cost of electricity is a big part of running a data center and in many cases the price of power is greater than the cost of hardware. One of the stranger corners of government is the way that some states or municipalities try to attract local business. Some use tax breaks but some find a way to indirectly subsidize new companies by cutting the price on local power. AWS is just one example of a company that negotiated sweet electrical prices. Maybe your company is already getting a great price on electricity and that means your in-house data center could be cheaper to run.
It doesn’t even need to be a special deal. Some parts of the world have cheaper electricity. Some parts make renewable energy easy because of ample wind or endless sunshine. The reason for the low price doesn’t matter. If your company happens to get a good rate on electricity, you could save quite a bit on cloud computing by hosting your own machines.
Some companies like to cut staff to the bare minimum. Others, however, value human capital. One company I worked for liked to overhire so it would have talent available when it needed it, which usually occurred at unpredictable times. When the emergency hit, the company was ready.
Staffing your own data center can be expensive and it can be one of the hardest costs for a CIO to justify. But maybe your business can split the time for the people managing the data center? Maybe there are other roles they can take on effectively while also running the data center?
If you want the local talent, if you like having some smart staff down the hall, then it might make sense to use some of the budget for computing to keep people on board. Some cloud company isn’t going to tell good jokes at the water cooler, plan the July 4th picnic, bat clean up on the company softball team, or do any of the other things that human capital can bring to an enterprise.