What are Cloud Native and CNCF?

1. Introduction to CNCF

CNCF: The full name of Cloud Native Computing Foundation (Cloud Native Computing Foundation), established on December 11, 2015, is an open source software foundation dedicated to the popularization and sustainable development of Cloud Native technology.

The original intention or vision of the establishment of the CNCF organization, simply put:

  • Promote the sustainable development of cloud native computing;
  • Help cloud native technology developers build great products quickly:

 

2. CNCF Landscape Roadmap

The most important outputs of CNCF Landscape include a roadmap and a panorama. The Trail Map is CNCF's recommendation process for cloud-native users to use open source projects and cloud-native technologies. At each step of the roadmap, users can choose vendor-supported products or roll their own with open source projects. 

The entire roadmap is divided into ten steps, and each step is a question that users or platform developers need to think about and deal with step by step when they implement cloud native technology in the actual environment:

  1. containerized . The most popular containerization technology right now is Docker, and you can containerize applications and dependencies of any size, even some programs that run on emulators. You can also partition the application over time and write future functionality as microservices.
  2. CI/CD (Continuous Integration and Continuous Release) . Create a CI/CD environment, so that any modification on the source code can be automatically compiled, tested through the container, and deployed to the pre-production or even production environment.
  3. Application Orchestration (Kubernetes) . Kubernetes is currently the most widely used tool in the field of application orchestration on the market. Helm Charts can be used to help application developers and publishers upgrade applications running on Kubernetes.
  4. Monitoring and Analysis . In this step, users need to select monitoring, logging, and tracking related tools for the platform, such as using Prometheus for monitoring, Fluentd for logging, and Jaeger for tracking the entire application call chain.
  5. Service brokering, discovery and governance . CoreDNS, Envoy, and LInkerd can be used for service discovery and service governance respectively, providing functions such as service health check, request routing, and load balancing.
  6. network . Software such as Calico, Flannel, and Weave Net are used to provide more flexible network functions.
  7. Distributed database and storage . Distributed databases can provide better elasticity and scalability, but at the same time require professional container storage to support them.
  8. Stream and message processing . When the application requires higher performance than the JSON-REST mode, you can consider using gRPC or NATS. gRPC is a general RPC (remote call) framework (similar to RPC calls in various frameworks), and NATS is a publish/subscribe and load balancing message queue system.
  9. Container image library and runtime environment . Harbor is currently the most popular container image library. At the same time, you can also choose to use different container runtime environments to run container programs.
  10. Software release . Finally, software such as Notary can be used for safe release of software.

 

3. CNCF panorama (Landscape)

The CNCF Landscape roadmap helps users sort out the best process of the entire cloud-native application from the practical steps. However, in every link of the entire practice process, users need to know what specific software and product options are available. This is where the CNCF Landscape panorama comes into play (https://landscape.cncf.io/).

This panorama attempts to let users understand the overall picture of the cloud native system from the perspective of cloud native hierarchy and different functional components, and helps users choose appropriate software and tools for support at different component levels.

4. Introduction to Cloud Native

Cloud native (cloud native) is a software architecture idea based on the cloud , and a distributed cloud based on distributed deployment and unified operation and management, and a set of cloud technologies based on container, microservice, DevOps and other technologies Product System.

  • Literally, cloud native can be divided into two parts : cloud and native .
  • The cloud is opposite to the local. Traditional applications must run on local servers. Now popular applications run on the cloud. The cloud includes IaaS, PaaS, and SaaS.
  • Native means native. When we start designing applications, we consider that the applications will run in the cloud environment in the future. We must make full use of the advantages of cloud resources, such as: the elasticity and distributed advantages of cloud services.

How to develop a program suitable for deployment in a cloud environment? In fact, there are several development principles that need to be followed:

 

1. Containerization (docker + k8s)

The advantage of containerization is that it is no longer necessary to care about the technology stack used by each service during operation and maintenance. Each service is encapsulated in a container without distinction, and can be managed and maintained without distinction. Now it is a more popular tool It is docker and k8s.

2. Microservices

Microservices solve the low coupling + high cohesion we have been pursuing in software development, and microservices correspond to our traditional single application. Microservices also recommend using RESTful APIs for communication.

3. Serverless

The serverless architecture does not mean that servers will no longer be needed in the future, but that it will no longer focus on the underlying infrastructure, and more attention can be placed on some logic implementations that are more related to the business . For example, the code fragments of some functions, the platform automatically deploys and starts according to the load on demand, and automatically scales the code logic to meet the needs of business processing.

4、DevOps

DevOps (a combination of Development and Operations) is the integration of development, operation and maintenance. Involves continuous development, continuous testing, continuous integration, continuous deployment, and continuous monitoring of software throughout its development lifecycle.

  • Wikipedia's definition of DevOps is a bit of a mouthful. In fact, to simplify it, DevOps advocates a high degree of collaboration between development and IT operation and maintenance , so as to improve the reliability, stability, elasticity and security of the production environment while completing high-frequency deployment.
  • From another dimension, in a broad sense, DevOps not only needs to break through the departmental walls between development and operation and maintenance, but we believe that DevOps needs to consider the entire life cycle of the application to realize the full link opening and automation of tools throughout the life cycle, Cross-team online collaboration capabilities .

5. Service Mesh

Service Mesh is a topic that has emerged in recent years. Based on container microservices, Service Mesh allows users to manage communication between services in a more refined and intelligent manner . Istio, the flagship project of the Service Mesh community, is currently gaining popularity rapidly.

6. Cloud

The cloud is the foundation of cloud-native , and there is no cloud-native without cloud. Without a correct understanding of the cloud, it is impossible to have a correct way to open cloud native. For non-technical personnel, at least understand the various service models of the cloud, such as: IaaS, PaaS, SaaS, and the application scenarios and values ​​of various service models.

 

V. Summary

It is not difficult to find that cloud native is a very broad concept. It is not difficult to develop an application that supports cloud native. It may be a simple implementation that can be deployed based on containers, orchestrated and scheduled using Kubernetes, integrated CI/CD tools and Prometheus monitoring tools , etc.

 

 

Guess you like

Origin blog.csdn.net/summer_fish/article/details/131981608