Jiang Jiangwei, Senior Researcher at Alibaba Cloud Intelligence
“Cloud Native” has become such a buzzword that if you don’t talk about it, you are considered as being outdated or obsolete. Thus, cloud vendors increasingly see the value and technological benefit in joining CNCF.
There are several definitions of Cloud Native, such as “microservice + container + continuous delivery + DevOps”, as defined by CNCF, and other definitions by different cloud vendors. Alibaba Cloud established the Cloud Native Technology Committee in September 2020. Today, I would like to talk about what is real Cloud Native starting from the original aspiration of cloud computing.
1. The narrow view of Cloud Native
Let’s first review the origin aspiration of Cloud Native.
With the rise of cloud computing, a container wave, represented by Docker, swept across the industry, and was widely favored by DevOps and standardized delivery. Google then entered this field and proposed the innovative concept of Cloud Native from the perspective of unified deployment and standardization, and then released the open-source container-orchestration tool — Kubernetes. Later, Google established the CNCF Foundation and successfully gained a strong foothold in this industry.
In December 2020, CNCF’s ambassador Ian Coldwater posted a message on social media: “Kubernetes has now deprecated Docker support. You need to keep this in mind and plan accordingly as this may have an adverse effect on your cluster.”
This was a historic step in the Cloud Native strategy, and shows that equating Cloud Native with containers and service mesh was a narrow view.
2. The broad perspective of Cloud Native
So, what is Cloud Native in a broad sense? The real Cloud Native is the software, hardware, and architecture born from the cloud.
We believe that Cloud Native should be viewed from the perspective of customer applications. Applications deployed on the cloud must use one or more of the three types of capabilities that only large-scale public clouds could provide, namely elasticity and API automated deployment, operation, and maintenance, service-oriented Cloud Native products such as RDS and EMR, and software and hardware integrated architecture born on the cloud. This is Cloud Native.
First, Cloud Native applications are compared to the offline traditional enterprise physical IT equipment environment. They need to be deployed and managed in the cloud and should take full advantage of the supply efficiency of the cloud. Furthermore, they should be deployed globally, available instantly, and charged on a pay-as-you-go model.
The ability of customers to access the cloud in their vicinity is called elasticity. We published a book last year — Elastic Computing the Ubiquitous Computing Capability, which elaborates the underlying principles. It is possible to be Cloud Native only when such extensive elasticity exists. Kubernetes on the cloud is Cloud Native due to its API standardization of automated deployment, operation and maintenance.
Secondly, the concepts that are popular nowadays such as Cloud Native database, Cloud Native Big Data, Cloud Native container, Cloud Native middleware, and Cloud Native security, are all service-oriented Cloud Native products that are easily accessible on the cloud. These services, which are not available in the traditional offline model, can help enhance performance and reduce costs. This is Cloud Native.
The virtualization of integrated software and hardware represented by the X-Dragon architecture, is worth mentioning. The field of virtualization has experienced pure software virtualization, general-purpose hardware virtualization, and now integrated software and hardware virtualization.
By accelerating virtualization via the separation of computing and storage and the use of customized X-Dragon chips, performance higher than physical servers can be achieved. Based on this bottom layer of the cloud computing architecture, all middleware and application layers can gain performance-wise bonus without any code and architecture modification.
In addition, since the X-Dragon architecture supports unified architecture resource pooling, including ECI (Serverless Container), VM, bare metal, etc., all resources can be uniformly scheduled to achieve in-depth elasticity. This is also the first time that the industry has implemented unified architecture and resource scheduling, which is considered as the major technological contribution of Chinese cloud vendors.
In this sense, the X-Dragon architecture is born out of the cloud and is typically Cloud Native. Simply put, the advantages of X-Dragon cannot be fully utilized without a large-scale cloud computing scenario deployment.
Therefore, the original aspiration of Cloud Native is to be native on the cloud. If it lacks the basic characteristics of the cloud, it is not Cloud Native. To be extreme, if you bought two servers, placed them in your office, deployed containers on them, and then used Kubernetes to manage them, it is not Cloud Native and is not even cloud, as it lacks elasticity and automated deployment, operation, and maintenance capability by API.
CNCF is more about advocating that a system should use different components in its architecture to achieve internet architecture, to further achieve rapid iteration, flexible expansion, and efficient operation and maintenance. The utilization of these capabilities requires that the architecture framework is based on cloud, and a combination of cloud-based architecture framework and cloud itself is Cloud Native.
Many people may ask if a specific open source software is Cloud Native or not. That depends on its architecture. Take an open source database as an example, if its architecture still targets at traditional stand-alone and small-scale deployments, then it is not Cloud Native. If we maintain its interface compatibility with open source projects, make Cloud Native transformation and redesign, and fully utilize the basic capabilities of cloud in operation, maintenance, and control, then such software and services are Cloud Native, for instance, Alibaba Cloud’s PolarDB database.
3. Multi-cloud and hybrid cloud have accelerated Cloud Native
History is full of ups and downs, although seeing comes from believing, the process is full of complications. When you are driving on a winding road, often you only have a limited field of view.
The industry has developed multi-cloud and hybrid cloud to achieve higher cost effictiveness, fault tolerance, and efficiency. Multi-cloud means that customers deploy their workloads on different public clouds, while hybrid cloud means that customers deploy their workloads across public and private clouds.
Multi-cloud is a result of competition, although Amazon and Alibaba Cloud believe that one cloud vendor is sufficient for users. Whereas, hybrid cloud emerges for different reason. It is a cloud architecture built to satisfy customers’ desire to gradually enter the cloud and to meet the regulatory compliance needs in some industries.
No matter it is multi-cloud or hybrid cloud, cloud vendors will push customers to make unit transformation of their business, to reduce the difficulty of distributed deployment and increase customer acceptance, because that the Kubernetes has solved the problem of standardized deployment and migration.
In addition to Kubernetes and containers, customer’s business often involves elasticity, acceleration, and other service capabilities provided by public cloud, as well as the Cloud Native transformation of databases, Big Data, and audio & video systems. From this perspective, Kubernetes has accelerated the capabilities of narrow sense Cloud Native.
4. Cloud Native Chips
Cloud computing has generated new application scenarios and demands for CPUs, that is, Cloud Native chips.
For example, Alibaba Cloud’s X-Dragon chip is a Cloud Native chip. It is the core of the entire device as it enables the X-Dragon server to have full virtual machine characteristics and interfaces.
The MOC card based on the X-Dragon chip plays an important role in the entire architecture. With a wealth of management interfaces and external data interfaces, it can help us realize the functions of the elastic bare metal servers.
Cloud Native CPUs show some common characteristics: the main frequency is not necessarily high, the power consumption is extremely low, the cores run independently, the multi-core architecture can better support service mesh applications, and there is a mature software ecology.
5. Use Cloud Native thinking to optimally utilize Cloud Native architecture
It is important for cloud computing users to understand the meaning of Cloud Native. Rather than simply using containers to define your own system, using the real Cloud Native system in the design, development, and deployment cycles, will lead to huge competitive advantages and ensure you enjoy the bonus of cloud computing.
Much more than practice, Cloud Native is a mindset which will lead to transformation of different eras. Development environment of engineers should be born and thrive on the cloud. Tools like Wuying will enable the full life cycle of software development to be accomplished solely on the cloud, including product design document, development and debugging, deployment tools, test, POC validation and resource consumption etc.
Therefore, Cloud Native brings about the change in mindset and culture, and the productivity of the new era, far beyond the standardized Kubernetes interface that CNCF defined. This is the standard way of using cloud in the future.
6. What is the real Could Native
We are extremely lucky to experience a historic milestone of entering the cloud era.
Our future generations will be even more fortunate, as all the computing environments that they will touch, will be pure Cloud Native. They would live in a world where cloud computing resources are ubiquitous and inexhaustible, and they won’t care about where the cloud resources come from and how many resources exist, just like when we use tap water, we don’t bother thinking about where the water comes from.
Real Cloud Native is the software, hardware, and architecture born on the cloud. Technology born on the cloud is Cloud Native technology.