Skip to content

Commit a3ed9f2

Browse files
authored
Merge pull request #56 from iflytek/feat/statedriven&reconciler
Update README.md
2 parents 25c07ba + 6364c3c commit a3ed9f2

1 file changed

Lines changed: 22 additions & 17 deletions

File tree

README.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,35 @@
2525
轻量级、声明式的 AI 服务管控中间件
2626

2727
## 项目概述
28-
Astron-xmod-shim 是一款轻量级、声明式的 AI 服务管控中间件,基于用户的期望状态,通过状态驱动的调协循环持续收敛至目标。通过 **Pipeline** 实现面向抽象的函数式部署流程编排,**Shimlet** 完成面向抽象的基础设施运行时适配,二者构成双层可插拔架构,将“在哪运行”与“如何部署”彻底解耦,支持快速集成新平台与定制化部署策略,真正实现“一次定义,随处部署”。
28+
Astron-xmod-shim 是一款轻量级、声明式的 AI 服务管控中间件,它让用户通过 DeploySpec 声明期望状态,系统则围绕一组明确目标(Goals) 实现可靠收敛——目标可以是“模型存在”“服务就绪”“通过安全校验”等任意可验证状态。这些目标由 GoalSet 组织:系统内置常用模板(如 llm-deploy、llm-delete),开箱即用;也支持第三方自定义,灵活扩展部署语义。目标的具体执行通过 Shimlet 插件对接底层环境(如 Kubernetes、Docker),你专注定义“应该是什么样”,系统负责“在哪变成那样”。
29+
2930
## 🌟 核心设计理念:从意图到最终一致
30-
Astron-xmod-shim 的设计围绕一个核心思想:部署即收敛到一组明确目标(Goals), 不规定“必须检查什么”,只提供“如何可靠地收敛到你定义的目标”。
3131

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+
系统不规定“必须检查什么”,只提供“如何可靠地收敛到你定义的目标”。
4134

42-
- **Shimlet(运行时适配插件**
43-
实现 shimlet 底层环境基础操作操作 接口,封装底层环境(如 Kubernetes、Docker)的资源操作。通过接口抽象实现运行时解耦,支持多环境无缝切换。
35+
- **部署意图:`DeploySpec`(用户侧)**
36+
用户通过 `DeploySpec` 声明“要什么”,例如:
37+
> “部署一个名为 `qwen-test` 的模型服务,1 个副本,使用 1 张 NVIDIA GPU,模型使用 `qwen3-1.5b`。”
38+
`DeploySpec` 是纯意图描述,不包含实现细节或环境绑定,确保接口简洁、平台无关。
4439

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`,直至状态一致。
4748

48-
49+
- **`Shimlet`(运行时适配插件)**
50+
`Shimlet` 实现 `shim.Runtime` 接口,封装底层环境(如 Kubernetes、Docker)的资源操作,通过接口抽象实现运行时解耦,支持多环境无缝切换。
51+
52+
- **轻量单体架构**
53+
单二进制交付,无外部依赖,适用于边缘、本地及云原生等多种部署场景。
4954

50-
GoalSet 是一组有序、可验证、可执行的目标(Goals),构成从当前状态到期望状态的收敛路径。
5155

56+
5257

5358

5459

0 commit comments

Comments
 (0)