6.2.2初见
6.2.2.1 MSE优势
第一次接触MSE服务治理这块产品,就有许多的点命中我们的诉求,以下几点对我们微服务治理改造来说都是很吸引的点:
•无侵入:MSE 微服务治理能力基于 Java Agent 字节码增强的技术实现,无缝支持市面上近5年的所有Spring Cloud 和 Dubbo 的版本,用户不用改一行代码就可以使用。只需开启MSE微服务治理专业版,在线配置,实时生效。
•接入简单:只需在阿里云容器的应用市场安装 mse-pilot,然后在MSE控制台开启命名空间级别的服务治理,重启应用即可接入,当然卸载服务治理也是非常容易的,只需在控制台关闭服务治理,卸载mse-pilot即可,不需要改变业务的现有架构,随时可上可下,没有绑定。
•功能强大,持续发展从开发态、测试态到运行态全生命周期的服务治理覆盖,使得研发同学可更加专注于业务本身。MSE 微服务治理还提供了以下解决方案,解决微服务治理难点,快速提升企业的微服务治理能 力。稳定性领域:线上故障紧急诊断排查与恢复、线上发布稳定性解决方案、微服务全链路灰 度解决方案。降本增效领域:日常测试环境降本隔离解决方案、微服务无缝迁移上云解决方案、 微服务开发测试提效解决方案。
•视化:MSE 服务治理专业版提供了微服务治理流量的可视化视图。 对于灰度流量灰没灰到,灰了多少,配完路由规则后流量实时生效,做到一眼可见,心中有数。 同时对于无损上下线的场景,MSE 提供端到端全生命周期的防护,一眼可以看出流量有无损失, 损失在什么部分。
•拥抱云原生:进入云原生体系之后,以 K8s 为主的云原生体系强调集群之间的灵活调度型,以 POD 为 单位任意的调度资源,在被调度后 POD 的 IP 也将相应的发生变化,传统的服务治理体系, 通常以 IP 为维度进行治理策略的配置,MSE 使用更加云原生的方式使用标签为维度进行微 服务治理策略的配置。
同时在 K8s 环境下与 K8s 的体系深度集成,推出多种完整解决方案,无损上下线使得应用在 弹性伸缩的过程中保持流量无损,通过 Jenkins 构建 CI/CD 实现在 K8s 环境下的金丝雀发 布,基于 Ingress 实现全链路灰度等。
图:MSE 功能说明
图:MSE 无损上下线
6.2.2.2 当时MSE的一些局限
当然在21年9月刚接触MSE微服务治理的过程中发现MSE为服务治理的全链路能力还 是存在一些局限性的,首先就是只支持微服务网关 Spring Cloud Gateway与Zuul以及云网关,当时并不能支持自建的Nginx网关,同时在Dubbo的场景下只支持按照接口参数维度的路由,对于运维同学来说还需要了解业务接口的实现,过于精细化控制,上生产的成本过高; 同时全链路灰度的入口仅仅支持Http网关或者应用作为灰度流量的入口,并不能支持TCP网关作为流量的入口。