Think you can run Kubernetes better than a cloud provider? Think again

Too many companies are reinventing wheels, building out infrastructure that the public clouds do so well.

Image: Denis Isakov, Getty Images/iStockphoto

Even as enterprises embrace cloud computing, and often a mishmash of different clouds to serve different needs, private cloud (aka "private data center") keeps ticking at an 11% Compound Annual Growth Rate (CAGR), according to Cisco data. Companies are moving their private data center workloads to public clouds as fast as possible, but often "fast" isn't possible. That's normal.

What isn't normal, by contrast, is the idea that companies can out-cloud the big cloud vendors like AWS, Google, and Microsoft. They can't, as iRobot research scientist Ben Kehoe strenuously called out.

SEE: Vendor comparison: Microsoft Azure, Amazon AWS, and Google Cloud (Tech Pro Research)

You could do that, but why?

In response to the suggestion that "Kubernetes is about never having to wait for your cloud provider for a feature because you can build it yourself," Kehoe countered, "[This] downplays the operations and maintenance burden assumed by building something yourself. Looking at TCO, it's almost always a better option to accept the 80% fully-managed-service solution than take on all the extra burden of a custom build."

In other words, you could build the perfect cloud but why?

Kehoe goes on:

By building something yourself--and even before that, setting up infrastructure like Kubernetes because you're planning that you'll want to build things yourself--you're spending resources on technology problems. You should instead by looking for ways to keep focus on business problems.

This focus on business problems is really what cloud creates. Or can. The more a company thinks its job is to assemble infrastructure, and not to spend as little time thinking about the plumbing as possible to instead develop business logic and other value beyond that underlying infrastructure, the more it's clear that company is fixated on the wrong things. Often the "we can build it" mentality is more about job preservation than advancing the company's interests.

Missing pieces

But what about those times when the public cloud providers haven't built the functionality a company needs? Well, Kehoe has an answer for that:

Say a provider is lacking a feature that you want in order to build some business value. First question: can you work around it, using fully managed svcs? The answer is usually yes. It often takes some duct tape, but my experience says it almost always still works fine, and "fine" is almost always acceptable.

But suppose it's not, and you can't create this business feature with existing managed services. The next question is, what's the opportunity cost of building it yourself? It's a lot of work, both upfront and ongoing. What else could you be building with that time? How much other business value could you provide by setting that goal aside and coming back to it when provider offerings have improved?

Not everyone agrees, of course. Software engineer and data scientist John Grant, for example, responded to Kehoe by arguing that the upfront development and ongoing maintenance costs of building out your own Kubernetes cluster is worth it if you're able to differentiate through customization: "[It] pays for itself when you gain competitive advantage. When the custom build feature becomes a commodity cloud service then migrate to reduce operational overheads."

SEE: What is cloud computing? Everything you need to know about the cloud, explained (ZDNet)

That sounds great but isn't, according to Kehoe: "For most businesses, the marginal performance gain you get by owning the technology is outweighed by the opportunity cost involved in tying up resources to support that technology. A greater competitive advantage is the ability to ship more user-facing features faster." Build on the cloud, in other words, and let the faster-moving cloud providers do the heavy-lifting for infrastructure. This frees up time to focus on business value.

For those who think they can out-innovate an AWS or Microsoft in core infrastructure, most companies, most of the time, simply can't. Or shouldn't. Customers won't see the value from having a tailored Kubernetes cluster--they just might if you instead spent more time on customer-facing applications.

Also see