多语言技术栈不统一:C++、Java、PHP、Go。Spring Cloud无法提出非Java语言的微服务治理。
为宿松等地区用户提供了全套网页设计制作服务,及宿松网站建设行业解决方案。主营业务为成都网站建设、做网站、宿松网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
服务治理周期长:微服务治理框架与业务耦合,上线周期长,策略调整周期长。
产品能力弱:Spring Cloud缺乏平台化和产品化的能力,可视化能力弱。
那么,是不是说企业一定需要使用Istio?不是。表2-2是对Spring Cloud与Istio的简单对比。
▼表2-2 Spring Cloud与Istio的对比与选择
也就是说,如果企业的开源语言主要是Java、更新升级不频繁、无过多高级治理功能需求、业务规模不是非常大,使用Spring Cloud是比较合适的。
如果企业要引入Istio,引入成本有多高?具体分三种情况,如表2-3所示。
▼表2-3 企业引入Istio的成本
接下来,我们对在OpenShift上通过Spring Cloud和Istio实现的企业微服务治理进行对比,如表2-4所示。
▼表2-4 Spring Cloud与Istio的实现对比
从开放性以及先进性角度来说,建议将服务网格Istio作为选择微服务应用框架。接下来我们介绍Istio在实践中的使用建议。
Istio运维方面的建议包括版本选择、备用环境、评估范围、配置生效、功能健壮性参考、入口流量选择。当然,这些建议只是基于目前我们在测试过程中得到的数据总结的。随着Istio使用越来越广泛,相信最佳实践将会越来越丰富。
Istio是一个迭代很快的开源项目。截止到2021年5月,社区最新的Istio版本为1.9。
频繁的版本迭代会给企业带来一些困扰:是坚持使用目前已经测试过的版本,还是使用社区的最新版本?
在前文中我们已经提到,红帽针对Istio有自己的企业版,通过Operator进行部署和管理。出于安全性和稳定性的考虑,红帽Istio往往比社区要晚两个小版本左右。因此建议使用红帽Istio的最新版本。目前看,社区的最新版本的Istio的稳定性往往不尽如人意。
针对相同的应用,在OpenShift环境中部署一套不被Istio管理的环境。比如文中的三层微服务,独立启动一套不被Istio管理的应用,使用OpenShift原本的访问方式即可。
这样做的好处是,每当进行Istio升级或者部分参数调整时都可以提前进行主从切换,让流量切换到没有被Istio管理的环境中,将Istio升级调整验证完毕后再将流量切换回来。
由于Istio对微服务的管理是非代码侵入式的。因此通常情况下,业务服务需要进行微服务治理,需要被Istio纳管。而对于没有微服务治理要求的非业务容器,不必强行纳管在Istio中。当非业务容器需要承载业务时,被Istio纳管也不需要修改源代码,重新在OpenShift上注入Sidecar部署即可。
如果系统中已经有相关对象的配置,我们需要使用oc replace -f指定配置文件来替换之前配置的对象。Istio中有的配置策略能够较快生效,有的配置需要一段时间才能生效,如限流、熔断等。新创建策略(oc create -f)的生效速度要高于替换性策略(oc replace -f)。因此在不影响业务的前提下,可以在应用新策略之前,先删除旧策略。
此外,Istio的配置生效,大多是针对微服务所在的项目,但也有一些配置是针对Istio系统。因此,在配置应用时,要注意指定对应的项目。
在OpenShift中,Virtual Service和Destination Rules都是针对项目生效,因此配置应用时需要指定项目。
从笔者大量的测试效果看,健壮性较强的功能有基于目标端的蓝绿、灰度发布,基于源端的蓝绿、灰度发布,灰度上线,服务推广,延迟和重试,错误注入,mTLS,黑白名单。
所以,从整体上看,Istio的功能虽日趋完善,但仍有待提升。
在创建Ingress网关的时候,会自动在OpenShift的Router上创建相应的路由。Ingress网关能够暴露的端口要多于Router。所以,我们可以根据需要选择通过哪条路径来访问应用。
在Istio体系中的应用不使用Router也可以正常访问微服务。但是PaaS上运行的应用未必都是Istio体系下的,其他非微服务或者非Istio体系下的服务还是要通过Router访问。此外,Istio本身的监控系统和Kiali的界面都是通过Router访问的。
相比Spring Cloud,Istio较好地实现了微服务的路由管理。但在实际生产中,仅有微服务的路由管理是不够的,还需要诸如不同微服务之间的业务系统集成管理、微服务的API管理、微服务中的规则流程管理等。
本文摘编自《金融级IT架构与运维:云原生、分布式与安全》,经出版方授权发布。(ISBN:978-7-111-69829-6)
文章题目:微服务治理框架的选择:对比SpringCloud和Istio
文章URL:http://www.shufengxianlan.com/qtweb/news10/97060.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联