springcloudvsistio微服务治理框架对比

author author     2023-02-09     361

关键词:

目前主流的微服务治理框架主要是Spring Cloud。而Istio作为新一代微服务框架,越来越受到关注。Istio被引入的主要原因是传统微服务存在以下问题。

  • 多语言技术栈不统一:C++、Java、PHP、Go。Spring Cloud无法提出非Java语言的微服务治理。
  • 服务治理周期长:微服务治理框架与业务耦合,上线周期长,策略调整周期长。
  • 产品能力弱:Spring Cloud缺乏平台化和产品化的能力,可视化能力弱。

那么如何选择Spring Cloud与Istio,这里有个简单的对比。

Spring

如果企业的开源语言主要是Java、更新升级不频繁、无过多高级治理功能需求、业务规模不是非常大,使用Spring Cloud是比较合适的。那么引入Istio的成本如何?

Spring

Spring Cloud和Istio实现的企业微服务治理进行对比。

Spring

从开放性以及先进性角度来说,建议将服务网格Istio作为首选微服务应用框架。Istio运维方面的建议包括版本选择、备用环境、评估范围、配置生效、功能健壮性参考、入口流量选择。当然,这些建议都是基于当前的使用情况。随着Istio使用越来越广泛,相信最佳实践将会越来越丰富。

  1. 版本选择

Istio是一个迭代很快的开源项目。频繁的版本迭代会给企业带来一些困扰:是坚持使用目前已经测试过的版本,还是使用社区的最新版本?出于安全性和稳定性的考虑,红帽Istio往往比社区要晚两个小版本左右。因此建议使用红帽Istio的最新版本。目前看,社区的最新版本的Istio的稳定性往往不尽如人意。

  1. 备用环境

针对相同的应用,在环境中部署一套不被Istio管理的环境。这样做的好处是,每当进行Istio升级或者部分参数调整时都可以提前进行主从切换,让流量切换到没有被Istio管理的环境中,将Istio升级调整验证完毕后再将流量切换回来。

  1. 评估范围

由于Istio对微服务的管理是非代码侵入式的。因此通常情况下,业务服务需要进行微服务治理,需要被Istio纳管。而对于没有微服务治理要求的非业务容器,不必强行纳管在Istio中。当非业务容器需要承载业务时,被Istio纳管也不需要修改源代码,重新注入Sidecar部署即可。

  1. 配置生效

如果系统中已经有相关对象的配置,我们需要使用oc replace -f指定配置文件来替换之前配置的对象。Istio中有的配置策略能够较快生效,有的配置需要一段时间才能生效,如限流、熔断等。新创建策略(oc create -f)的生效速度要高于替换性策略(oc replace -f)。

因此在不影响业务的前提下,可以在应用新策略之前,先删除旧策略。此外,Istio的配置生效,大多是针对微服务所在的项目,但也有一些配置是针对Istio系统。因此,在配置应用时,要注意指定对应的项目。

  1. 功能健壮性参考

健壮性较强的功能有基于目标端的蓝绿、灰度发布,基于源端的蓝绿、灰度发布,灰度上线,服务推广,延迟和重试,错误注入,mTLS,黑白名单。健壮性有待提升的功能有限流和熔断。

  1. 入口流量方式

在Istio体系中的应用不使用Router也可以正常访问微服务。但是PaaS上运行的应用未必都是Istio体系下的,其他非微服务或者非Istio体系下的服务还是要通过Router访问。此外,Istio本身的监控系统和Kiali的界面都是通过Router访问的。

相比Spring Cloud,Istio较好地实现了微服务的路由管理。但在实际生产中,仅有微服务的路由管理是不够的,还需要诸如不同微服务之间的业务系统集成管理、微服务的API管理、微服务中的规则流程管理等。

微服务系列2:微服务化框架的模型和治理能力设计

紧接上一篇,​​服务化框架落地的挑战和核心需求​​,那么基于这些核心诉求,我们整个的微服务框架的模型是如何?又该具备哪些核心的治理能力呢?通过本文来一一知晓!一、服务治理的理解随着互联网的发展和容器化... 查看详情

用友云服务治理平台助力企业微服务架构落地

本文主要阐述使用微服务架构时,治理框架或者平台需要解决的主要问题,微服务落地实施过程中所遇到的关键问题和对应解决方案。同时,文章也介绍用友云旗下的微服务治理平台的核心功能和技术架构,以及微服务治理平台... 查看详情

微服务架构下的服务治理:如何在springcloud框架中实现服务的注册与发现

服务治理RPC远程过程调用协议的核心设计思想:在于注册中心,因为注册中心:管理每个服务与服务之间的一个依赖关系服务治理:在传统的RPC远程过程调用协议中,管理每个服务与服务之间的依赖关系非常复杂.可以使用服务治理技术... 查看详情

微服务治理平台的rpc方案实现

导读:本文主要探讨了rpc框架在微服务化中所处的位置,需要解决的问题。同时介绍了用友云微服务治理平台的rpc解决方案,为什么选择该方案、该方案提供的好处是什么。同时也会介绍用友RPC框架的基本结构以及在实现时所用... 查看详情

微服务治理平台的rpc方案实现

导读:本文主要探讨了rpc框架在微服务化中所处的位置,需要解决的问题。同时介绍了用友云微服务治理平台的rpc解决方案,为什么选择该方案、该方案提供的好处是什么。同时也会介绍用友RPC框架的基本结构以及在实现时所用... 查看详情

常见的3种微服务治理方式

1、应用程序中包含微服务治理逻辑在微服务架构中,服务间不再是在朴素的进程内通信,取而代之的是通过轻量级的网络协议进行通信。那么,如何找到服务提供方?如何超时重试?当存在多个服务提供方时如何实现负载均衡... 查看详情

基于servicemesh服务网格的去中心化微服务管控治理平台

...先说明下我最近在思考的一个产品规划,即基于ServiceMesh服务网格思路,参考开源的Istio等实现架构来搭建一个完整的微服务治理管控平台。在前面文章里面我就提到了,在实施微服务架构后,由于微服务将传统的单体应用进行... 查看详情

servicemesh—overview

目录文章目录目录微服务的两个层面微服务架构服务治理的难点ServiceMesh(服务网格)ServiceMesh的设计思想Istio的实现原理ServiceMesh的问题ServiceMesh的未来微服务的两个层面从层级抽象的角度看,一个微服务应用程序主要包含了两... 查看详情

servicemesh—overview

目录文章目录目录微服务的两个层面微服务架构服务治理的难点ServiceMesh(服务网格)ServiceMesh的设计思想Istio的实现原理ServiceMesh的问题ServiceMesh的未来微服务的两个层面从层级抽象的角度看,一个微服务应用程序主要包含了两... 查看详情

应用量化时代|微服务架构的服务治理之路

...展,在众多企业的数字化转型之路上,云原生、DevOps、微服务、服务治理等成为行业内不断被探讨的新话题。人们在理解和接受这些新型概念的同时,也不断地思考其可能的落地形态。需求是创造发生的原动力,于是一批代表性... 查看详情

dubbo-admin正式支持3.0服务治理(代码片段)

简介:Dubbo相信大家并不陌生,是一款微服务开发框架,它提供了RPC通信与微服务治理两大关键能力。大家在日常开发中更多使用的是Dubbo提供的RPC通信这一部分能力,而对其提供的服务治理的能力使用相对少一些... 查看详情

云原生微服务治理技术朝无代理架构的演进之路

摘要:本文基于对微服务治理技术从SOA,微服务框架,到云原生架构的历史发展总结,提出了一种新的基于Javaagent技术的新一代无代理架构的服务治理技术,并介绍了其相关的代表性开源项目Sermant。本文分享自华... 查看详情

小红书微服务框架及治理等云原生业务架构演进案例

‍在互联网世界,变化与演进是业务架构永恒的主题。技术迭代、业务演变等多重因素,一再提升着系统架构设计的难度和复杂度,可以说,没有一种架构是永久适用的,要想让自己的业务具有快速响应、快... 查看详情

开源推荐-c++开发的微服务框架tars

参考技术ATars致力于建设微服务技术生态,在底层基础设施、服务框架、上层应用以及DevOps等方面,都做了较为深入的研发。2020年3月10日,Linux基金会正式宣布旗下的TARS开源项目成立TARS子基金会。这是一个专注于微服务领域的... 查看详情

微服务相关原理与治理(代码片段)

微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和SpringCloud。目前微服务实现方式主要有两种Dubbo和SpringCloud:一、Dubbo:(https://www.cnblogs.co... 查看详情

布道微服务_19微服务治理平台的设计与落地

文章目录Pre微服务治理平台的基本功能定义&组成服务管理服务治理服务监控问题定位日志查询服务运维如何搭建微服务治理平台WebPortalAPI存储小结Pre体应用改造为微服务架构后,服务调用从本地调用变成了远程方法调用后,... 查看详情

布道微服务_19微服务治理平台的设计与落地

文章目录Pre微服务治理平台的基本功能定义&组成服务管理服务治理服务监控问题定位日志查询服务运维如何搭建微服务治理平台WebPortalAPI存储小结Pre体应用改造为微服务架构后,服务调用从本地调用变成了远程方法调用后,... 查看详情

dubbomesh:从服务框架到统一服务控制平台

ApacheDubbo是一款RPC服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了Java、Golang等多语言SDK实现。使用Dubbo开发的微服务原生具备相互之间的远程地址发现与通信能力,利用Dubbo提供的丰富服务... 查看详情