“Cloud native”, many people will be confused by this new term. What is cloud native and what can cloud native bring us? In fact, the concept of cloud Nativity was first proposed by Matt Stine from pivot in 2013. This is a collection of ideas that he summed up based on his years of architecture and consulting experience. It has been continuously improved by the open source community and has been used to this day.
1、 What is cloud computing
So what is cloud native? We try to understand “cloud” and “native” literally.
The literal sense of “cloud” is not difficult to understand. Simply speaking, it is a cloud floating in the sky. Under the environment of science and technology, this “cloud” refers to the network, the logo of the Internet and the current cloud computing. Therefore, we can say that “cloud” refers to cloud computing by default.
The literal meaning of “native” is local people, so in today’s technology environment, it means “the environment in which the application is located”.
So “cloud native” can be simply understood as: “an application system is designed and developed with the help of cloud computing related peripheral technology, so that the application can perfectly adapt to the cloud environment”.
Priyanka Sharma, general manager of cloud native Computing Foundation, explained that “cloud native technology means that engineers and software personnel use cloud computing to build faster and more flexible technology, which is to meet the needs of customers quickly.”.
On the official website (CNCF), cloud nativity is defined as service grid, declarative API, immutable infrastructure, microservice and container, which has become the basic impression of many people on cloud nativity.
To sum up, cloud nativity is a concept of rapid application construction, a collection of technologies for rapid application delivery.
There is also a very important knowledge point of cloud nativity, which is the cloud Nativity foundation. After all, if the concept of cloud Nativity needs to be implemented, it still needs to be picked up by the public. CNCF (cloud Nativity Computing Foundation) is committed to cultivating and maintaining a vendor neutral open source ecosystem to promote cloud Nativity technology. It can be said that the main purpose of CNCF is to cultivate the cloud Nativity tool market.
At present, the related projects opened by CNCF foundation are as follows:
The membership of CNCF foundation is as follows:
2、 Representative technology of cloud origin
As mentioned above, cloud nativity is an idea, a collection of technology stacks. Then the corresponding technology stacks mainly include: container, service grid, microservice, immutable infrastructure and declarative API.
Container: a container is a series of processes separated from the rest of the system. All the files needed to run these processes are provided by a single image, which means that the container is portable and consistent throughout the development, testing and production process. In short, a container is an "independent container" for storing applications and application related dependencies. According to the different characteristics of the goods transported, a variety of container types (i.e. container image) can be formulated Service Grid: service grid can be regarded as our usual agent software, but this agent software is more intelligent. Service mesh can be seen as an upgraded version of the traditional agent to solve the problems in the current micro service framework. Service mesh can be seen as a distributed micro service agent. Microservices: constructing applications as a set of loosely coupled services. In the microservice architecture, services are fine-grained and protocols are lightweight. In short, a single application is composed of many loosely coupled and independently deployable smaller components or services. Immutable infrastructure: here, infrastructure can be understood as the basic requirements for an application to run. The most basic point of immutability is that the server running the service will not be changed after the deployment. This refers to the container image. Declarative API: describes the state of the final running environment, and the system decides how to create the environment. For example, your description would be "create a cluster with three nginxs", instead of running the command to create nginx three times to form a cluster. The advantage is that when the running environment does not match the description, the system can detect the difference and repair it automatically, so that the system has the function of automatic fault tolerance.
These technologies can build a loosely coupled system with good fault tolerance, easy management and easy observation. Combined with reliable automation means, cloud native technology enables engineers to easily make frequent and predictable major changes to the system.
3、 What can cloud bring
In last year’s IDC (Internet Data Center) survey of enterprises, nearly 70% of them have implemented cloud strategy, but only 3% can bring obvious profit breakthrough. The difference lies in the “cloud practice maturity” of technology, that is, cloud proto chemistry.
MSP team (infrastructure platform service provider) in the face of a cloud project, the general process, first need to do the relevant business system research, and then select the corresponding cloud platform, and then give the relevant cloud solution, finally according to the solution to the business system migration or cloud transformation. However, in the face of mixed cloud or multi cloud environment, there are differences in cloud features, leading to differences in cloud practice.
The cloud service platform of cloud original biochemical can not only significantly reduce the cost of infrastructure and management, improve the flexibility and scalability of deployment, but also has high security.
In the aspect of micro service: cloud native decouples the application code into independent modular units, reduces the subordinate time and interdependence of micro services, and improves the scalability of applications. In terms of containerization packaging: in the past, program developers may need to create multiple virtual machines to make different applications work, but program containerization allows multiple applications to exist in the same operating environment. Developers can easily copy and publish code and micro services to any cloud platform by placing them in replicable and portable containers, Multiple containers will not interfere with each other (sandbox mechanism), which not only reduces management work, but also makes more effective use of hardware resources to achieve faster continuous integration, delivery and release. In the dynamic management: through the centralized scheduling system for dynamic management and scheduling, to achieve high-speed, low-risk, rapid expansion and deployment, to build, test and deploy applications or services.
With the above advantages and relatively consistent practice, cloud native can quickly break through the barriers of each cloud environment, and enterprises can make the fastest response to market changes, so that new cloud native enterprises have the power to constantly subvert traditional enterprises.
4、 Cloud native challenges
According to CNCF, the number of containers used in production has increased by 300% since 2016. According to this scale, if large-scale applications are deployed in the cloud (it is assumed that they are all running as container instances), then how can hundreds or thousands of containers of this application manage their whole life cycle, such as monitoring log collection, alarm, scheduling, etc And link call tracing between application modules will be one of the biggest challenges we will face.
It is hereby declared that:
This article is published in:Shuzhan Study Club
There is an open source project in GitHubFlinkXWelcome to communicate with us~