The cloud-native concept emerges as cloud computing enjoys rapid development. Cloud-native has become extremely popular. You will be considered outdated if you do not understand Cloud-native as of this year.
Although many people are talking about cloud-native, few have told you exactly what cloud-native is. Even after finding and reading some cloud-native materials, most of you may still feel confused and lack a complete understanding of cloud-native. At this point, you might start to doubt your intelligence. In my case, I always tend to blame the authors' stupidity for my incomprehensibility of certain articles, though this is not necessarily true. However, this way of thinking prevents me from being held back by my self-doubt and I can try to remain positive.
The reason why cloud native cannot be explicitly described is the lack of a clear definition. Since cloud-native is undergoing constant development and changes, no individuals or organizations have the absolute right to define cloud-native.
Cloud-native is an approach to building and running applications. It is a set of systematized techniques and methodologies. Cloud-native is a compound word made up of "cloud" and "native". The word "cloud" represents applications residing in the cloud instead of in traditional data centres. The word "native" represents applications that are designed to run on the cloud and fully utilize the elasticity and the "distributed" advantage at the very beginning of application design.
The cloud-native concept was first put forward by Matt Stine at Pivotal in 2013. In 2015 when cloud-native was just becoming popular, Matt Stine defined several characteristics of cloud-native architectures in the book Migrating to Cloud-Native Application Architectures: 12-factor applications, microservices, self-service agile infrastructure, API-based collaboration, and anti-fragility. At an InfoQ interview in 2017, Matt Stine made some changes and indicated six characteristics of cloud-native architectures: modularity, observability, deployability, testability, replaceability, and handleability. The latest description about cloud-native architectures on the official Pivotal website shows four key characteristics: DevOps, continuous delivery, microservices, and containers.
In 2015, the Cloud Native Computing Foundation (CNCF) was founded. CNCF originally defined four characteristics of cloud-native architectures: containerized encapsulation, automated management, and microservices. In 2018, CNCF updated the definition of cloud-native architectures with two new features: service meshes and declarative APIs.
As we can see, different individuals and organizations have different definitions for cloud-native architectures, and even the same individual or organization has different definitions for cloud-native architectures at different points in time. This complexity makes it hard for me to clearly understand cloud-native architectures. After a while, I came up with a simple solution: to choose only one definition that is easy to remember and understand (in my case, DevOps, continuous delivery, microservices, and containers).
In a word, cloud-native applications are required to meet the following: Implement containerization by using open-source stacks like K8s and Docker, improve flexibility and maintainability based on microservices architectures, adopt agile methods, allow DevOps to support continuous iteration and automated O&M, and implement elastic scaling, dynamic scheduling, and efficient resource usage optimization by using cloud platform facilities.
Cloud-native supports simple and fast application building, easy deployment, and allows applications to be scaled as needed. Cloud-native architectures bring many advantages over traditional web frameworks and IT models and have almost no disadvantages. Cloud-native architectures are a powerful secret weapon in this industry.
Great architectures come into being after evolving and progressing over time. They are not created all at once. Therefore, it is meaningless to talk about architectural design. The purpose of architectural evolution must be to solve a certain problem. We can address the problems listed below to better understand the design the cloud-native architecture:
Single-microservice applications are adapted to the cloud-native architecture due to their low complexity and comprehensive set of functions for monitoring, governance, deployment, and scheduling supported by the strong underlying system. However, from the perspective of the overall system, the complexity does not decrease. Instead, enterprises must bear the high costs of building a robust underlying system with strong architectural and O&M capabilities.
Besides, the technology stacks and middleware systems used by enterprises to achieve these functions are closed and highly private, making it difficult to meet all business needs (as is the case with Alibaba). Cloud hosting can reduce the overall complexity of such a project. The cloud service provider can take over the complex underlying system and provide attentive services. Projects will eventually evolve into an infrastructure-free design and use YAML or JSON declarative code to orchestrate the underlying infrastructure, middleware, and other resources. In this way, the cloud can meet every need of an application. Eventually, enterprises will embrace an open and standard cloud technology system.
In the cloud era, we require novel thinking and concepts to properly understand application architectures and IT infrastructure to correctly answer the question "what does it mean to be cloud-native." The future is undoubtedly cloud-native. Therefore, in addition to tools, enterprises seeking to transform themselves need a complete philosophy that progresses from concepts to methodologies and then to tools. Only in this way can we better embrace the arrival of the cloud era and maximize the value of cloud-native architectures.
What is cloud-native? Everyone has his or her interpretation of this term. Drawing on extensive discussions and practical experience from various projects, this article presents the interpretation of cloud-native technologies Alibaba's delivery experts. It discusses how to build cloud-native applications, key cloud-native technologies, and ideas about cloud-native implementation.
In this article, we will review the concepts and definition of cloud-native in detail, and discuss its potential applications and impacts.
Alibaba Cloud Elastic Compute Service (ECS) provides fast memory and the latest Intel CPUs to help you to power your cloud applications and achieve faster results with low latency.
Simple Application Server is a new generation computing service for stand-alone application scenarios. It provides one-click application deployment and supports all-in-one services such as domain name resolution, website publishing, security, O&M, and application management.
Alibaba Cloud-Native Applications Management Solution, powered by Alibaba Cloud Container Service for Kubernetes (ACK) and Alibaba Cloud Container Registry (ACR), helps enterprises accelerate and secure the development, deployment, and management of applications cost-effectively. You can leverage its services to achieve faster time to market, improved cost performance, new innovative technology, and end-to-end security.
Alibaba Clouder - January 4, 2021
Alibaba Clouder - May 18, 2021
Alibaba Tech - July 2, 2019
Alibaba Clouder - January 5, 2021
Alibaba Developer - February 26, 2020
Alibaba Clouder - June 8, 2020
Accelerate and secure the development, deployment, and management of containerized applications cost-effectively.Learn More
Leverage cloud-native database solutions dedicated for FinTech.Learn More
Secure and easy solutions for moving you workloads to the cloudLearn More
Migrate your legacy Oracle databases to Alibaba Cloud to save on long-term costs and take advantage of improved scalability, reliability, robust security, high performance, and cloud-native features.Learn More
More Posts by Alibaba Clouder