今天整理下我国贡献给CNCF云原生基金会的开源项目,对于云原生解决方案我在前面写过相应的文章进行介绍,但是没有系统的整理过我国贡献到CNCF的开源项目。今天结合CNCF最新的云原生全景图,做下初步整理,由于项目太多也仅仅只能整理一些重要项目。CNCF基金会和开源项目孵化 CNCF,英文全称为CloudNativeComputingFoundation,中文译为云原生计算基金会。成立于2015年12月11日。CNCF是Linux基金会旗下的基金会,可以理解为一个非盈利组织。 当年谷歌内部一直用于编排容器的Borg项目开源了,为了该项目更好的发展,谷歌与Linux基金会一起创办了CNCF。同时,谷歌把Borg用Go语言重写,更名为Kubernetes并捐赠到CNCF。 成立这个组织的初衷或者愿景,简单说就是推动云原生计算可持续发展;帮助云原生技术开发人员快速地构建出色的产品。 根据CNCF基金会官网我们可以,最近几年CNCF组织和开源项目加入发展迅猛,看到已经有超过200个以上的项目加入了CNCF开源项目中。而对于国内的类似腾讯,华为,阿里,青云,京东等也都是基金会的重要成员单位。 如上图所示,CNCF项目分为Sandbox、Incubating和Graduation三个阶段。根据成熟度级别,每个CNCF项目会逐步走过它的早期Sandbox以及孵化阶段从而毕业。 被CNCF接受并成为Sandbox项目需要至少2个TOC的sponsor的支持才能够进入到正式的孵化阶段。而到了孵化阶段的项目需要满足所有Sandbox的需求,并且必须提供至少三个独立的终端用户成功地使用在生产环境中的资料信息,在质量和范围方面都能够得到证明才能够正式毕业。 虽然当前加入的项目很多,可以看到,实际当前已经毕业的项目很少,只有类似Kubernetes,Prometheus,Envoy,CoreDNS等几个项目已经完全毕业。而其它诸多项目都还处于沙箱和孵化阶段中。自动化,配置中心和容器管理 KubeEdge 在19年3月,CNCF基金会及技术委员会全体一致同意开源智能边缘项目KubeEdge加入CNCF社区,成为CNCF在智能边缘领域的首个正式项目。 KubeEdge全面支持端、边、云协同、服务网格通信能力,提升了性能和节点管理规模。依托KubeEdge原生开源边缘计算平台,边缘计算将云端计算能力延伸到靠近终端设备的边缘节点,目前已经广泛应用于工程质检、OCR、人脸识别、驾驶行为分析等边缘场景。 Apollo Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 服务端基于SpringBoot和SpringCloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对SpringSpringBoot环境也有较好的支持。 对于Apollo当前已经成为一个大家主流采用的应用到微服务架构开发,特别是多团队协同中的配置中心。特别是对于配置信息实时刷新,缓存,配置信息维度管理,前台提供操作界面等方面都优于SpringConfig配置中心。 HarBor 由VMware公司中国团队为企业用户设计的Registryserver开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA等企业必需的功能,作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。 当前在DevOps和容器云的集成方案中,HarBor成为一个主流采用的镜像库管理和存储方式。当前HarBor已经处于毕业状态。 Dragonfly Dragonfly(蜻蜓)是阿里自研的P2P文件分发系统,用于解决大规模文件分发场景下分发耗时、成功率低、带宽浪费等难题。大幅提升发布部署、数据预热、大规模容器镜像分发等业务能力。 开源版的Dragonfly可用于P2P文件分发、容器镜像分发、局部限速、磁盘容量预检等。它支持多种容器技术,对容器本身无需做任何改造,镜像分发比natvie方式提速可高达57倍,Registry网络出流量降低99。5以上。容器编排,协同,服务注册,远程调用 对于容器编排,当前由Google贡献的Kubernetes已经成为主流,不再叙述。 KubeSphere(QKE) KubeSphere是一款独立的分布式容器管理平台,这是青云QingCloud正式发布的开源项目,已于今年4月份正式加入CNCF和Linux基金会,本次大会发布了高级版交付QKE(QingCloudKubernetesEngine)服务,这在提供K8s集群内核的基础上,屏蔽掉底层IaaS运维管理复杂度之外,同时还完整继承了KubeSphere体系化的平台层管理功能、DevOps和微服务治理工具,监控告警工具以及应用管理组件,帮助开发者以最低成本完成容器转型。 Nacos 阿里开源的Nacos服务注册中心和服务配置中心。当前也是被大量在微服务架构应用中采用。 Nacos支持基于DNS和基于RPC的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态DNS服务。 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以服务为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。 Dubbo 阿里开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 SOFARPC 蚂蚁金服自主研发的分布式的系统中间件,包含金融级云原生的架构所需要的各种组件,其中包括微服务的研发框架、RPC调用框架、服务的注册中心、分布式定时任务、限流熔断机制、动态配置的推送功能、分布式的链路追踪、Metrics监控、分布式高可用队列、分布式事务框架、分布式数据库代理等组件。是在金融领域完整的分布式解决方案。 可以看到该解决方案提供基于RPC调用的完整接口服务治理管控能力。 蚂蚁金服金融级分布式架构SOFAStack中的3个项目加入这次最新版本的CloudNativeLandscape,分别是SOFAMosn、分布式链路跟踪系统SOFATracer、RPC服务框架SOFARPC。 Tars 腾讯开源的Tars,不仅仅是一个高性能的RPC调用框架,也可以看作是一个完整的基于RPC的微服务开发和治理框架。Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。API网关和服务网格 对于API网关,可以看到Kong网关,暂时没有看到国内开源贡献到CNCF的API网关产品。对于GoKu实际上是一款不错的API网关产品,基于go语言,性能也不错,但是处于半开源状态。 Sentinel 阿里开源的Sentinel是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。2020年,推出SentinelGo版本,继续朝着云原生方向演进。 对于ServiceMesh部分,在前面谈云原生的时候曾经谈到华为和阿里都有自己的Mesher解决方案,但是在当前的CNCF全景图里面暂时没有看到。监控,日志和链路跟踪 在这块当前可以看到,应用到容器云环境的主流还是Google开源的Prometheus监控。当前很多云原生解决方案中也进行了集成。 SkyWalking Skywalking是由国内开源爱好者吴晟(原OneAPM工程师,目前在华为)开源并提交到Apache孵化器的产品,它同时吸收了ZipkinPinpointCAT的设计思路,支持非侵入式埋点。是一款基于分布式跟踪的应用程序性能监控系统。另外社区还发展出了一个叫OpenTracing的组织,旨在推进调用链监控的一些规范和标准工作。 当前对于SkyWalking也是常用的微服务架构体系中的服务链路跟踪工具。 SOFATracer 蚂蚁金服开源的服务链路跟踪工具,前面已经做过介绍。 AlibabaCloudLogService 阿里开源的阿里云日志服务 听云 当前商用的APM主流的包括OneAPM和听云,在云原生全景图里面有听云,但是实际APM产品并没有开源,或者不清楚具体开源了哪个部分的内容。数据库和流处理 TiKV和TiDB TiKV是一个分布式事务键值数据库,最初是为了补充TiDB而创建的。TiKV采用Rust构建,由Raft提供支持,受到GoogleSpanner和HBase设计的启发,提供简化的调度和自动平衡,但不依赖于任何分布式文件系统。 TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5。7协议和MySQL生态等重要特性。 刘奇,PingCAP创始人CEO。开源黑客,知名开源项目TiDBTiKVCodis作者,曾任职豌豆荚京东,擅长分布式数据库和分布式缓存。应用开发和持续集成 ServiceComb ServiceComb作为Apache开源组织下的一款微服务框架,其前身为华为云的微服务引擎CSE(CloudServiceEngine)云服务。它意味着国内一款微服务框架在华为和Apache组织的共同努力下,随着微服务市场的火爆,一定会让越来越多的开发者所喜欢。存储 YRCloudFile 近日,CNCF发布最新版本的CloudNativeLandscape,焱融云的存储软件YRCloudFile被列入云原生全景图谱,位于云原生存储象限中,是中国首个被收录的容器持久化存储产品。YRCloudFile是焱融云推出的一款全面支持容CNCF器存储的高性能分布式文件存储产品,可支持多种容器编排框架,为企业用户提供容器持久化存储服务。 注:由于整个CNCF开源项目数量众多,今天整理估计还有不少遗漏,欢迎大家补充和完善。