云原生微服务技术趋势解读

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 笔者参与过阿里巴巴集团电商业务微服务的升级和改造过程,并一直在支持历年双11的大促活动,活跃在支持一线,也参与了 Nacos 开源和社区发展,目前正在阿里云负责微服务的整体开源规划和微服务引擎 MSE 的研发管理工作。因此在微服务技术的应用、开源和商业化服务上,有着比较立体的感受和思考。微服务虽已老生常谈,但其生命力之强超出不少人的想象。本文将从微服务发展的行业趋势和技术趋势两方面进行解读,欢迎各位参与评论,一起交流。

技术趋势推进行业变革,行业趋势反哺技术价值,两者相互促进,才能持续保持技术的生命力。我们先来看看这一年国内的一些重要事件,这些事件也恰恰揭示并加速着行业和技术趋势:


  • 4月,Linux 下一代架构基金会下成立了微服务技术组 SIG(Special Interest Group),共同探讨微服务治理标准化的解决方案
  • 4月,跨不同开发语言和技术框架,微服务治理规范 OpenSergo 开源
  • 5月,Envoy 社区推出 Envoy Gateway 产品,加入下一代网关角逐
  • 6月,腾讯正式开源 Spring Cloud Tencent,打造一站式微服务解决方案
  • 7月,Ingress Nginx 项目暂停接收新功能,将专注于稳定性提升
  • 8月,CloudWeGo 正式发布 Rust RPC 开源框架 Volo
  • 8月,直流科技发布服务网格项目(GA 版本)
  • 11月,Apache Dubbo 首个 Rust 语言版本正式发布
  • 11月,阿里巴巴开源下一代云原生网关 Higress,基于Envoy,支持 Nginx Ingress零成本快速迁移
  • 12月,字节跳动开源 kube-apiserver 高可用方案 KubeGateway
  • 12月,电子标准院发布国内首个面向微服务开源项目的成熟度评测规范和第一批评估项目
  • 此外,腾讯云&华为云先后提供了面向 Nacos 的商业版本


微服务发展的行业趋势


微服务仍在持续高速增长,关注度从开发效率转向交付效率

开源项目 Star 在一定程度上反应了一个项目的热度和生命力,从 Star 的增长上看,目前主流微服务开源项目每年以平均10%以上的速度在增长,数字上呈现的是不仅是行业规模,也折射了每年新晋微服务开发者的水位。

  • Apache Dubbo:4.3w,YoY 12%
  • Istio: 3.3w, YoY 11%
  • Nacos:2.6w,YoY 23%
  • Spring Cloud Alibaba:2.5w,YoY 15%
  • Seata:2.4w,YoY 10%
  • Envoy: 2.2w, YoY 16%
  • SkyWalking:2.2w,YoY 14%
  • Sentinel:2.0w,YoY 13%

数据统计自2022年12月25日,计算主子仓库的累加数据。

微服务的持续高速发展,使得他已经和计算、存储、网络、数据库、安全一样成为云计算的基础设施。只不过在每个不同的发展阶段,微服务面临的挑战并不相同。云原生普及之前,微服务开发者专注的是微服务的架构、迭代、交付和运维。随着云原生技术的成熟,微服务也在被云原生化,这时候,开发者和架构师更关心的是如何借助云的优势,简化微服务的运维问题,并更专注在业务的交付效率上。


微服务价值愈加凸显,侧重点转向降本增效

若干年前,阿里巴巴在做微服务转型的时候,看重的是微服务的可扩展性,因为要去快速应对庞大且日益增长的用户体量。但如今,随着人力成本的不断上升,以及云的算力成本的不断下降,微服务在帮助企业提高研发效率、落地敏捷开发的过程中,其发挥的降本增效价值已经越来越明显,这时候,微服务的价值侧重点是发生了变化的。过去的一年,我们看到大量的中小型企业开始采用微服务,快速上量、高效迭代,并将微服务应用建立在云上,加速迈入云原生时代。


此外,云拓宽了微服务的价值边界,其价值不仅体现在开发态的效率提升,也体现在了运维态上的价值。以 Nacos 为例,注册配置中心是一个旁路应用,但却承载着高频服务任务,一旦遇到可用性问题,会大面积影响线上业务,通过云厂商提供的 Nacos 商业版,可以极大的提高微服务在运维态上的价值,提升性能、提高可用性,阿里云的微服务引擎 MSE,以及腾讯云和华为云都提供了面向 Nacos/ZooKeeper/Eureka 的商业化服务。

从互联网走向各行各业,技术成熟度获得业内公认

这一趋势并不是只在2022年才出现,提出中台概念的那时候,很多传统企业就已经通过微服务的拆分来构建中台架构了。近一年,随着各行各业数字化进程的加速,微服务不仅出现在直面线上用户的客户服务、市场营销等领域,也在帮助重构设计研发、生产制造、企业内销售财务协作、公司治理等领域,以便企业在市场竞争中保持先发优势。例如禾连健康帮助全国2000家医院构建在线体检服务,致景科技构建微服务体系打通全国纺织行业信息流、物流和资金流,实现数智化的综合平台,龙湖千丁借助微服务支撑全国1000+的智慧停车业务,波司登全面推动各项业务容器化、微服务化,建立立体的在线销售体系,提升羽绒服销量。

不仅其他行业在快速落地微服务架构,对技术引入相当严苛的金融行业也正积极拥抱微服务。

随着金融科技的快速发展,市场对金融服务的需求日趋多样化和个性化,对场景金融服务创新、新业务需求敏态响应等提出诸多挑战,这些正不断加速金融企业的微服务架构转型。但是在传统金融领域,微服务架构的落地并没有像互联网企业那么迅速,这主要是金融行业对系统可用性和稳定性的要求非常高。

然而在过去的几年,随着微服务产品的成熟和技术的标准化,这一现状得到了极大地改变,我们看到越来越多的金融企业使用微服务产品改造其核心系统。工商银行通过 Dubbo 将基于 JEE 的单体架构改造成微服务架构,中信、光大、广发银行基于 Seata 的分布式事务能力,来解决交易数据间要求极高的数据一致性难题,中原银行的微服务平台以开源项目SkyWalking(APM应用性能管理)为基础,建立了分布式链路追踪系统,为微服务提供分布式追踪、度量聚合和可视化等一体化解决方案。微服务在金融这类严苛的行业下的实践,也充分证明其技术的成熟度和标准化。



微服务发展的技术趋势


标准化,呈现更多市场机遇

事实标准和行业标准并行发展,标准化有利于降低技术的选型和使用门槛,也是技术成熟度的一种体现,微服务领域开源领域呈现出比较明显的头部效应,大部分开发者倾向选择主流方案,以下数据来自我们自行举办的开发者沙龙或线上直播的调研数据,仅供参考。

  • 微服务或 RPC 框架:以 Spring 为主,Apache Dubbo 有20%+的市场份额,在强调国产自主可控的行业,Dubbo 占比会更多些,grpc 以及一些多语言的框架也一些忠实的拥趸。
  • 注册和配置:Nacos 占比最高,Eureka/Consul/Apollo 各有一些市场份额,目前这个领域未看到有的开源项目。
  • 限流降级:Sentinel 占比更高,虽然也有 Hystrix 等一些海外的开源解决方案,但由于本地化的文档和支持比较受限,开发者会更倾向于选择 Sentinel。
  • 分布式事务:分布式事务主要应用于对数据一致性有较强需求的行业,且具有较高的技术门槛,开源选项并不多,目前是 Seata 更受开发者的欢迎。
  • 云原生网关:主要分为 Nginx/Envoy 两大技术流派,APISIX 起步比较早,在国内的开源工作推进更快些,国外的开源项目有很多,例如 Kong/Emissary/Gloo 等,我们今年也开源了基于 Ingress 标准的云原生网关 Higress。
  • 微服务治理规范和实现:相比以上的开源项目,这是一个相对较新的领域,开源选项主要是 OpenSergo 和 Polaris。

微服务开源领域的上下游关系


微服务开源虽然趋于标准化,但从不绑定,各个开源项目之间都是解耦和开放的。这时候开发者选型会侧重在高可用上。例如开源项目本身是否经历过大量的生产实践,并且是自主可控,避免一些不可控的风险;二是开源方是否会提供一些云上的商业版。因为当云成为基础设施的时候,开发者会关注开源项目在云上的稳定性、性能、易用性,这些往往是开源版所不具备的。例如面对流量有损的情况,或是版本发布时,没有做全链路灰度,一个线上故障引发全量业务受影响,没有控制爆炸半径,其实,这些场景都是可以通过商业版来避免的。越是主流的开源项目,越是有可能联合云厂商来提供公共云上的商业版。

因此,当微服务的各个领域的开源选型趋于标准化,开发者们将不再过多纠结在选型上,而是在交付效率和稳定性上时,将给围绕微服务提供培训、产品服务的企业呈现出更多的市场机遇,这也会反哺整个行业的良性发展。


DevSecOps,入口安全关注度提升

在过去的一年里,RPC 和注册&配置中心帮助开发者解决研发效率和性能问题,领域趋于稳定;服务网格和服务治理通过流量控制提升高可用能力,领域快速演进;网关帮助企业在数字化入口建立安全和高可用防线,领域处于兴起阶段,开发者关注各种方案的最佳实践和客户案例。

从这些微服务中间件的发展过程中我们发现,以围绕开发者为核心,提升微服务开发效率,保障生产运维高可用的 DevOps 实践越来越多,并且正在向 DevSecOps 快速演进。以云原生网关为例,在流量转发等基础运维(Ops)能力之上,企业和开发者愈加重视作为微服务网关的定制开发(Dev)能力,以及作为统一流量入口的安全(Sec)防线能力。


image.png


云原生网关,玩家众多、活跃度高

云原生网关领域,新晋的竞争者数量是去年同期的一倍,正在加速云原生网关的标准化。

技术趋势离不开内外因的合力作用。微服务的技术趋势之所以要单列一项云原生网关,外因是 K8s 逐步成为云计算的新界面,而 Ingress 作为 K8s 的网络通信的标准规范,定义了外部流量进入集群内部的规则描述。而内因则是网关领域长期面临着入口网管零散、诉求各不相同的情况,例如 Nginx 发挥流量访问的网关作用,微服务网关发挥微服务体系下服务和服务之间网络访问的作用,API 网关则实现了不同应用或系统之间的互访。当 Ingress 统一网络互访协议后,就催生了云原生网关的出现。

从技术优劣势上看,传统网关架构 API 定义不一致、多层网关运维代价大、扩展性弱、规则变更连接抖动,越来越不能满足视频/IOT/海外弱网的需求,不能适应云原生时代快速迭代、弹性带来的稳定性挑战。而云原生网关将多层网关进行统一架构和建设,不仅降低了网关架构的复杂度,也提升了缩短了网关的转发链路、提升网关的性能。国内最早开源的 APISIX 已经拥有1w+ star,并且被 vivo/雪球/众安保险/有赞云应用于生产业务。

我们今年也顺势将在集团已经服务生产业务两年之久的云原生网关 Higress 对外进行开源,他具备标准化、高集成、易扩展、热更新的优势,目的是加速云原生网关在国内的落地。


image.png


数据面和控制面解耦,控制面重要性提升、但短期内较难标准化

随着 xDS 协议成事实标准,数据面和控制面解耦,控制面作为数据面和治理平面的连接越来越重要。微服务生态可以有很多灵活集成模式,简单的场景注册&配置中心可以直接通过 xDS 协议将服务推到数据面,复杂的场景控制面可以聚合服务和规则推送到控制面,做更灵活、更复杂的治理能力扩展。

控制面的统一将带来诸多好处。

微服务已经从架构演进到治理,从解决如何用好微服务演进到如何管好微服务。管好微服务非常依赖微服务治理,而微服务治理是通过无损上线下、全链路灰度、流量防护等技术手段来减少、甚至避免发布和管理大规模应用过程中遇到的稳定性问题,但微服务治理在落地过程中会遇到各种难题。例如:

  • 在企业内部,往往存在着不同语言、不同通信协议的微服务,这会导致治理微服务的过程中,给业务开发者、架构师平添很多的认知负担,而这类异构会衍生出更多的痛点。
  • 业内对服务治理的能力和边界没有明确的认识,每个企业所定义的服务治理概念不一致,造成很高的理解和沟通成本。
  • 开源微服务框架众多,对于服务治理缺乏一些标准化的约定。例如,Spring Cloud 中定义的微服务接口和 Dubbo 中定义的接口就没有办法互通,通过 Dubbo 和 Istio 管理的微服务也没有办法进行统一治理。
  • 缺少真正面向业务、能够减轻认知负担的抽象和标准。开发者真正想要的可能是简单的、指定服务间的调用关系和配置规则。但现在对于业务开发者来说,不仅需要了解不同微服务框架的部署架构,也要了解不同服务治理方式的概念和能力区别,认知成本很大。

此时,控制面的统一能很好的解决以上困扰。因此我们今年和 bilibili、SphereEx、中国移动等企业,以及 Kratos、CloudWeGo、ShardingSphere、Nacos、Spring Cloud Alibaba、Dubbo 等社区联合发起并开源 OpenSergo 项目,目的就是构建一个和语言无关、和技术形态无关,但贴近业务的统一服务治理规范和实现。另外,Linux 下一代架构基金会也正在致力于服务治理标准的制定。但控制面的统一并非一朝一夕,需要参与方在实践中不断对标准进行磨合、逐步达成共识。


image.png


其他的一些技术趋势

多语言:Java 作为国内微服务开发最主流的语言,正在加速云原生化演进,通过 Spring 6.0 / Spring Boot 3.0 / GraalVM 让 Java 能在容器和 Serverless 时代更轻量、更快速运行。 随着传统客户数字化的升级,之前 C++/C/Python/PHP 研发正在加速向 Go / Rust 演进,目前 Go 微服务生态逐步完善,前端 Node.js 跨语言调用后端服务场景也越来越多,Rust 微服务生态开始起步,Dubbo、CloudWeGo、Nacos 都在今年发布了 Rust 的版本,相信后续会有更多开源项目跟进。


image.png


国产化:核心技术自主可控越加重要,整个软件行业都在加速国产化进程,微服务开源项目需要投入资源,支持 ARM/IPv6/Dragonwell/PolorDB/OceanBase 等国产化的上下游生态,才能获得更多开发中的青睐。。

Proxyless:xDS 协议成为事实标准,从 Lib 包依赖模式到 Sidecar 模式到 Proxyless 模式,Sidecar 模式无侵入带来一些运维复杂度,Lib 包模式有侵入但易运维、性能好,社区尝试 Node 级 Proxy 方式,介于两者之间,但目前处于前期状态;从当前的开发者体量看,Lib 包依赖是主流,Mesh 是补充。

总结

标准化、国产化、DevSecOps、云原生网关、Proxyless、统一控制面和多语言,给微服务带来的新的市场机遇。近一两年,国内出现了很多围绕这些领域的初创公司,也给很多成熟企业带来的新的商业方向,两股力量的相互交融延续着微服务的生命力。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
12天前
|
边缘计算 运维 Cloud Native
浙江省科技进步奖一等奖!阿里云云原生技术实现新突破
科技成果鉴定委员会高度评价该技术,“项目研发难度大,成果创新性强,对促进关键技术进步及自主可控具有重大意义,成果在国内外开源社区产生了广泛影响,并成功应用于互联网、交通、金融、物流、医疗等多个行业。”
|
16天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
16天前
|
运维 Kubernetes Cloud Native
云原生技术入门及实践
【10月更文挑战第39天】在数字化浪潮的推动下,云原生技术应运而生,它不仅仅是一种技术趋势,更是企业数字化转型的关键。本文将带你走进云原生的世界,从基础概念到实际操作,一步步揭示云原生的魅力和价值。通过实例分析,我们将深入探讨如何利用云原生技术提升业务灵活性、降低成本并加速创新。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
1天前
|
运维 Cloud Native 安全
云原生技术在现代企业中的应用与挑战####
本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
|
5天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
12天前
|
监控 Cloud Native 持续交付
云原生技术在现代企业中的应用与实践
本文将深入探讨云原生技术如何改变现代企业的运作模式,提升业务灵活性和创新能力。通过实际案例分析,我们将揭示云原生架构的关键要素、实施步骤以及面临的挑战,为读者提供一套清晰的云原生转型指南。
|
12天前
|
边缘计算 运维 Cloud Native
阿里云基于云原生的大规模云边协同关键技术及应用荣获浙江省科学技术进步一等奖
11月22日, 2023年度浙江省科学技术奖获奖成果公布,阿里云与浙江大学、支付宝、谐云科技联合完成的基于云原生的大规模云边协同关键技术及应用获得浙江省科学技术进步一等奖。
|
13天前
|
Cloud Native 云计算 Docker
云原生技术的崛起:从容器化到微服务架构
云原生技术的崛起:从容器化到微服务架构
|
16天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
42 5
|
17天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####