作者:魏新宇 宋志麒 杨金锋
来源:华章科技
Istio被引入的紧张缘故原由是传统微做事存在以下问题。

那么,是不是说企业一定须要利用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利用越来越广泛,相信最佳实践将会越来越丰富。
1. 版本选择
Istio是一个迭代很快的开源项目。截止到2021年5月,社区最新的Istio版本为1.9。
频繁的版本迭代会给企业带来一些困扰:是坚持利用目前已经测试过的版本,还是利用社区的最新版本?
在前文中我们已经提到,红帽针对Istio有自己的企业版,通过Operator进行支配和管理。出于安全性和稳定性的考虑,红帽Istio每每比社区要晚两个小版本旁边。因此建议利用红帽Istio的最新版本。目前看,社区的最新版本的Istio的稳定性每每不尽如人意。
2. 备用环境
针对相同的运用,在OpenShift环境中支配一套不被Istio管理的环境。比如文中的三层微做事,独立启动一套不被Istio管理的运用,利用OpenShift原来的访问办法即可。
这样做的好处是,每当进行Istio升级或者部分参数调度时都可以提提高行主从切换,让流量切换到没有被Istio管理的环境中,将Istio升级调度验证完毕后再将流量切换回来。
3. 评估范围
由于Istio对微做事的管理是非代码侵入式的。因此常日情形下,业务做事须要进行微做事管理,须要被Istio纳管。而对付没有微做事管理哀求的非业务容器,不必强行纳管在Istio中。当非业务容器须要承载业务时,被Istio纳管也不须要修正源代码,重新在OpenShift上注入Sidecar支配即可。
4. 配置生效
如果系统中已经有干系工具的配置,我们须要利用oc replace -f指定配置文件来更换之前配置的工具。Istio中有的配置策略能够较快生效,有的配置须要一段韶光才能生效,如限流、熔断等。新创建策略(oc create -f)的生效速率要高于更换性策略(oc replace -f)。因此在不影响业务的条件下,可以在运用新策略之前,先删除旧策略。
此外,Istio的配置生效,大多是针对微做事所在的项目,但也有一些配置是针对Istio系统。因此,在配置运用时,要把稳指定对应的项目。
在OpenShift中,Virtual Service和Destination Rules都是针对项目生效,因此配置运用时须要指定项目。
5. 功能健壮性参考
从笔者大量的测试效果看,健壮性较强的功能有基于目标真个蓝绿、灰度发布,基于源真个蓝绿、灰度发布,灰度上线,做事推广,延迟和重试,缺点注入,mTLS,黑白名单。
健壮性有待提升的功能有限流和熔断。
以是,从整体上看,Istio的功能虽日趋完善,但仍有待提升。
6. 入口流量办法选择
在创建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)
《金融级IT架构与运维:云原生、分布式与安全》
推举语:3位资深专家撰写,8位IT卖力人推举,从架构、云原生、分布式、安全、运维为金融企业供应办理方案,案例丰富。