CNCF 是什么?
CNCF 是一个开源软件基金会,致力于使云原生计算具有普遍性和可持续性。 云原生计算使用开源软件技术栈将应用程序部署为微服务,将每个部分打包到自己的容器中,并动态编排这些容器以优化资源利用率。 云原生技术使软件开发人员能够更快地构建出色的产品。
CNCF 项目成员
Kubernetes
Kubernetes 是世界上最受欢迎的容器编排平台和第一个 CNCF 项目。 Kubernetes 帮助用户构建、扩展和管理应用程序及其动态生命周期。 Kubernetes 最初是在谷歌开发的,现在有超过 2,300 名贡献者,并且被世界上许多行业中一些具有创新性的公司所使用。 集群调度功能可让开发人员构建云原生应用,更加关注代码而不是操作。 Kubernetes 面向未来的应用程序开发和基础设施管理可在本地或云端进行,无需供应商或云提供商绑定。
Prometheus
Prometheus 为云原生应用程序提供实时监控、警报和时间序列数据库功能(包括强大的查询和可视化能力),并与许多流行的开源数据导入、导出工具集成。 它已经成为监控基于容器的基础设施的标准,并且随着用户需求的而不断添加主要功能。 Prometheus为云原生体系结构(包括 Kubernetes 和其他下一代组件)提供了所需的可见性和故障排除。
OpenTracing
Tracing 是基于微服务环境的关键部分,用于追踪跨服务请求的行为。 OpenTracing 是一种分布式追踪 API,可用于各种流行的开源的和商业的追踪工具。 OpenTracing API 使微服务交互监控成为可能,使用 Jaeger、Zipkin、DataDog 等流行工具进行切换。 它是LightStep、Red Hat、Uber和其他公司的工程师们努力的产物,它为开发人员提供了一种即使在异构环境中也能精确跟踪的简单工具。
Fluentd
Fluentd 是一个统一的日志记录工具,可收集来自任何数据源(包括数据库、应用程序服务器、最终用户设备)的数据,并与众多警报、分析和存储工具配合使用。 Fluentd 通过提供一个统一的层来帮助用户更好地了解他们的环境中发生的事情,以便收集、过滤日志数据并将其路由到许多流行的源和目的地。 Fluentd 通过提供统一的平台来收集、构建(如果可能的话,使用JSON)并导出数据,从而使日志分析更加轻松。 它采用可插拔架构,通过统一的平台和可插拔架构,简化了新数据源(例如连接设备)和后端系统(例如云存储和数据库)的上线,并集成到 Atlassian 、 微软等软件提供商。
gRPC
gRPC 是由 Google 开发的高性能 RPC(远程过程调用)框架,针对连接跨语言、云和数据中心的服务以及将移动设备连接到后端的云原生计算环境的大规模、多平台性质进行了服务优化。 gRPC 支持 10 种流行语言,并被全球一些领先的企业、技术供应商和大学所使用。 gRPC改善了分布式计算环境中远程调用的延迟性,同时支持多语言编程,并包括 iOS 和 Android 的客户端库以及后端服务器。
containerd
Containerd 是由 Docker 开发并基于 Docker Engine 运行时的行业标准容器运行时组件。 作为容器生态系统的选择,Containerd 通过提供运行时,可以将 Docker 和 OCI 容器镜像作为新平台或产品的一部分进行管理。 Containerd 旨在直接集成到第三方软件产品和项目(例如Kubernetes)中,提供围绕容器生命周期的基础功能。 它为许多基础容器生命周期流程提供原型,使开发人员可以在更高层次上自由地进行创新。
Rkt
Rkt 是 Docker 容器引擎的一个可行的替代方案,最初由 CoreOS 创建,旨在实现最大的可组合性并管理名为 Pod 的容器集合。 Rkt 不使用守护进程来管理容器,而是直接从命令行启动容器。 它针对安全性以及与其他开源容器技术和标准的集成进行了优化。
CNI
容器网络接口(CNI)项目是由一系列行业组织创建的,目的是为了在云原生环境中标准化容器的基本网络接口。 CNI 为开发人员提供了在多个容器运行时间上构建应用程序的自由,同时体验了一致的网络 API。 CNI 通过对基本功能进行标准化来推进集装箱网络的状态,例如跨公共运行时(包括Kubernetes,Rkt,Mesos 和 Cloud Foundry)添加和删除容器资源,并通过第三方插件主动支持高级网络功能。
envoy
Envoy 是最初在 Lyft 创建的 Service Mesh(服务网格),现在用于Google、Apple、Netflix等公司内部。 Envoy 是用 C++ 编写的,旨在最大限度地减少内存和 CPU 占用空间,同时提供诸如负载均衡、网络深度可观察性、微服务环境中的跟踪和数据库活动等功能。
jaeger
Jaeger 是由 Uber 开发的分布式追踪系统,用于监控其大型微服务环境,现在已经被 Red Hat、SeatGeek 和 Under Armour 等公司收集。 Jaeger 被设计为具有高度可扩展性和可用性,并为 OpenTracing 标准和众多存储后端提供本地支持。 它具有现代 UI,旨在与云原生系统(如 OpenTracing、Kubernetes 和 Prometheus)集成。
Notary
Notary 最初由 Docker 创建,是 TUF(另一个CNCF项目)的实现,旨在通过强大的加密技术建立对数字内容的信任。 公证通过确保软件来自预期的来源来做到这一点,并且除了其作者以外没有任何人改变它。 它为开发人员提供了一个加密工具来验证容器及其内容的来源。
The Update Framework
更新框架(TUF)是用于保护软件更新系统免受更新或初始安装期间发生的攻击的规范。 TUF 最初由纽约大学工程学院开发,并已集成到由 Docker 和 VMware 等开发的企业软件产品中。 TUF 使用加密密钥来防止软件安装或更新期间的已知漏洞,确保用户安装他们打算安装的文件。 TUF 作为软件开发过程的一部分被集成,而不是作为独立的网络安全工具。
Vitess
Vitess 是一个用于通过广义分片对 MySQL 进行水平缩放的数据库集群系统。 通过封装分片路由逻辑,Vitess 允许应用程序代码和数据库查询对于将数据分布到多个分片上保持不变。 使用 Vitess,您甚至可以根据您的需求增长来分割和合并碎片,原子切割步骤只需几秒钟。 自 2011 年以来,Vitess 一直是 YouTube 数据库基础架构的核心组件,并且已经发展到包含数以万计的 MySQL 节点。它的架构可以像在专用硬件上一样有效地在公共或私有云架构中运行。 它结合并扩展了许多重要的 MySQL 功能和 NoSQL 数据库的可扩展性。
CoreDNS
CoreDNS 是针对云原生环境的性能、灵活性和服务发现要求而优化的 DNS 服务器。 CoreDNS 是用 Go 编写的 SkyDNS 的后继者。 它包括各种功能,包括通过 Prometheus 进行 Kubernetes 支持和监控,并强调插件增加新功能或编译简化实施。 DNS 是基于云原生或基于微服务的体系结构的重要组成部分,可以包括数百或数千个单独的服务、容器和其他端点。 CoreDNS 旨在支持这些体系结构,以及在需求成熟时轻松支持新功能。
Nats
NATS Server 是一个简单、高性能的开源消息系统,用于云原生应用程序、IoT 消息传递和微服务架构。 Synadia 团队的成员创建了NATS Server(用Go编写)、NATS Streaming 以及用 Python、Ruby、Node.js、Elixir、Java、NGINX、C 和 C# 编写的客户端。 该社区贡献了越来越多的库,包括Arduino、Rust、Lua、PHP、Perl等等。
Linkerd
Linkerd 是一种基于云原生的 Service Mesh(服务网格),基于 Netty 和 Finagle 构建,是由 Twitter 构建的工具,用于管理其广阔的微服务环境,使其可以扩展到每秒数以万计的请求。 Linkerd 提供了一个独立的代理层,分布式应用程序服务通过它可以相互通信来处理任务,如负载平衡、路由和 TLS。 它通过管理微服务之间的交互来确保应用程序性能,从而帮助简化向云原生体系结构的转换和操作。