云原生--CNCF-2-五层生态结构(成熟度3层分类,云原生生态5层结构)

1、CNCF项目成熟度分类

CNCF(Cloud Native Computing Foundation,云原生计算基金会)将开源项目按成熟度分为沙盒(Sandbox)、孵化(Incubating)和毕业(Graduated)三级,用于评估项目的技术成熟度、社区活跃度和行业采用率。

(1)、沙盒(Sandbox)

  • 定义:

    沙盒是项目的初始阶段,处于此阶段的项目通常是新兴的、实验性的。它们可能只是一个初步的概念验证,或者是一个小型的工具,还未经过广泛的测试和验证。

  • 特点:

    灵活性高,发展方向相对不固定,可能会根据市场反馈和技术趋势快速调整。社区参与度可能相对较低,但充满创新活力。

  • 标准:

    • 至少需要2位CNCF技术监督委员会(TOC)成员赞助。
    • 项目需展示潜力,但尚未满足更高阶段的严格要求。
  • 作用:

    为创新项目提供安全环境,促进实验和社区协作。

  • 示例:

    例如Argo Workflows,它最初进入CNCF时处于沙盒阶段,是一个用于在Kubernetes上运行有向无环图(DAG)工作流的容器原生工具,后续逐渐发展壮大。

(2)、孵化(Incubating)

  • 定义:

    当沙盒项目在技术上取得一定进展,有了较为明确的发展方向,并且在社区中获得了一定的关注度和用户基础后,就可能进入孵化阶段。此阶段的项目需要证明其具有广泛的应用前景和可持续的发展能力。

  • 特点:

    有更完善的文档、测试用例和社区治理机制。项目团队需要积极与社区合作,收集反馈,不断改进项目。

  • 标准:

    • 需满足沙盒阶段要求,额外要求:
      • 至少有3个独立最终用户在生产环境中成功使用。
      • 拥有合理数量的提交者(持续贡献代码的开发者)。
  • 有大量持续的代码贡献和社区活动。

  • 作用:

    推动项目从实验阶段向生产就绪演进,增强社区协作和用户信任。

  • 示例:

  • Helm是一个用于管理Kubernetes应用的包管理器,在发展过程中经历了孵化阶段,逐渐完善了其功能和社区支持。

  • Envoy:云原生服务代理,后毕业成为Istio的数据平面。

    • Prometheus:后毕业为成熟监控工具。

(3)、毕业(Graduated)

  • 定义:

    毕业项目是CNCF生态中最为成熟和稳定的项目。这些项目已经经过了广泛的生产环境验证,拥有庞大的用户社区和强大的技术支持。成为云原生生态的核心组件。

  • 特点:

    具有高度的稳定性、安全性和可扩展性。项目的发展方向相对稳定,社区治理机制成熟,能够为企业级用户提供可靠的服务。

  • 标准:

    • 需满足孵化阶段要求,额外要求:
      • 在行业中有高采用率和广泛社区支持。
      • 通过CNCF毕业标准(如稳定性、安全性、可扩展性)。
  • 作用:

    作为行业标准,支撑关键基础设施,如Kubernetes、Istio等。

  • 示例项目:

    • Kubernetes:Kubernetes是CNCF最著名的毕业项目,它已经成为容器编排领域的事实标准,被全球众多企业广泛应用于生产环境。是CNCF的核心项目。
    • Istio:服务网格,快速毕业为成熟项目。
    • Prometheus:监控与告警系统。

2、CNCF云原生生态版图的五层结构

CNCF生态版图按技术栈分为五层,覆盖从应用开发到运维的全生命周期。

(1)、应用定义与开发(App Definition and Development)

  • 核心目标:
    为开发者提供构建云原生应用的工具和框架。
  • 关键工具:
    • 编程语言与框架:
      • Rust、Go(支持WebAssembly)。
      • Kubernetes Operators(自定义资源控制器)。
    • CI/CD工具:
      • Docker,一种轻量级的容器化技术,允许开发者将应用及其依赖打包成一个独立的容器;
      • Jenkins、GitLab CI/CD。
      • Helm(Kubernetes包管理工具,简化应用部署)。
  • 作用:
    这一层主要关注应用的定义、开发和部署过程。包括编程语言、框架、工具等,帮助开发者更高效地构建云原生应用。

(2)、编排与管理(Orchestration & Management)

  • 核心目标:
    管理容器化应用的生命周期,实现自动化调度和弹性伸缩。
  • 关键工具:
    • Kubernetes:容器编排的核心。容器编排系统的标准,管理容器化应用的生命周期。
    • Volcano:优化 AI/ML大规模训练的调度框架。
    • KubeArmor:基于eBPF的安全策略引擎。
  • 作用:
    负责对云原生应用进行编排、调度和管理。确保应用能够在不同的环境中高效运行,并根据需求进行自动扩展和故障恢复。

(3)、运行时(Runtime)

  • 核心目标:
    提供容器运行时、存储和网络支持,确保应用高效执行。
  • 关键工具:
    • containerd:容器运行时,管理镜像和容器生命周期。
    • CoreDNS,为Kubernetes集群提供域名解析服务
    • Cilium:基于eBPF的高性能网络和安全解决方案。
    • Rook:在Kubernetes上部署分布式存储(如Ceph)。
  • 作用:
    提供应用运行的环境,包括容器运行时、网络和存储等基础设施。确保应用能够在安全、可靠的环境中运行。

(4)、资源调配(Provisioning)

  • 核心目标:
    管理底层基础设施,支持动态资源分配和配置。
  • 关键工具:
    • etcd:分布式键值存储,用于服务发现和配置共享。
    • Terraform:基础设施即代码工具,自动化资源部署。
    • Open Policy Agent(OPA):策略引擎,实现细粒度权限控制。
  • 作用:
    通过声明式配置管理基础设施,支持多云和混合云环境。

(5)、观测与分析(Observability and Analysis)

  • 核心目标:
    提供监控、日志和链路追踪,确保系统可调试、可扩展。
  • 关键工具:
    • Prometheus:指标监控与告警系统,采集和分析指标数据。
    • Jaeger:分布式链路追踪工具,用于微服务链路分析。
    • OpenTelemetry:统一的观测数据收集和导出框架。
    • Chaos Mesh:混沌工程工具,模拟故障以提升系统韧性。
  • 作用:
    通过数据驱动的方式优化系统性能,快速定位问题。

3、五层生态的协同作用

  • 应用层:开发者使用工具构建微服务。
  • 编排层:Kubernetes 管理容器调度和扩展。
  • 运行时层:容器运行时和网络确保应用高效执行。
  • 资源层:基础设施自动化部署和策略管理。
  • 可观测性层:监控和分析系统状态,支持持续改进。

4、总结

  • 成熟度分类:确保项目从实验到生产就绪的有序演进,提升技术可靠性。
  • 五层生态:覆盖云原生全生命周期,从开发到运维,形成完整的技术栈。
  • 核心项目示例:
    • 毕业项目:Kubernetes、Istio、Prometheus。
    • 孵化项目:Envoy(后毕业)、Falco(安全工具)。
    • 沙盒项目:Wasm 相关工具链(如 Wasmtime)。

通过这种结构,CNCF不仅推动技术创新,还确保技术生态的标准化和可互操作性,成为云原生领域的核心枢纽。

逆风前行,Dare To Be!!!

相关推荐
Dovis(誓平步青云)32 分钟前
Cephalon端脑云:神经形态计算+边缘AI·重定义云端算力
图像处理·人工智能·学习·云原生·ai作画·边缘计算·机器翻译
David爱编程1 小时前
90%工程师都踩过的坑:K8s三种探针最佳组合方案全解析
docker·云原生·kubernetes
merge不墨迹6 小时前
Docker离线安装与配置指南
云原生·容器·kubernetes
掘金-我是哪吒12 小时前
分布式微服务系统架构第118集:Future池管理容器-CompletableFuture
分布式·微服务·云原生·架构·系统架构
lizhou82815 小时前
IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
docker·云原生·intellij-idea·quarkus
云闲不收16 小时前
CAP原理,zookeeper是强一致性么?为什么zookeeper不满足线性一致性依然可以实现分布式锁?
分布式·zookeeper·云原生
bst@微胖子17 小时前
K8S探针的应用
云原生·容器·kubernetes
weixin_4352081619 小时前
深入微服务核心:从架构设计到规模化
微服务·云原生·架构