Coder Social home page Coder Social logo

slime's Introduction

智能网格管理器

English

slime-logo

Go Report Card License GitHub release (latest by date)


Slime是基于Istio的智能网格管理器。通过Slime,我们可以定义动态的服务治理策略,从而达到自动便捷使用Istio和Envoy高阶功能的目的。

为什么选择Slime

服务网格作为新一代微服务架构,采用 Istio+Envoy ,实现了业务逻辑和微服务治理逻辑的物理解耦,降低微服务框架的开发与运维成本。

Istio 可以实现版本分流、灰度发布、负载均衡等功能,但是在本地限流,黑白名单,降级等微服务治理的高阶特性存在缺陷。起初 Istio 给出的解决方案是 Mixer,将这些原本属于数据面的功能上升到 Mixer Adapter 中。这样做虽然解决了功能扩展的问题,但集中式的架构遭到了不少关注者对其性能的质疑。最终,Istio 在新版本中自断其臂,弃用了 Mixer,这就使得高阶功能的扩展成为目前版本的一块空白。

另一方面 Istio 配置是全量推送的。这就意味着在大规模的网格场景下需推送海量配置。为了减少推送配置量,用户不得不事先搞清楚服务间的依赖关系,配置 SidecarScope做配置隔离,而这无疑增加了运维人员的心智负担,易用性和性能成为不可兼得的鱼和熊掌。

针对 Istio 目前的一些弊端,我们推出了Slime项目。该项目是基于 k8s-operator 实现的,作为 Istio 的 CRD 管理器,可以无缝对接 Istio,无需任何的定制化改造

Slime 内部采用了模块化的架构。目前包含了三个非常实用的子模块。

配置懒加载:无须配置SidecarScope,自动按需加载配置和服务发现信息 ,解决了全量推送的问题。服务调用关系的来源支持Prometheus或者Accesslog。

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

自适应限流:实现了本地限流,同时可以结合监控信息自动调整限流策略,填补了 Istio 限流功能的短板。

网格(服务)仓库:帮助istio快速集成各种服务注册中心。

后续我们会开源更多的功能模块。

架构

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测试教程

交流

证书

Apache-2.0

slime's People

Contributors

cywang1905 avatar yonkafang avatar moucel avatar ydh926 avatar believening avatar caitong93 avatar wbpcode avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.