Cloud native is one of those terms that caught the wave of tech press hype. The term is so hot right now that some companies are “cloud native washing” their products and services to ride the cloud native wave.
Unfortunately, many of them don’t understand what cloud native is, or truly understand its core benefits. However, like sharks that can scent blood in the water, these companies do realize that a second cloud computing revolution could be upon us.
To begin, let’s address the confusion. Many take the term “cloud native development” just the way it sounds: The building of software systems that are native to a specific cloud provider such as AWS, Microsoft, or Google. Thus, they can leverage that provider’s native security services, governance services, database services, etc., and allow the application to get the most from that cloud provider.
In contrast, non-native systems would be decoupled from a specific cloud provider. While the systems can run and function, they don’t take advantage of native cloud services. Therefore, they may cost a bit more to run, and they don’t take advantage of useful native cloud services that would make the application perform better. Because they don’t leverage services from the native cloud provider, you have to write or integrate the services yourself.
Despite those who take the term literally, there is a growing number of people and organizations that look at cloud native as an emerging architectural pattern.
Also see: Cloud Native Winners and Losers
What’s the Value of “Cloud Native”?
The emerging definition of cloud native can be counted as the true revolution in how we design, build, deploy, and operate systems moving forward. In other words, this new cloud native approach rethinks how we get more value out of the software systems we create, and how we leverage these approaches on all platforms, not just public clouds.
This new way of looking at the value of cloud native includes the Cloud Native Computing Foundation’s (CNCF) explanation: “Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.” Perhaps better put, cloud-native applications can be deployed across multiple cloud environments, including traditional platforms. This is core to the emerging cloud native proposition and defines what the fuss is all about.
The CNCF works with a larger idea: If you do cloud native right, you’ll provide dynamic and scalable application behavior on many platforms that include public clouds, private clouds, and even legacy systems. Most are taken aback by the support of legacy and even older private clouds. However, the idea is to promote a method of getting something done without focusing on the underlying technology.
Also see: Top Cloud Companies
Containers and Microservices
Typically, a cloud native approach requires the sophisticated use of containers, container orchestration, and microservices to avoid lock-in, which is a desirable outcome of going cloud native.
New cloud native systems usually define a common stack where the private and public clouds are the foundation that can reside on any platforms. These platforms would include legacy computing, edge computing, and any emerging platforms that may appear in the future. Again, the idea is to build things differently, with a focus on the “big picture” end goals of the system under development. If the focus was just on a particular technology, the value would be short-lived.
With all that said, we can define cloud native as an approach with the following advantages:
- It leverages the architectural advantages defined by public clouds without having to run on specific clouds.
- The architecture is a collection of independent microservices that can exist in one or more lightweight containers.
- The foundational platforms, including clouds, don’t typically provide services directly to the application, instead they use a layer of abstraction.
- These cloud native containers allow simplified deployment to any platform, including legacy systems, cloud computing platforms, or even remote devices.
- The cloud native containers can obtain common services supported by the platforms, to the limits of the platform, such as scalability.
- Common services such as security, governance, and operations can be defined across containers, and can be leveraged with or without direct engagement with the host platform.
- Cloud native containers may move from platform to platform, such as cloud-to-cloud or cloud-to-legacy, without significant disruption of the behavior of the software and the patterns of data storage.
Also see: Why Cloud Means Cloud Native
What’s the Cloud Native Revolution?
Many of the advantages listed above can be found in past architectural approaches, such as container development and orchestration, or in enabling technologies, such as services offered by most public cloud providers.
What’s new here is that we’re looking at cloud native as a concept of “how” and not “what.” Cloud native is not about technology; it’s about how we approach systems design, development, and deployment, no matter what technology and/or platform we deploy.
The focus of cloud native won’t be on the hottest new cloud technologies to build and deploy applications. Cloud native leverages several open technologies that, unto themselves, are not true solutions. However, when combined with the specific architectural patterns we’ve listed above, any number of technologies can be leveraged to live up to cloud native design patterns.
The goal of cloud native is to provide software systems that are more likely to solve the business problems at hand and be more durable moving forward than the more traditional approaches to application development. Cloud native also means that we no longer focus on the development technology or the platforms. One of the side effects of moving to cloud native development is that we now define how something is done, and not what technology to leverage.
Cloud native will be a perplexing conundrum for those vendors, cloud and not, that want to define their technology as providing a specific value that’s different from their competitors. The cloud native approach will force many technology vendors and cloud service providers to figure out ways to work and play well together to allow for cloud native development and deployment, where many different technology configurations and solutions become part of the end-state cloud native solution.
Necessary Elements to the Cloud Native Revolution
This revolution only works if there are a few pieces that fall into place.
First, cloud native needs to be adopted by those charged with building and deploying systems. No matter how compelling cloud native is, the adoption factor will be the most difficult to achieve since the direction of the technology market is always difficult to predict.
Second, vendors and cloud service providers must work together to provide interchangeable and mostly open technologies. They can’t keep focusing on unique ways of doing things that fall outside the bounds of cloud native. Instead, they need to focus on how their customers would like to build the systems and the end-goals of those systems.
With those two pieces in place, the term “cloud native revolution” will take on its true meaning. Cloud native is a sea-change in how we build and deploy systems moving forward. Moreover, its focus is to remove technology dependency from the equation. That’s never been possible in the past. Let’s see if we can make cloud native work now so we can look forward to a brighter future.