网易数帆轻舟微服务团队作为服务网格的资深玩家,在实践过程中,对原生 Istio 做了许多改造与扩展。为了回馈社区,我们选择了对大多数社区用户有共性价值的部分,在2021年初开源出了 Slime 项目(https://github.com/slime-io/slime)。
开源两年以来,Slime 项目始终坚持可以无缝对接 Istio,无需任何的定制化改造的原则,降低了 Istio 的使用门槛,取得了一些成果。在社区方面,Slime 得到了社区的广泛关注,已经正式成为 Istio Ecosystem - integrations 的成员,并顺利加入 CNCF - Landscape 。在商业化方面,Slime 一直是轻舟服务网格产品的重要组成部分,在诸多商业化项目中得到了生产级应用,积攒了大量项目实践经验。本次分享将重点介绍 Slime 的企业级实战经验,希望能够对广大用户有所帮助。
内容看点
- 性能优化的实践
Istio 的全量推送性能问题,是所有使用者都要面对的问题。为此,Slime 在开源之初就提出了应对方案:懒加载模块 —— Lazyload 。作为 Slime 中最受关注的模块,懒加载模块一直在不断演进。早期的懒加载模块一直受限于原有方案,只能支持 K8s Service 类型的 HTTP 协议服务。如今,基于新版本提供的扩展能力,懒加载模块已经可以支持非 K8s Service 形式的 HTTP 协议服务,并且具备了进一步支持 Dubbo 协议服务的可能。本次分享将就上述新变化以及懒加载在项目实践中遇到的问题,与大家进行探讨。
- 对接多种服务注册中心的实践
原生 Istio 支持的服务注册中心有限,仅有 Kubernetes 和 Consul 。我们团队在实践中发现这远不能满足大多数用户的需求,尤其是一些在微服务领域探索较早的客户,他们往往已经有了使用顺手的服务注册中心。Istio 和存量服务注册中心的不兼容,成为了这类客户落地服务网格的一大痛点。为此, Slime 开源了专门用于对接不同服务注册中心的网格仓库模块 —— MeshRegistry 。它目前已支持诸多服务注册中心,比如 Eureka 、Nacos 、ZooKeeper 等,极大降低了 Istio 在企业真实场景下落地的门槛。作为 Slime 中最年轻的模块,本次分享将介绍 MeshRegistry 的技术架构与实践经验。
- 限流实践
限流是用户在使用服务网格时,会用到的核心治理能力之一,但是原生 Istio 在这块的能力比较单薄。为此,Slime 的限流模块 —— Limiter ,在网格场景下,做了许多工作,包括单机限流、集群均分限流、集群共享限流,以及基于自定义指标的自适应限流能力。除此以外,在项目实践过程中,我们发现除了常用的服务端限流、客户端限流在一些场景下也很有意义,并且可支持网关的限流需求。本次分享我们将带来限流模块的相关实战经验。
- 高可用实践
企业级应用自然离不开高可用话题。Slime 作为网易数帆轻舟微服务团队自研的组件,其高可用能力也在随着商业化实践不断提升。本次分享也将首次与大家探讨服务网格的高可用能力建设,并介绍 Slime 的多集群方案、多副本模式运行等内容。本次分享将重点介绍 Slime 的企业级实战经验,希望能够对广大用户有所帮助。