支持Dubbo生态发展,阿里巴巴启动新的开源项目 Nacos

简介: 上周六的Aliware技术行上海站Dubbo开发者沙龙上,阿里巴巴高级技术专家郭平(坤宇)宣布了阿里巴巴的一个新开源计划,阿里巴巴计划在7月份开启一个名叫Nacos的新开源项目, 在活动演讲中,坤宇介绍了这个开源项目的初衷,他表示 “将通过Nacos项目将阿里巴巴在建设共享服务体系中使用的服务发现、.

贡献Dubbo生态,阿里Nacos开源计划

在上周六的Aliware技术行上海站Dubbo开发者沙龙上,阿里巴巴高级技术专家郭平(坤宇)宣布了阿里巴巴的一个新开源计划,阿里巴巴计划在7月份开启一个名叫Nacos的新开源项目, 在活动演讲中,坤宇介绍了这个开源项目的初衷,他表示 “将通过Nacos项目将阿里巴巴在建设共享服务体系中使用的服务发现、配置及服务管理平台贡献给开源社区,通过打造Dubbo + Nacos的经典组合进一步释放Dubbo在云原生及Service Mesh时代中,在大规模微服务治理、流量治理、服务集成与服务共享等服务平台能力建设上的威力,同时Nacos会非常关注对主流开源社区,如Spring Cloud和Kubernetes云原生体系的无缝对接与支持”。该项目预计在7月中旬之前开放首个测试预览版本,并计划在未来6~8个月release的0.8版本开始达到生产可用的状态。

活动的 视频回放

什么是 Nacos /nɑ:kəʊs/?

Nacos 是阿里巴巴的新开源项目,其核心定位是 “一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台”。

Screen Shot 2018-06-27 at 15.09.35.png

Nacos 有三大主要功能:

  • 服务发现与服务管理

在采用以“服务(Service)”为中心的诸如微服务及云原生方式的现代应用架构时,动态服务发现至关重要。 Nacos同时支持基于DNS和基于RPC(如Dubbo/gRPC)的服务发现,并为您提供服务的实时的健康检查以防止将请求发送给不健康的主机,基于Nacos您也可以更方便的实现服务断路器。Nacos提供的强大的服务的元数据管理,路由及流量管理策略也能够帮助您更好的构建更强壮的微服务平台。

  • 动态配置管理

动态配置服务允许您在所有环境中以集中和动态的方式管理所有应用程序或服务的配置。动态配置消除了配置更新时重新部署应用程序和服务的需要。可以更方便的帮助您实现无状态服务,更轻松地实现按需弹性扩展服务实例。

  • 动态DNS服务

支持权重路由的动态DNS服务使您可以更轻松地在数据中心内的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务,帮助您更容易的实现DNS-based服务发现。

为什么开源 Nacos

阿里巴巴为什么选择这么一个时间点开源Nacos,其背后的思考是什么,坤宇也给出了详细的解读,在演讲中,坤宇表示主意基于以下几点:

  • 围绕着Service为中心的分布式基础设施正在变的越来越重要

Screen Shot 2018-06-27 at 13.28.09.png

世界正在变的更快,创新和市场竞争的节奏正在变得愈发剧烈,如何超快速实现业务增长成为商业竞争的主旋律,几乎一夜之间共享单车就火遍全国,不到几年滴滴就改变了我们的打车方式,腾讯三班倒实现全民“吃鸡”,现在企业估值在从0到100亿所需的时间越来越短,而企业的平均寿命从标普的数据来看却从上世纪60年代的60年下降到了今天的15年,一切都表示创新和竞争的速度和烈度在加强。

另一方面技术基础设施的敏捷和有效性在商业成功的要素上占据的比重越来越大,云计算在资源和服务交付模式上的变革,带来了效率的革命性提升,带来了更敏捷的基础设施(创业不用再买机器并找机房托管,从以前的半年准备周期到现在在云上的小时级创建全套服务),而在应用架构层面,微服务架构模式带来的灵活性、韧劲,快速组合和聚合原子服务从而创新,给业务快速创新和试错提供了条件,已经被越来越多的应用平台证明其有效性,技术基础设施的更敏捷,给商业的敏捷和商业的竞争优势提供了基础。

在今天,无论是云计算,微服务还是围绕Kubernetes为中心的云原生,都在强调以“服务”为内核的应用架构模式,如果说15年前我们在讨论“一切皆是对象”构建单体系统,那么今天我们就是在谈论“一切皆是服务”,10年前淘宝服务化改造顺应了这种趋势,8年前微服务架构思想也顺应了这个趋势,今天面向“服务”的各种分布式基础设施正在变得越来越重要,站在阿里巴巴10年的服务化发展经验上看,在大规模服务发现和服务治理和服务共享领域现有的开源解决方案是不是都已经非常完美了呢?根据阿里巴巴服务化走过的这些年的生产经验来看,我们觉得并没有。

  • 阿里巴巴在 "共享服务体系" 建设上的经验可以在各个行业大规模复用

Screen Shot 2018-06-27 at 13.29.52.png

阿里巴巴中台理念和体系,与云原生在精神的“道”上完全契合,即“厚技术平台,薄应用” 支持业务的快速创新与试错,从而赢得市场,中台体系倡导双引擎架构,略过“大数据”不谈,但看业务中台,就是一个大的以“服务”为中心的共享服务平台,在线服务沉淀业务数据,同步到大数据平台计算和挖掘,大数据平台则通过数据回馈,指导业务及服务的创新,支成可沉淀和可共享“服务”体系的服务注册与服务治理平台是这个体系的关键要素之一。

  • “服务治理,服务沉淀、服务共享和服务的可持续发展”是“共享服务体系”的核心价值主张

支持创新从小苗长成参天大树,服务平台不断演进,这一切需要一个强大的服务平台和服务基础设施的支撑。

Screen Shot 2018-06-27 at 13.30.25.png

  • 阿里巴巴将通过Dubbo + Nacos以及一系列开源项目打造服务发现、服务及流量管理、服务共享平台

Screen Shot 2018-06-27 at 13.30.58.png

Nacos 与 主流开源生态的关系

Nacos 不会是个封闭的体系,除了对于阿里开源生态体系如Dubbo等自身的支持,也非常强调融入其它的开源生态,这里就包括Java的微服务生态体系Spring Cloud,Kubernetes/CNCF云原生生态体系,正如Nacos的未来全景图展示的那样

Screen Shot 2018-06-27 at 13.31.30.png

  • Dubbo + Nacos, 专为Dubbo而生的注册中心与配置中心

在阿里巴巴生产环境上,Dubbo和Nacos天然就是长在一起的,因为Nacos的缺失,传统的注册中心解决方案让Dubbo在服务治理、流量治理、服务运营和管理等方面的威力被限制和削弱了,Nacos的开源和开放会在采用Dubbo的用户环境中释放这些威力

Screen Shot 2018-06-27 at 13.31.57.png

  • Nacos 会完全兼容Spring Cloud

Nacos会无缝支持Spring Cloud,为Spring Cloud用户其提供更简便的配置中心和注册中心的解决方案,使用Nacos不用再仅仅为服务和配置就需要在生产上hold住 Eureka,Spring Cloud Config Server,Git,RabbitMQ/Kafka 起码四个开源产品。

Screen Shot 2018-06-27 at 13.33.40.png

  • Nacos 支持Kubernetes DNS-based Service Discovery

在演讲中坤宇也表示,阿里巴巴这么多年在VIPServer DNS-based Service Discovery上的实践证明,在云原生时代,应用会更关注与基础设施的解耦合、多语言乃至多云的诉求,服务发现的未来一定是基于标准的DNS协议做,而不是像Eureka或者像ZooKeeper这样的私有API或者协议做, 同时在云上,在服务发现场景中,注册中心更关注的是可用性而不是数据一致性,所以Nacos会首推DNS-based Servcie Discovery,并优先关注可用性,而这也正是Nacos可以无缝融合进Kubernetes服务发现体系的原因所在

Screen Shot 2018-06-27 at 13.34.18.png

  • Nacos 会填补Spring Cloud 体系与 Kubernetes 体系的鸿沟

    未来会有越来越多java生态的用户会选择 Kubernetes+Spring Cloud 组合,但不幸的是,在服务发现和配置管理的解决方案上,这2个体系都采用了完全不同的方案,这给同时采用2个体系的用户在注册中心和配置中心的需求上带来了非常大的不必要的复杂性。Nacos会尝试填补2者的鸿沟,以便在2套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护的成本。

    Screen Shot 2018-06-27 at 13.35.05.png

  • Nacos 与 Service Mesh

Screen Shot 2018-06-27 at 13.35.38.png

Nacos 部分特性预览

同时在会上,坤宇对Nacos 1.0版本的部分特性给大家做了预览

Screen Shot 2018-06-27 at 13.36.06.png

每个产品都有自己的风格和标签,坤宇在演讲中表示,团队会通过持续的贡献和努力,希望未来给Nacos贴上四个方面的标签

Screen Shot 2018-06-27 at 13.37.10.png

在部署形态上,Nacos会支持多种部署形态,包括注册中心与配置中心的分离部署,同时在阿里云上提供Nacos的SaaS化部署服务,感兴趣的可以直接在阿里云上开通账户免费体验Nacos服务,在开源与商业化版本差别上,商业化的ACM以及EDAS ANS更强调与阿里云其它云服务以及其它Aliware PaaS的商业产品的集成体验以及提供商业服务。

Screen Shot 2018-06-27 at 13.36.37.png

Nacos 的主要产品里程碑及计划

罗马不是一天建成的,吾将上下而求索

因为Nacos是脱胎于阿里巴巴的生产代码,整体体系非常庞杂,在代码梳理、重构和剥离与内部的耦合上是一个渐进的过程,所以@坤宇特别提醒社区在Nacos 0.8达到生产可用状态前,不建议用于生产,不过可以在开发和测试环境尝试使用,在0.8版本开始,大家可以放心的用于生产环境,Nacos整体研发计划是在未来6-8个月将达到生产可用的状态,未来会很快启动将Nacos贡献给开源基金会进一步社区化发展。

Screen Shot 2018-06-27 at 13.38.13.png

Nacos 与相关开源产品的对比

君子和而不同

如上面对整体业务及技术形式的判断,我们可以看到 Nacos 与同类竞品的主要不同主要在于理念,@坤宇介绍说,严格来说这些市面上的产品并不与Nacos完全对标,只是与Nacos里面的服务发现部分对标,Nacos的未来更看重在这些产品的基础上构建服务平台的能力,而不仅仅是在基础的服务发现能力上。

Screen Shot 2018-06-27 at 13.38.41.png

社区化发展,欢迎加入并贡献社区

DISS is cheap, show me your hand
比吐槽更重要的是搭把手,参与社区一起发展Nacos

与阿里巴巴早期的开源不同,阿里巴巴新一轮的开源包括RocketMQ,Pouch Container,Dubbo, Nacos等开源产品更强调社区化的发展与社区的多样性,鼓励更多的公司和更多的开发者参与到开源项目中来,依托于社区将产品做得更好,同时一开始就会关注国际化,与国外同类产品的直面竞争。

Nacos初步计划,在第一年就吸收至少超过5名来自其它公司的PMC,至少10名的外部Committer, 而且Nacos处在项目开源的初期,有大把的空间让有想法、有热情、有能力的开发者参与进来,Nacos本身在很多方面都急需要社区的帮助,这里面就急需包括前端及UI建设,Spring Cloud、Kubernetes、Service Mesh体系融合与集成,多语言客户端等各方面的技术领导者的参与,如果您对Nacos这个开源项目感兴趣,欢迎加入Nacos社区。你可以通过扫“超哥”的微信二维码,让“超哥” 帮你加入 “Nacos社区交流群”

Screen Shot 2018-06-27 at 13.39.09.png

感谢所有未来给我们帮助的朋友

Screen Shot 2018-06-27 at 13.39.40.png

References

欢迎大家关注阿里中间件微信公众号,所有中间件活动预告和回顾(含PPT和演讲稿)都会发布在此公众号,而且每周都会分享最前沿的技术干货,最in的程序圈子,你还不加入?开源社区由您创造!

qrcode_for_gh_94efc5c3f960_258

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
7天前
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
18 2
|
22天前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
33 1
|
2月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
149 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
4月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
102 0
|
5月前
|
消息中间件 Java 数据库连接
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
95 0
|
7月前
|
Dubbo Cloud Native 应用服务中间件
【阿里云云原生专栏】云原生环境下的微服务治理:阿里云 Dubbo 与 Nacos 的深度整合
【5月更文挑战第25天】阿里云Dubbo和Nacos提供微服务治理的强大工具,整合后实现灵活高效的治理。Dubbo是高性能RPC框架,Nacos则负责服务发现和配置管理。整合示例显示,通过Nacos注册中心,服务能便捷注册发现,动态管理配置。简化部署,提升适应性,但也需注意服务稳定性和策略规划。这种整合为云原生环境的微服务架构带来强大支持,未来应用前景广阔。
291 2
|
6月前
|
Java Nacos Maven
Sentinel1.8.6更改配置同步到nacos(项目是Gateway)
Sentinel1.8.6 nacos springcloud springcloud-alibaba gateway
284 0
|
7月前
|
Dubbo Java 应用服务中间件
深度剖析:Dubbo使用Nacos注册中心的坑
2020年笔者在做微服务部件升级时,Dubbo的注册中心从Zookeeper切换到Nacos碰到个问题,最近刷Github又有网友提到类似的问题,就在这篇文章里做个梳理和总结。
深度剖析:Dubbo使用Nacos注册中心的坑
|
7月前
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
275 0