What Does “Cloud Native” Mean?
If you’re reading this, chances are you are familiar with this the term “cloud native” or have at least heard or read it somewhere. I still remember the first time I heard it a few years back and it made sense at the time: “Oh, that must mean something like software that was written with cloud computing in mind from the very beginning”.
Over time, the term has gotten much more use and often in increasingly specific and (to me, at least) much less straightforward contexts. An entire foundation was named after it and I myself am writing this very article on behalf of CloudNativeX, an organization which works closely with the many of the leading-edge innovators in this industry, so you can imagine this is a highly relevant topic for me.
Cloud native: ask for a definition, get a discussion…
I recently had the privilege of conducting a series of video interviews with founders, experts and leaders from the cloud native industry. At some point during each of these conversations I made sure to ask the same simple question: “What exactly is cloud native and what does that term mean to you?”
I got a lot of fascinating and insightful answers. In general, they tended each to fall into one or more of the following categories:
- The technical answer, usually based on the CNCF definition of cloud native referring to containers, kubernetes and related technologies.
- Method-oriented responses referring to the overall end-to-end process of deploying, automating and managing data center infrastructure, mostly – but not strictly – in the public cloud.
- Objective-based responses referring to elasticity, scalability and resiliency of applications achieved by taking advantage of the theoretical limitlessness of the cloud.
While each of these perspectives is highly pertinent, when taken all together it can get a little confusing – apparently cloud native technology may or may not actually use the cloud or containers, neither of which themselves are necessarily new or original concepts. If you squint and look at it sideways, it can start to look like the term simply refers to “everything that has to do with IT infrastructure”.
I don’t agree with that conclusion by the way, but I do think that we need to take a fresh look.
To understand cloud native, you need to understand its context
The best way to approach a topic like this is perhaps to take a step back put things into a bit of historical perspective.
Over the past 10 or 15 years or so, the majority of innovation in our industry has taken place in three categories areas (Fig 1):
- Cloud Computing: AWS, Azure, Google Cloud, Alibaba, etc.
- Automation & Orchestration: Kubernetes, Terraform, and other DevOps oriented technologies.
- AI & Data Analytics: Data Lake, Machine Learning, Deep Learning, etc.
While there is still a long way to go in each of these areas, we’ve reached a point today where most of the standards and major players have been identified and are becoming widely adopted.
If there is one thing, however, that stays constant in our business it’s constant change. Even as we adopt the standards, the innovation continues. Where will the next waves come from? The most recent waves emerged out of the overlaps of the previous waves (storage, networking and compute) and similarly the next waves will emerge from the overlaps of the current waves – that is, the areas where big data, big automation and big cloud converge (Fig. 2).
It seems like practically every day we see new companies and products emerge which are defining the contours of the next big trends in technology. AIOps is evolving the way we manage resources; multi-cloud data tools are unlocking where we can store and use those resources and the latest security and DLP technologies are leveraging machine learning and other technologies to ensure those resources remain safe and compliant.
So then, what does “cloud native” mean?
If you reconsider the definitions above in the light of this discussion and you’re not satisfied with “who cares?” as an answer, I’d strongly suggest the answer is “all of the above.” But in reality, I think it really depends on the problem you’re trying to solve and who you are trying to solve it for.
In my opinion, “cloud native” technologies – as we know them today – are those which best suited to provide applications maximum elasticity, resiliency, and “limitless” scalability, which at the moment happen to take the form of containers, Kubernetes, and the cloud, but will of course continue to evolve.
My guess is that 5 years from now, we will continue to use what we are referring to today as “cloud native” technologies and methodologies, but much like the “Information Superhighway” we will probably not be using the term itself very much. Until then, we’ll be watching closely and sharing our learnings and insights.
Sign up to be notified about upcoming cloud native events: