by Peter Wayner

10 dark secrets of the cloud

Jun 29, 2021
Cloud ArchitectureCloud ComputingCloud Management

The cloud has increasingly become a cornerstone of IT strategies across every industry, providing enterprises with agility and scale. But in every dark corner, hidden risks and imbalances await.

rowboat on shore with dark cloudy sky
Credit: Thinkstock

No one may be able to define exactly what the term cloud means in business technology today. Is it a rack of machines paid for by the second? A set of powerful APIs? A set of extensive services — all with acronyms that end in “aaS” — that enterprises can lean on as building blocks for their own stacks? Or is it just an IT budgeting strategy based on the belief that renting is better than buying?

The definition of cloud computing may be continually shifting as vendors add new features and roll out new services, but everyone knows it has been a great option for enterprises across every industry — and is only gaining steam as a key player in IT strategies. Development teams can go further and build more thanks to the range of tools and pools of compute resources available in the cloud. Businesses can better weather seasonal or temporary spikes in customer activity when everyone logs on to their websites and services at once. Analytics teams can experiment with the latest in machine learning technologies at scale, and IT leaders can increasingly scour capital expenditure line items from their budgets, while keeping their line-of-business colleagues happy with their semi-autonomy.

Still, though much of the excitement around the cloud is merited and the business value is well-established, there’s also a dark underbelly to leaning on the big cloud vendors’ stacks. Here are 10 reasons to be wary of when bringing your business to the cloud.

You’re locked in more than you think

At first glance, selling a commodity operating system on commodity hardware should be a commodity business. But somehow the cloud world is surprisingly sticky. Even when your data or the services you create in the cloud are theoretically portable, simply moving all those bits from one company’s cloud to another seems to take quite a bit of time.

On one recent project, I was introduced to one senior engineer who was moving one block of services from one cloud to another. When my part of the project ended six months later, he was still moving it. And the managers were still paying him. Between the DNS and the secret keys and the configuration files, the small details are often enough to make it easier to just keep paying a premium at one cloud, just to avoid the hassle of moving to another.

You’re paying a premium — even if it’s cheap

Amazon stock isn’t just soaring because hundreds of thousands of warehouse workers and delivery trucks bringing the world to our door. That’s a competitive business with tight margins. A big chunk of its profits come from Amazon Web Services, which makes much of its money repackaging thin slices of computation and marking up the price. And this is all possible thanks to the tons of inefficiencies in the server rooms and data centers around the corporate world. Because of this, cloud companies can provide temptingly cheaper alternatives to hosting your stack on your own hardware and still price them with fat margins. 

Performance isn’t always as advertised

Cloud computers are less powerful than they seem, perhaps because the hardware is often shared by dozens of virtual instances, each carefully allocated a small amount of RAM and CPU power. This became obvious to me when I noticed that the eight-year-old server under my desk was churning through some big optimization problems much faster than the big cloud instance that was costing more than $100 a month. But unless you’re willing to fuss over the machine yourself, installing and updating the operating system and letting it heat up your office building in the summer, it’s just simpler to start up a cloud machine.

On this project, I compensated by just spinning up N machines that were 1/Nth the power of the Xeon box under my desk. Sure, it was more expensive but the simplicity of starting new machines made it so much easier to ignore the weakness. And the budget had room.

Unanswered questions abound

Much about the cloud remains mysterious, with many questions left unanswered. Some wonder which technology is used to squirrel away the bits in long-term storage. Others ponder the street address for the data centers. Most of the time, the cloud companies are saving us from cluttering our heads with unnecessary details. Sometimes they’re being mysterious to improve security. But control-freaks who like to ask questions will be frustrated by the way the cloud industry is often tight-lipped about all the details, except perhaps the lines on the itemized bill.

Performance isn’t uniform

Instances are sold like commodities stamped from a cookie-cutter mold but performance can vary. I’ve watched long, computation-heavy jobs speed up and slow down by 20%. When I wrote to the tech support team, they had no obvious answer because the hardware came from the same pool. It should be the same. Most of the time, the performance is so predictable and that’s why it can be surprising when one machine is markedly faster or slower.

Some of this is a challenge of managing expectations. When cloud companies end up with a bunch of instances running light, they could give the extra clock cycles to the overburdened instances. Why not reward your good customers with something that’s just going to go to waste in a split second? But if the clouds do this regularly, customers start to expect it. 

Change is often beyond your control

Is there a customer that doesn’t want something new and improved? In the cloud business, many customers are often hesitant to embrace change because they’re afraid their code will break.

The cloud companies are caught in a quandary. Too much change hurts the customers. But too little means that problems aren’t fixed and security holes go unplugged. No choice makes everyone happy.

Vendors shape your IT strategy more than you think

Many developers like to brag about some service deep in the stack that’s still running on a version of an operating system or database that’s ten or twenty years old. If you’re running your own hardware, you can adopt the idea that if it ain’t broke, don’t fix it.

The cloud companies, however, can’t be so cavalier. They need to move their customer base forward, often in lock step, and that means renting a cloud computer is more like joining the army. You’re not master of your domain. You’re just part of a machine and that means you’ll be spending more time fitting in and getting along.

Variable pricing makes for Vegas-like budgeting experiences

If anyone needs proof that small almost inconsequential bits can lead to something big, they can turn to the massive casinos on the Strip in Las Vegas. It’s an empire built on slot machines and craps tables. All the tiny bets add up.

Many services in the cloud are inspired by nickel slot machines. For example, one invocation of a Lambda serverless service at an AWS data center in Ohio costs just $0.0000166667 for every GB-second. If your code can run on 128MB of RAM and finish in 1 millisecond, that’s $0.0000000021 per click. At prices like that, it’s no wonder your developers will spin up instances, fill up buckets, and start up new services without any care. They’re like sailors on shore leave as the money flows through their fingers like confetti. But at the end of the month, the bill shows up like a hangover, and at the end of the quarter, the cloud company reports a new record for earnings and you’ve gambled away more of your IT budget than you’d like.

Convenience kills key skills

When I asked some of the founders of MySQL the secret to their success, they said they made sure anyone could install MySQL in under five minutes. They emphasized simplifying the installation scripts because they knew developers were overwhelmed with other tasks. That is one reason MySQL is so popular. Several decades later, cloud companies are upselling cloud users on managed versions of MySQL that make the job even easier. Many people would rather click on a button on a website than work through a flowchart of command-line incantations.

The simplicity of cloud offerings is breeding a new generation that can’t edit configuration files or restart processes. They can only click a button on a web page. Is this bad? Practical bean counters will argue that a company’s development team should concentrate on building something new, not fussing over commodity tools. That’s how companies add value. But still, there’s something admirable about developers that can start with source code or a package. Dulling our skills may someday come at a price — especially if that someday involves a strategic need to bring those workloads back in-house.

The balance of power favors your vendor

All it takes is one quick read through the terms of service to understand the balance of power between cloud providers and their customers. At one time, I paged through one version that constantly claimed the right to shut off users or delete data for “no reason.”

The discussion boards are filled with stories of how the big cloud companies throw their little customers under the bus. In some cases, the developers don’t even know what they did wrong. The story of Parler, the far-right conservative social network, should give every developer pause, no matter their politics. One weekend, Amazon sent them a very polite message giving them a few days to leave their cloud.

Money helps make it possible to negotiate more balanced agreements, but it’s hard to get beyond the fact that the cloud companies are big leviathans who control technology that your enterprise can’t live without.