We all know the story: enterprises moved to cloud. They learned about data center virtualization and multi-tenancy and self service developer provisioning. Along came Kubernetes, and they moved to cloud native, where they learned about automation, DevOps, and infrastructure as code. Now, even though most enterprises are still figuring out how to do cloud native at scale, there’s a new imperative they must master: multi cloud native applications. And for almost every enterprise with a global footprint, the move to multi cloud native applications is not optional. It’s inevitable.
But before we explore why this is the case, let’s first retrace our steps. For almost every enterprise out there, the journey to cloud started with adopting a public or private self-service infrastructure provisioning and management model. These enterprises quickly realized that this new IT model required a new set of tools to solve challenges they’d never faced around enabling their developers with self service of provisioning, managing, and operating infrastructure. Enterprises figured it out, but as soon as they figured out cloud, they quickly had to gear up for the second phase: automating and operationalizing an enterprise-wide rollout of cloud operating models throughout their entire developer organizations.
Of course, this phase has its own set of challenges, and a rich ecosystem of tools emerged to address them. Even so, we all can agree that the majority of mainstream enterprises are still in this second phase. They’ve adopted cloud, they’ve expanded its use, and they’re grappling with the challenges around multi-tenancy, security, DevSecOps, and governance. Hand in hand with this goes a whole new set of challenges around cost management. Suddenly, enterprises are faced with managing the variable costs of public cloud infrastructure: optimizing compute infrastructure, utilization, and capacity to rein in cloud spend. It’s an issue Sarah Wang and Martin Cassado took head on in their research on the Trillion-Dollar Paradox.
So, enterprises moved to cloud and are now, for the most part, successfully grappling with scaling it. But nothing stays the same for long, and businesses drive IT to innovate. This is where cloud native entered the picture to help enterprise software development teams become more agile and help businesses transform to deliver new services and experiences faster. In fact, the consumer experience this model makes possible has rapidly become the norm.
Consistently delivering rapid software iteration across a global footprint forces DevOps organizations to grapple with an entirely new set of technical challenges: leveraging containerized applications and microservices architectures in production across multiple Kubernetes clusters running in multiple geographies. Customers want an on-demand experience. This third phase is what we call multi cloud native, and it was pioneered by hyperscale IaaS players like Google, AWS, Azure, and Tencent.
The reality is, of course, that hyperscalers aren’t the only ones who have figured out how to deliver multi cloud native apps. Webscale innovators like Doordash, Uber, Twitter, and Netflix have done it, too. To get there they had to make and share their multi cloud native apps across every geography where their customers live. And in turn, to make that happen they had to tackle a new set of challenges: develop new tools and techniques like geographically distributed, planet-scale databases and analytics engines, application architectures that run apps on the back end close to the consumer in a multi cloud native way. This enabled them to do arbitrage across fleets of infrastructure capacity across regions, all while giving their customers that instant experience they increasingly grew to expect.
What enterprises must realize is that this experience consumers have grown to expect from webscalers is rapidly becoming the same experience they expect when accessing their bank account, their insurance apps, and their tax records. For almost every planet scale enterprise, this sets up a whole new set of challenges: to span multiple clouds and multiple geographies running multiple Kubernetes clusters, you now must worry about new ways to do autoscaling, self healing, disaster recovery, operations management, and cost optimization—all of which are things that you’re just now getting figured out for VMs and clusters in single regions.
Enterprises must face the reality that cloud native application models are not not the destination but rather a way point along a journey to becoming multi cloud native. Because the consumer experiences delivered by webscalers make this the inevitable destination.
Don’t take my word for it.
Uber and Twitter public disclosures describe how the multi cloud native model is an integral part of their strategic game plan. Hybrid and multi cloud are part of this too, leveraging Kubernetes as a cluster manager, but they still need tools to manage all those clusters across multiple environments in multiple regions, at planet scale.
The bottom line is that the architecture that webscale companies are using is the same one enterprises will need to adopt tomorrow to remain competitive. Alternatively, these enterprises will cede market share and relevance to the next webscale innovator to disrupt an industry. In adopting this model of building multi cloud native apps, enterprises will have to deal with unified access management, controlling multiple clusters, resource management and more, all across multiple regions and clusters of capacity, aggregating vs disaggregating cluster resources, using logical services that span clouds versus namespaces that span a single cluster.
They will need a planet scale cluster manager to do this, something that can observe costs, operations, performance, and SLAs across clusters, across public and private clouds, spanning VMS and Kubernetes on a single pane of glass so they can operate above the clouds in an automated, easy to use way. Bandage solutions like running multiple spreadsheet models to figure out how to optimize are not scalable. What’s needed are tools like machine learning to automate and optimize at scale, bin packing technology to intelligently and automatically optimize across a planet scale infrastructure fleet, and high levels of automation either with humans in the loop or out. That’s how hyperscalers and webscalers are already doing it.
Every planet scale enterprise is multi cloud native, running data driven apps. It’s not a fiction: it’s already happening across webscale companies, not just hyperscalers. Multi cloud native is the path that every enterprise is going to need to follow if they want to transform themselves to compete with the next webscale upstart. The good news is, the pioneers have left us a map to follow.
Author: Somik Behera, Co-Founder and Head of Products, CloudNatix
Bio: Somik Behera is Co-Founder and Head of Products at CloudNatix, where he is working to bring planet scale cluster management to enterprises making the journey to multi cloud native apps. Previously, he led multiple product leadership roles at D2iQ (formerly Mesosphere), Nicira and VMware.