We’re used to getting mobile apps through Apple’s App Store or Google Play, but when it comes to enterprise apps, the experience is dramatically different, and dramatically worse. According to Weaveworks CEO Alexis Richardson, however, it doesn’t have to be this way. Though we’re perhaps decades away from enterprise software being made available through an app store-like experience, we’re also much closer to such benefits than we might think. The trick, Richardson said, isn’t really to finagle multi-cloud deployment of applications.
No, for most enterprises, most of the time, they’re just trying to ensure consistency in application configuration on the same cloud (or data center). Fortunately, Kubernetes and GitOps have combined to make this possible.
SEE: Hiring Kit: Cloud Engineer (TechRepublic Premium)
Same app, different places
This wasn’t the first time I’ve talked with Richardson about the enterprise app store experience. Nor is it a secret he’s shared only with me. In fact, at a recent conference Richardson addressed the topic in his keynote. What I hadn’t appreciated, however, was that the appeal of this “enterprise app store” isn’t because customers are clamoring for multi-cloud. Rather, it’s about consistency within the same cloud (or data center). “A key thing you need to enable the enterprise app store model is when you do a deployment, whether you’re setting up a cluster or deploying an app or both, you want the results to be identical. So you want to say it’s the same app in different places,” he told me.
Now that doesn’t necessarily mean that every single underlying configuration is identical because, for example, if you’re running on AWS, you might use DynamoDB but if you’re running on Microsoft Azure, you might use CosmosDB. “But fundamentally for the end user it’s the same application, based on an identical set of software components, and they run the same way on the underlying services,” Richardson said.
This sounds like multi-cloud, but it’s not. Not really.
You know multi-cloud: the idea that you can take the same application and magically move it from cloud to cloud, or run the same application across different clouds. Some customers do care about this, but for Richardson, there’s a much harder problem to tackle. Namely, ensuring you can deploy the same application, or machine learning platform or whatever, again and again and again, identically on the same cloud (or on premises), on demand.
“This is easy to say,” Richardson said, “but quite hard to do.”
SEE: Multicloud: A cheat sheet (free PDF) (TechRepublic)
Same. Same. Same.
If you’re not in enterprise IT, running code at scale, this probably seems like a strange statement. Surely it should be simple to ensure an application will work the same if you’re keeping it on the same cloud/data center? Reality is different. Say you and I, for example, opted to set up Kubernetes on the same AWS availability zone (Hello, US-East!), with the same machine learning components. Same. Same. Same. And we hope to make that platform available to a data science team within our company. In the Apple App Store world, we can be running the same hardware, OS version, etc., and any underlying differences Apple takes care of. In the enterprise, despite all that seeming “sameness,” we can’t know that the machine learning platform actually is the same unless we can compare the running systems with a configured model.
Pre-Kubernetes, pre-containers and GitOps, we didn’t have this ability. Now we do. GitOps, Richardson said, “provides a consistent way for any developer to manage the whole stack securely, correctly, and automatically.”
With the Kubernetes/containers and GitOps combination, enterprises finally have the ability to easily install and operate on multiple clusters and clouds. In turn, companies can run applications and infrastructure when they want (shutting down services as needed), while automating the patching/updating of apps, like consumers have with the app stores. And because it’s the enterprise, Kubernetes/GitOps also ensures compliance based on enterprise policies and verified operations. This is what enterprises want.
Most enterprises, in short, aren’t madly trying to move hundreds or thousands of applications between clouds. No. Instead they’re trying to get hundreds of applications to behave, to be managed, in one place. They’re struggling with foundational issues like how to upgrade those applications, or create a new region, or move applications from edge to somewhere else in their infrastructure footprint.
And, while they may not have an Apple App Store experience quite yet, we’re getting much closer, thanks to Kubernetes and GitOps.
Disclosure: I work for MongoDB but the views expressed herein are mine.