简介: 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. 如何理解UDP 和 TCP? 区别? 应用场景?

    一.UDP UDP(User Datagram Protocol),用户数据包协议,是一个简单的面向数据报的通信协议,即对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层 ...

  2. 记录--九个超级好用的 Javascript 技巧

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在实际的开发工作过程中,积累了一些常见又超级好用的 Javascript 技巧和代码片段,包括整理的其他大神的 JS 使用技巧,今天 ...

  3. WARN o.a.t.util.scan.StandardJarScanner - Failed to scan [file:/D:/Mavencangku/com/sun/xml/bind/jaxb-core/2.3.0/jaxb-api.jar] from classloader hierarchy

    1.SpringBoot项目启动突然报错 2024-03-27 14:57:41 [restartedMain] WARN o.a.t.util.scan.StandardJarScanner - F ...

  4. KingbaseES 函数与存储过程内容加密

    说明: 数据库系统使用过程中,有些业务功能在特殊的安全级别情况下,需要对数据库中的函数和存储过程进行加密存储,以保证数据库函数和过程的代码安全性.KingbaseES 数据库,提供了DBMS_DDL扩 ...

  5. Java中关于优先队列PriorityQueue详解

    一.优先队列概述 优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序, 可以放基本数据类型的包装类(如:Integer,Long等)或自定义的类 对于基本数据类型的包装器 ...

  6. archlinux修改btrfs文件系统大小出现ERROR: unable to retrieve fs info

    提权sudo就可以了 例: sudo btrfs filesystem resize max /

  7. Linux 基础命令和帮助命令

    Linux命令 X Window 与命令行模式的切换   Linux默认的情况下会提供六个终端来让用户登录,切换的方式为使用[Ctrl+Alt+F1~F6]的组合键.系统会将[F1 ~ F6]命名为t ...

  8. SSE与AVX指令基础介绍与使用

    SSE与AVX指令基础介绍与使用 SSE/AVX指令属于Intrinsics函数,由编译器在编译时直接在调用处插入代码,避免了函数调用的额外开销.但又与inline函数不同,Intrinsics函数的 ...

  9. #dp,排列#LOJ 2743「JOI Open 2016」摩天大楼

    题目 将互不相同的 \(n\) 个数重排,使得相邻两数差的总和不超过 \(L\) 的有多少种方式. \(n\leq 100,L\leq 1000\) 分析 对于排列的问题,有一种很妙的方法就是从小到大 ...

  10. #莫比乌斯反演,整除分块#洛谷 6222 「P6156 简单题」加强版

    题目 多组询问,给出\(n,k\) 求 \[\sum_{i=1}^n\sum_{j=1}^n(i+j)^kgcd(i,j)\mu^2(gcd(i,j)) \] 对\(\text{unsigned}\) ...