Cloud Native Computing Foundation (CNCF) is an open source software Foundation dedicated to the popularization and sustainable development of Cloud Native technology. Cloud native technology is a set of software, specifications, and standards that help businesses and organizations build and run agile, extensible applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, micro-services, micro-service governance, declarative APIs, etc., are representative cloud native technologies. These technologies enable loosely coupled systems to be more resilient, manageable, and easier to monitor and observe. These technologies, combined with powerful automation tools, allow engineers to make arbitrary changes to the system frequently and predictably, with minimal effort. Requires a lot of work from the entire development, test, and operations teams), and this is the value that cloud native technology hopes to bring to the technical team and the business.

CNCF Landscape is mentioned in the annual report of CNCF every year. CNCF Landscape is an important project in CNCF. It was started in November 2016, aiming to provide a resource map for cloud native users and help enterprises and developers to quickly understand the whole picture of cloud native system. The CNCF Landscape project has received more than 5,000 stars on GitHub, showing the attention and importance of developers and users. CNCF Landscape tracks a wide range of applications across the ecosystem by classifying most of the projects and products in cloud-native technology.

CNCF Landscape Map

The most important outputs of CNCF Landscape include a road map and a panorama. The Trail Map is CNCF’s recommended process for cloud native users to use open source projects and cloud native technologies. At each step of the roadmap, users can choose a vendor-supported product or use open source projects on their own.

CNCF Landscape Map

The roadmap is divided into ten steps, each of which is a step-by-step question that users or platform developers need to think about and deal with as they implement cloud-native technologies in the real world:

1. Containerization. The most popular container technology is Docker, which allows you to containerize applications and dependencies of any size, even some programs that are running on emulators. Over time, you can also segment your application and code future functionality as microservices.

2. CI/CD (Continuous Integration and Continuous Release). Create a CI/CD environment so that any changes to the source code can be automatically compiled, tested, and deployed to pre-production or even production environments through the container.

3. Application Choreography. Kubernetes is the most widely used application orcheography tool in the market. Helm Charts can be used to help application developers and publishers upgrade applications running on Kubernetes.

4. Monitor and analyze. In this step, the user needs to select monitoring, logging, and tracing tools for the platform, such as Prometheus for monitoring, Fluentd for logging, and Jaeger for tracing the entire application invocation chain.

5. Service proxying, discovery, and governance. Corens, Envoys, and Linkerd can be used for service discovery and service governance, respectively, to provide services such as health checks, request routing, and load balancing.

6. The network. Software such as Calico, Flannel, and Weave Net are used to provide more flexible networking capabilities.

7. Distributed databases and storage. Distributed databases provide greater flexibility and scalability, but they also require specialized container storage to support them.

8. Streaming and message processing. When applications require higher performance than the JSON-REST pattern, consider using GRPC or NATS. GRPC is a general-purpose RPC (remote call) framework (similar to RPC calls in various frameworks), and NATS is a publish/subscribe and load-balanced message queuing system.

9. Container mirror libraries and runtime environments. Harbor is by far the most popular container mirroring library, but you can also choose to run container programs in different container environments.

10. Software distribution. Finally, software such as Notary can be used for the secure release of software.

A panoramic view of CNCF Landscape

The CNCF Landscape Roadmap provides a practical step-by-step guide to the best practices for cloud native applications. However the whole practice process each link, users need to know what are the specific software and product choice, this is CNCF Landscape panorama work place (https://landscape.cncf.io/).

A panoramic view of CNCF Landscape

This panorama attempts to give the user a complete picture of the cloud native architecture in terms of the cloud native hierarchy and the different functional components, and to help the user choose the appropriate software and tools to support at the different component levels. In general, it divides cloud native ecology into the following layers:

Cloud

The bottom layer of the figure is Cloud (public Cloud, including AWS, Google, Azure, Ali, Baidu, Tencent, etc.) and Kubernetes authenticated service providers (mainly private Cloud, including XeCloud, Lingke Cloud, Bo Cloud, CaiCloud, DAOCloud, Rcher, etc.)

Provisioning

  • Once you have a physical machine or virtual machine, Provisioning needs to have a standardized base environment for the container before running the containerized service. This is where Provisioning comes in. In the Provisioning layer, there are several functional modules:
  • Automation & Configuration: Automated deployment and Configuration of container running platforms and environments. Representative tools and vendors include Ansible, Chef, Puppet, VMware, OpenStack.
  • Container mirroring library: Container mirroring library is one of the core components in the whole CNCF cloud native, because all applications in the container-based running environment need to use container mirroring library for installation and deployment. Container mirror libraries are divided into public and private ones. The public Container mirror libraries include Docker official Registry, AWS ElasticContainer Registry, Google Container Registry, etc. Harbor is widely used among private mirroring repositories, led by VMware’s China team, and a number of container platforms are currently building their mirroring repositories based on Harbor.
  • Security & Compliance: Notary and TUF (The Upgrade Framework) are two major projects in this area. TUF is an open source Security standard, and Notary is one of The implementations. In addition to ensuring the provenance of the software, Notary software also ensures that the contents of the image are not modified anywhere in the mirror supply chain without the approval of the container mirror provider, thus ensuring that security is seamlessly and uniformly embedded throughout the workflow from development to operation.
  • Key Management: It is mainly used for secret Key Management across the container platform.

Runtime 

The Runtime layer can be understood as the entire operating environment of the container, and it is the most core part of the cloud native, which includes three major parts: computing, storage and network:

  • Container Runtime: Docker is the most widely known Container running environment, but there are several other Container environments running in production. Containerd is a core container runtime that conforms to the OCI specification and is designed to be embedded in large systems. It was started by Docker Inc and donated to CNCF in March 2017. In addition, CoreOS’s RKT is a CLI for running application containers on Linux, as well as a secure, composable, standards-based container virtualization runtime environment.
  • Cloud-native Storage: At first, the container is a stateless running unit. The file system on the top layer of the container cannot save the files or data written during running. After the container is rebuilt or restarted, the written data will be lost. However, with the gradual application of middleware such as database and message queue in the container environment, users’ understanding and demand for container persistent storage are more in-depth and urgent. We’ll look at container storage in more depth later in this article.
  • Cloud-native Network: Network has always been the most flexible part of virtualization technology. At present, most customers mainly use Calico, Flannel, Open vSwitch and other solutions.

Orchestration Management 

This layer is mainly responsible for the orchestration and scheduling of the container platform, including service discovery and governance, remote invocation, service proxy, micro-service governance and other components, including:

  • Scheduling & Orchestration: Kubernetes is definitely the number one player in this field, and the container ecology based on Kubernetes has been developing rapidly. Other orchestration tools include Mesos, Docker Swarm, and more.
  • Coordination & Service Discovery: A very important point in distributed computing is the collaboration between various services and service discovery (or problems found by nodes). From the old ZooKeeper to Consul (the default use of Docker Swarm), which is popular in many Internet vendors and applications in recent years, it can be used for the discovery and configuration of distributed services. Kubernetes uses ETCD under CoreOS by default.
  • Remote Procedure Call: There are usually two ways to communicate between microservices, one is HTTP REST-JSON and the other is RPC, which is more efficient than RPC. The popular ones include Google’s open source GRPC, Apache’s Thrift framework, Netflix’s open source Ribbon with its own load balancing, and AVRA’s data serialization framework.

App Definition and Development

This layer is the specific applications and tools that run on the container platform, which can be thought of as the container platform’s app store. According to the use scenarios of different functions of the application, it can be roughly divided into the following types: Databases (e.g. MySQL, MariaDB, MongoDB, PostgreSQL, Cassandra, TIDB, etc.), stream processing and message queues (e.g. Spark, Storm, RocketMQ, Kafka, RabbitMQ, etc.), applications and mirroring (for encapsulating applications) A standard image that enables applications to run on standard container platforms such as Helm, Docker Composer, Packer, etc.), CI/CD (most commonly Jenkins, Atlassian’s Bamboo, etc.).

Platform 

Horizontally, the whole cloud native also includes a large number of certified platform providers.

Observability and Analysis 

This section contains a number of tools for monitoring the platform (Prometheus, Nagios, Grafana, Zabbix, etc.), logging (Fluentd, Elasticsearch, Logstash), and tracking (Jaeger).

To sum up, the CNCF Landscape panorama contains mature or widely used products and schemes with best practices in the CNCF community for users to choose in practical applications.

In the part of cloud-native Storage, Yrcloudfile of Yan Rong Cloud is the only container Storage product listed in CNCF Landscape in China.

Compared with other products and open source solutions in the CNCF Landscape cloud-native Storage part, YRCloudFile has a large number of unique and important features:

  • Support stateful container in the case of node failure, cross-node second level reconstruction, help stateful POD effectively respond to node failure.
  • Provides fine-grained (PV level) disaster resilience for multiple data centers, creates and uses different protection levels of PVs according to service SLA requirements, and significantly reduces data access latency through prioritized local read technology.
  • Support PV Quota, QoS and other enterprise-level features to ensure that storage resource preemption does not occur between PVs.
  • Support RWX, RWO, ROX and other read-write access modes.
  • It provides CSI and FlexVolume interfaces, and completes the docking with many container platform suppliers such as Lexin Cloud, Harmonic Cloud, Rancher, Cisco, etc.
  • Through PV Hot Spot function, quickly locate data access Hot spots for upper business and eliminate system access bottlenecks.
  • PV Insight provides Insight into PV internal data distribution and temperature to provide decision-making basis for PV internal data governance.
  • Prometheus Exporter, and integrate with Grafana, to complete the integration and unification of the surveillance system.
  • Full interface presentation of Kubernetes platform POD, PV, PVC between the relationship.
  • Real-time monitoring of PV performance, historical monitoring records and alarms.
  • PV dynamic Resize.
  • Support for RDMA, providing extreme performance.

Through the above introduction, I believe that we have for many native applications in the cloud, especially container storage areas into practice team of engineers, cios construction provides a clear train of thought and selection standard, we also will be gained in the construction of the cloud native experiences and lessons to share for you, to help customers more smoothly completed the transformation of business to the cloud native.