/slime

An intelligent ServiceMesh manager based on Istio

Primary LanguageGoOtherNOASSERTION

智能网格管理器

English

slime-logo

Go Report Card License GitHub release (latest by date)


Slime 定位是服务网格智能管理器,构建在服务网格之上。Slime 专注于以无侵入、智能化方式扩展并增强服务网格的核心功能(流量治理、安全性、可观测性)、性能、稳定性与运维性。Slime 简化业务接入与使用服务网格,并在生产环境大规模稳定运行服务网格提供管理保障。此外,Slime 通过精心设计的扩展机制,使业务不需要对服务网格基础框架进行修改,即可为服务网格赋予智能化使用与运维能力。

为什么选择Slime

服务网格作为新一代微服务架构,实现了业务逻辑和微服务治理逻辑的解耦,降低了微服务的开发与运维成本。但我们在帮助业务团队使用服务网格,并进行生产落地的过程中,发现现有服务网格平台仍然存在着许多问题:

  • 有些功能缺失或使用门槛太高,导致业务无法顺利接入;
  • 大规模业务集群场景下,存在许多稳定性风险;
  • 管理员对服务网格的管理与运维困难:需要修改服务网格基础框架来解决问题。这样会改变基础框架的原有逻辑,无法合入社区版本,为开发者长期维护服务网格制造了很多困难。

为此,我们开发了很多的服务网格周边模块,解决了这些问题,保证运行在服务网格之上的企业业务能够平稳运行,并且设计的扩展机制不需要侵入框架原生代码。为了回馈社区,我们系统整理了解决共性问题的核心模块,开源出来,这便有了 Slime 项目。

该项目是基于 k8s-operator 实现的,可以无缝对接 Istio,无需任何的定制化改造

Slime 核心能力包括智能流量管理、智能运维管理、智能扩展管理:

  • 智能流量管理:通过业务流量中的特征内容,升级服务网格流量治理能力,为业务提供更精细化和及时的治理功能 ——

    • 自适应限流:实现了本地限流,同时可以结合监控信息自动调整限流策略,填补了传统服务网格限流功能的短板
    • 智能熔断降级
    • 流量染色
  • 智能运维管理:结合服务网格架构下的组件与业务特征,提供更精准、可视化的运维能力和性能稳定性增强 ——

    • 配置懒加载:无须配置SidecarScope,自动按需加载配置和服务发现信息 ,解决了全量推送的问题。服务调用关系的来源支持Prometheus或者Accesslog
    • 网格(服务)仓库:帮助istio快速集成各种服务注册中心
    • 文件分发管理(filemanager,后续提供)
    • 命令行交互 i9s
    • 巡检(patrol)
    • 排障工具(tracetio)
  • 智能插件管理:针对服务网格缺少高效的插件管理工具的问题,提供批量插件管理能力,简化服务网格数据面插件管理的难度

    • Http插件管理:使用新的的CRD pluginmanager/envoyplugin包装了可读性及可维护性差的envoyfilter,使得插件扩展更为便捷。

目前我们开源了自适应限流、配置懒加载、网格(服务)仓库、i9s、Http插件管理,后续我们会开源更多的功能模块。

架构

Slime架构主要分为三大块:

  1. slime-boot,部署Slime(slime-modules和slime-framework)的Operator组件。
  2. slime-modules,Slime的核心线程,感知SlimeCRD并转换为IstioCRD,并触发内置的其他逻辑。
  3. slime-framework,作为底座,为modules提供通用的基础能力。

其架构图如下:

slime架构图

Slime支持聚合打包,可以将任意模块聚合成一个镜像。所以,Slime可以以一个Deployment形式部署,避免组件过多。

教程

slime网站

Slime镜像信息

Slime-boot安装

Slime-module

E2E测试教程

编译构建slime镜像

具体请参考编译构建slime镜像

贡献代码

如果您有兴趣向Slime项目贡献代码,请先阅读 CONTRIBUTING_GUILDLINES

谁在使用Slime

我们十分期待你提交你的使用案例,让我们一起来完善这个列表。#190

交流

证书

Apache-2.0

行为准则

我们遵循 CNCF Community Code of Conduct.