# 什么是云原生

### 什么是云原生 <a href="#toc66835148" id="toc66835148"></a>

云原生是一套技术体系和方法论。

* &#x20;云：表示应用程序位于云中
* &#x20;原生：表示应用程序从设计之初就考虑到云的环境，原生为云而设计，在云上以最佳状态运行。

&#x20;

CNCF（Cloud Native Compute Foundation） 是 Linux 基金会旗下的一个组织，主要作用是在推动以容器为中心的云原生系统。

&#x20;

云原生全景：<https://landscape.cncf.io/images/landscape.pdf>

大图标的都是CNCF毕业项目共16项， 孵化项目为33项，会员产品/项目共1647项。

<figure><img src="https://2774253028-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LxZ3g61O4Qp4qY2guHB%2Fuploads%2F5Y14wtgfB5nSnT158BT9%2Fimage.png?alt=media&#x26;token=4217080e-1779-430a-b4a5-c81d67361278" alt=""><figcaption></figcaption></figure>

共分为六层：

* &#x20;供应层
  * &#x20;为云原生应用准备标准基础环境所涉及的工具，包括了基础设施的创建、管理、配置流程的自动化、容器镜像扫描、签名和存储等
  * &#x20;提供设置和实施策略，在应用程序和平台中构建身份验证、授权、处理密钥分发等；
* &#x20;运行时层
  * &#x20;在CNCF全景图中，运行时是保障了容器化应用程序组件的运行和通信，云原生存储、提供隔离、资源和安全、云网络。
* &#x20;编排和管理层
  * &#x20;为云原生应用提供自动化和弹性能力，使云原生应用天然具有可扩展性。
  * &#x20;提供编排和调度、协调和服务发现、远程进程调用（RPC）、服务代理、API网关、
* &#x20;应用程序定义和开发层
  * &#x20;提供数据库、流和消息传递、应用程序定义和镜像构建、持续集成和持续交付（CI/CD）
* &#x20;平台层
  * &#x20;将不同工具捆绑解决问题
* &#x20;贯穿所有层
  * &#x20;云原生全景右侧贯穿所有层的两列，可观察性和分析是监控各层的工具。
  * &#x20;日志工具、监控方案、追踪工具、混沌工程

最底层提供了构建云原生基础设施的工具，越往上的每一层都更接近实际的应用程序。

而Kubernetes是整个云原生技术栈的核心
