简介: Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心能力,并且快速成为国内首选。并且通过云产品MSE以BaaS模式输出解决方案能力。

作者:彦林(李艳林),彦林(李艳林),Nacos PMC,阿里云 MSE 产品创始人,阿里云软负载团队负责人。

阿里云原生三位一体战略解读

阿里巴巴开源、自研、商业化技术三位一体,用公有云支持阿里集团上云,以开源为内核做内部扩展,以商业化为基础做内部定制;后端BaaS化,客户端轻量化,业务侧Serverless化。

Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心能力,并且快速成为国内首选。并且通过云产品MSE以BaaS模式输出解决方案能力。

Nacos开源三年以来,打造了完整的云原生技术生态,成为国内的事实标准,并且通过社区推动开放共建,通过阿里丰富产品打磨产品性能和可用性,通过商业化打造产品极致体验,更安全的产品能力,满足企业用户的生产要求。从而全方位锤炼Nacos各个维度的能力,正循环持续增强产品竞争力!下面我从开源、自研、商业化三个维度进行更深入的分享。

Nacos 生态&规划

Nacos 生态

Nacos几乎支持所有主流语言,其中Java/Golang/Python已经支持Nacos2.0长链接协议,能最大限度发挥Nacos性能。阿里微服务 DNS(Dubbo+Nacos+Spring-cloud-alibaba/Seata/Sentinel)最佳实践,是Java微服务生态最佳解决方案;除此之外,Nacos也对微服务生态活跃的技术做了无缝的支持,如目前比较流行的Envoy、Dapr等,能让用户更加标准获取微服务能力。

Nacos 规划

自从Nacos 2.0发布以来,凭借10倍性能提升激发社区活力,进入国内开源项目活跃度Top10,并且成为行业首选。随着Nacos2.0的成熟,后续Nacos1.X将进入维护状态,Nacos 2.0.X将做1.X到2.X的过度,从2.1.0版本我们将去掉过度升级逻辑,让Nacos2.0代码更加清爽,性能更加卓越,并且加速插件化和服务网格生态的进化速度,期望对此感兴趣小伙伴一起共建!!!

Nacos 阿里落地实践

Nacos 阿里百万实例微服务架构

由于阿里巴巴已经发展到百万实例级的超大集群,为了更高的性能和扩展性,我们按照职能将Nacos切分成注册中心和配置中心两个集群;建议超过10w实例规模公司从早期做好拆分。小的时候部署到一起运维和部署代价是最小的。统一接入按照流量网关和微服务网关做了两层拆分,Tengine负责流量网关,主要抗连接,证书卸载和弱七层流量控制;Envoy负责微服务网关部分,负责服务治理,协议转化,跨域互通等场景;建议超过100w/s建议做两层,不超过一层具有最佳性价比。阿里在国际化业务中将服务路由和异地多活切流能力下沉到Sidecar,并且大规模落地中,以便通过异地多活体系按照Region级别扩展集群。

目前为止,阿里云原生网关,注册中心和配置中心所有单元环境全部切到公有云产品MSE中,并且经过了99大促的验证,并且以此支持今年双十一。

Nacos 服务发现实践

随着业务规模和业务域扩大,大公司基本都会遇到跨域互通的问题,阿里巴巴通过云原生网关打通多个业务域,如钉钉和其他集团业务域互通,通过MSE的云原生网关互通,通过Dubbo3.0的Triple协议互调,没有任何协议转化的消耗,效率高,rt低,还可以通过网关配置简单的路由切分逻辑提升整体高可用。在阿里巴巴落地服务网格过程中Istio不能满足阿里规模要求,因此服务链路直接跟Nacos注册中心打通,路由规则通过Istio对接Nacos配置中心打通,以便能够大规模生产落地。

Nacos配置管理实践

阿里能够喝着咖啡搞大促的一个底层技术就是动态配置管理+预案系统(定时修改规则配置)。Nacos作为动态配置管理的基础支撑着整个双十一的核心业务。 如阿里巴巴混部快速交付一个单元环境后,会动态推送单元化规则引流到新的混部环境,大促开始前会对日志采样率规则进行调整,防止过多日志对系统性能造成影响。

Nacos 解决方案

微服务解决方案

微服务引擎(Micro Service Engine,简称 MSE)是一个面向业界主流开源微服务生态的一站式微服务平台。

用户可以在注册&配置中心、服务框架、云原生网关、服务治理四个模块随意组合,可以选择商业化产品,也可以选择自建产品,如果全部选择我们解决方案,可以直接获得阿里十年沉淀的核心竞争力。

服务网格解决方案

阿里服务网格(简称 ASM)是一个统一管理微服务应用流量、兼容Istio的托管式平台。

Nacos用户可用通过 MSE + ASM 两个产品快速组合直接进入服务网格时代。ASM 中Istio通过标准 MCP协议跟MSE 中 Nacos打通服务,MSE服务治理基于ASM流量治理原子API 做服务治理,我们的云原生网关也是基于Envoy构建,这样就可以通过Istio标准的控制东西南北流量,进而提升整个微服务高可用能力。

跨域互通解决方案

一般大公司都会有跨业务域、网络域、安全域、跨云等场景服务互通的需求,MSE云原生网关打通多个业务域,几乎所有用户都能用此方式解决,该模式通用,可管控,安全; 如果是一个网络域内,并且业务交集多,流量大,可以用Nacos-Sync组件做跨注册中心服务互通,跨域流量超过100w/s建议再考虑此种模式,该模式管控代价比较大,只能在网络互通、协议一致场景使用。 当然还有很多用户采用多注册和多订阅完成跨域互通,这样更无法管控跨域互通,风险无法识别,并且对研发有代价。

微服务高可用解决方案

随着数字化进程的演进,很多公司跟阿里巴巴一样会搞大促活动,这样峰值流量可能压垮整个系统,导致巨大经济损失,如果准备过多资源会导致资源浪费。这种场景下可以采用阿里巴巴的PTS+MSE+AHAS+ARMS+ACK产品组合,边压、边限流、边看,边弹。通过PTS模拟用户流量做全链路压测,通过MSE中云原生网关做入口限流,并且通过Nacos发现后端服务转发,通过ARMS做服务可用性和服务治理观测,通过链路追踪分析超时、异常等问题,容量不够通过ACK弹性,从而在性能、高可用、和资源利用率之间做最大平衡。

异地多活解决方案

对于快递、政府、医疗、金融等国际民生的领域,对业务可用性要求极高,需要具备异地多活的能力。阿里云MSHA提供同城多活和异地多活两种多活模式,底层采用MSE为微服务基础。MSE在一个Region内提供同AZ访问能力,具备同城容灾能力,单AZ故障,MSHA从入口将流量切到可用AZ快速恢复。 Region之间通过MSE云原生网关互通,解决服务部署不对等的跨域访问问题,MSHA通过全局控制流量入口,一个区域不可用从入口开始切流恢复业务。

原文链接

本文为阿里云原创内容,未经允许不得转载。

Nacos 开源、自研、商业化三位一体战略解读的更多相关文章

  1. 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)

    腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1.  Basic Paxos 算法是为 ...

  2. 腾讯开源的Paxos库PhxPaxos代码解读---Prepare阶段(一)

    简单的画了一下PhxPaxos在Prepare阶段的逻辑,主要是正常的逻辑,异常逻辑和超时后面再写了; 熟悉PhxPaxos代码最好的方法是编译运行sample目录下的三个例子,编译方法在另一篇博客已 ...

  3. C# 开源框架

    一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...

  4. C#开源系统大汇总(个人收藏)

    C#开源系统大汇总 一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖 ...

  5. C#常用开源类库

    一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...

  6. .NET平台下开源框架

    一.AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(asp ...

  7. C#开源系统大汇总

    一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...

  8. C#开源资源项目

    一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...

  9. 漫谈 Greenplum 开源背后的动机

    漫谈 Greenplum 开源背后的动机  Greenplum是一家总部位于美国加利福尼亚州,为全球大型企业用户提供新型企业级数据仓库(EDW).企业级数据云(EDC)和商务智能(BI)提供解决方案和 ...

  10. C#开源系统大汇总(转)

    一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...

随机推荐

  1. 关于linux系统版本的一个分类展现

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2014-07-06 22:58:35 ...

  2. 译:使用 Bun 执行 Shell 脚本

    原文地址(Bun Blog): https://bun.sh/blog/the-bun-shell 作者: jarredsumner 发布时间:2024-01-20 前言 JavaScript 是世界 ...

  3. WebView开源库终极方案

    目录介绍 01.前沿说明 1.1 案例展示效果 1.2 该库功能和优势 1.3 相关类介绍说明 1.4 WebView知识点 02.如何使用 2.1 如何引入 2.2 最简单使用 2.3 常用api ...

  4. 你是怎么理解ES6中 Decorator 的?使用场景?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.介绍 Decorator,即装饰器,从名字上很容易让我们联想到装饰者模式 简单来讲,装饰者模式就是一种在不改变原类和使用继承的情况下, ...

  5. TCL之基本语法1

    TCL之基本语法1 1:set  and puts set就是变量声明,这个声明在需要使用的指令下会自动执行,不会出现没有声明的错误.但是对于puts这类定向访问的是不能没有声明的.这里简单理解TCL ...

  6. #根号分治,树形dp#CF1039D You Are Given a Tree

    题目 给定一棵树,对于 \(k\in [1,n]\) 问最多可以分成多少段长度为 \(k\) 的不交路径 分析 首先考虑对于单个 \(k\) 怎么做. 设 \(dp[x]\) 表示点 \(x\) 往下 ...

  7. #后缀数组,单调队列#洛谷 2852 [USACO06DEC]Milk Patterns G

    题目 给定一个长度为\(n\)的字符串,求出现至少\(k\)次的最长子串长度 分析 由于后缀排序后的LCP才是最长的,既然要求至少\(k\)次, 实际上也就是维护长度为\(k\)的height数组最小 ...

  8. 预约直播|3月30日下周四,应用促活大揭秘,快速提升DAU

    [导读] 日常运营过程中,消息推送是App触达用户的常用手段,无论是新功能的通知,还是活动的提醒,都可以通过推送告知用户.千人千面的个性化推送,对于提升用户粘性.用户转化等指标都具有明显正向效果.越来 ...

  9. 探索“智”感生活,HMS Core线上Codelabs挑战赛第4期开始!

    HMS Core线上Codelabs挑战赛第4期正式开始!我们向所有实践力超强.创新力满满的开发者发出邀请,用你的超级"码"力,解锁更多应用价值! 生活里,我们被手机"秒 ...

  10. java 校验同一张表某个字段值不能重复

    例如 一个实体 user 校验name名字不能重复 思路 1.新增:时比较容易做 直接根据传来的参数 查询实体如果不为空 则查询到了重复值 2.修改:修改需要考虑较多  2.1.既然是不重复 必然是必 ...