|
25 | 25 | 轻量级、声明式的 AI 服务管控中间件 |
26 | 26 |
|
27 | 27 | ## 项目概述 |
28 | | -Astron-xmod-shim 是一款轻量级、声明式的 AI 服务管控中间件,基于用户的期望状态,通过状态驱动的调协循环持续收敛至目标。通过 **Pipeline** 实现面向抽象的函数式部署流程编排,**Shimlet** 完成面向抽象的基础设施运行时适配,二者构成双层可插拔架构,将“在哪运行”与“如何部署”彻底解耦,支持快速集成新平台与定制化部署策略,真正实现“一次定义,随处部署”。 |
| 28 | +Astron-xmod-shim 是一款轻量级、声明式的 AI 服务管控中间件,它让用户通过 DeploySpec 声明期望状态,系统则围绕一组明确目标(Goals) 实现可靠收敛——目标可以是“模型存在”“服务就绪”“通过安全校验”等任意可验证状态。这些目标由 GoalSet 组织:系统内置常用模板(如 llm-deploy、llm-delete),开箱即用;也支持第三方自定义,灵活扩展部署语义。目标的具体执行通过 Shimlet 插件对接底层环境(如 Kubernetes、Docker),你专注定义“应该是什么样”,系统负责“在哪变成那样”。 |
| 29 | + |
29 | 30 | ## 🌟 核心设计理念:从意图到最终一致 |
30 | | -Astron-xmod-shim 的设计围绕一个核心思想:部署即收敛到一组明确目标(Goals), 不规定“必须检查什么”,只提供“如何可靠地收敛到你定义的目标”。 |
31 | 31 |
|
32 | | -- **部署意图:DeploySpec(用户侧)** |
33 | | - 用户通过提交 DeploySpec 声明“要什么” —— 例如: |
34 | | -“我需要一个名为 qwen3-1.5b 的模型服务,1 个副本,使用 1 张 NVIDIA GPU,模型文件位于 /models/qwen3.tar。” |
35 | | -DeploySpec 是纯意图描述,不包含任何实现细节或环境绑定,确保用户接口简洁、平台无关。 |
36 | | -- **Goal、GoalSet 与 执行引擎** |
37 | | - 1. Goal 是一个明确的系统目标(如“模型文件存在”),包含 IsAchieved()(判断是否达成)和 Ensure()(执行修复)。 |
38 | | - 2. GoalSet 是一组有序 Goal 的集合,代表某类部署场景的收敛路径,内容完全开放,可由第三方扩展。 |
39 | | - 3. 执行引擎由 WorkQueue + reconcile loop 构成: |
40 | | - WorkQueue 负责可靠排队(去重、重试、背压),reconcile loop 负责逐个收敛 Goal,确保最终一致性。 |
| 32 | +Astron-xmod-shim 的设计围绕一个核心思想:**部署即收敛到一组明确目标(Goals)**。 |
| 33 | +系统不规定“必须检查什么”,只提供“如何可靠地收敛到你定义的目标”。 |
41 | 34 |
|
42 | | -- **Shimlet(运行时适配插件** |
43 | | -实现 shimlet 底层环境基础操作操作 接口,封装底层环境(如 Kubernetes、Docker)的资源操作。通过接口抽象实现运行时解耦,支持多环境无缝切换。 |
| 35 | +- **部署意图:`DeploySpec`(用户侧)** |
| 36 | + 用户通过 `DeploySpec` 声明“要什么”,例如: |
| 37 | + > “部署一个名为 `qwen-test` 的模型服务,1 个副本,使用 1 张 NVIDIA GPU,模型使用 `qwen3-1.5b`。” |
| 38 | + `DeploySpec` 是纯意图描述,不包含实现细节或环境绑定,确保接口简洁、平台无关。 |
44 | 39 |
|
45 | | -- **轻量单体架构** |
46 | | - 单二进制交付,无外部依赖,适用于边缘、本地及云原生部署场景 |
| 40 | +- **`Goal`、`GoalSet` 与执行引擎** |
| 41 | + 1. **`Goal`** 是一个明确的系统目标(如“模型文件存在”),包含: |
| 42 | + - `IsAchieved()`:判断目标是否已达成; |
| 43 | + - `Ensure()`:若未达成,则执行幂等修复动作。 |
| 44 | + 2. **`GoalSet`** 是一组有序 `Goal` 的集合,代表某类部署场景(如 LLM 上线、服务下线)的收敛路径。其内容完全开放,支持第三方扩展。 |
| 45 | + 3. **执行引擎**由 **`WorkQueue` + `reconcile loop`** 构成: |
| 46 | + - `WorkQueue` 提供可靠调度(去重、限速重试、背压控制); |
| 47 | + - `reconcile loop` 持续消费任务,逐个收敛 `Goal`,直至状态一致。 |
47 | 48 |
|
48 | | - |
| 49 | +- **`Shimlet`(运行时适配插件)** |
| 50 | + `Shimlet` 实现 `shim.Runtime` 接口,封装底层环境(如 Kubernetes、Docker)的资源操作,通过接口抽象实现运行时解耦,支持多环境无缝切换。 |
| 51 | + |
| 52 | +- **轻量单体架构** |
| 53 | + 单二进制交付,无外部依赖,适用于边缘、本地及云原生等多种部署场景。 |
49 | 54 |
|
50 | | -GoalSet 是一组有序、可验证、可执行的目标(Goals),构成从当前状态到期望状态的收敛路径。 |
51 | 55 |
|
| 56 | + |
52 | 57 |
|
53 | 58 |
|
54 | 59 |
|
|
0 commit comments