# 部署模式选择

ByClaw 支持两种部署模式，您可以根据实际需求选择最适合的方式。

## 部署模式对比

| 特性 | 中间件模式 | 拆分模式 (Standalone) |
|------|-----------|----------------------|
| **适用场景** | 只需要部署中间件，应用自行部署 | 生产环境、需要独立扩缩容 |
| **镜像数量** | 4 个 | 5 个 |
| **资源占用** | 中等 | 较高 |
| **管理复杂度** | 低 | 中等 |
| **扩缩容能力** | 按中间件扩缩 | 按模块独立扩缩 |
| **故障隔离** | 中间件级隔离 | 模块级隔离 |
| **按需启动** | `MIDDLEWARE_MODULES` | `STANDALONE_MODULES` |
| **Docker Compose** | V1 / V2 均可 | V1 / V2 均可 |

## 两种模式详解

### 1. 中间件模式

仅部署 Redis、MinIO、OpenGauss 和 OpenSandbox。

**适用场景：**
- 您已经有自己的应用部署方式
- 需要单独管理和维护中间件
- 开发环境，只需要中间件支持

**包含组件：**
- Redis
- MinIO
- OpenGauss
- OpenSandbox

**→ 详细文档：** [中间件部署](./06-middleware-deployment.md)

---

### 2. 拆分模式 (Standalone)

每个模块独立部署在自己的容器中，可以单独启停和扩缩容。

**适用场景：**
- 生产环境
- 需要独立扩缩容
- 需要高可用性
- 中大型部署

**包含组件：**
- FE（前端）
- BE（后端）
- QA Manager
- QA Worker（后台进程）
- Data（DataCloud）

**优点：**
- 可以独立扩缩容某个模块
- 故障隔离，一个模块故障不影响其他
- 日志独立，便于排查
- 适合生产环境

**缺点：**
- 容器数量多
- 资源占用相对较高
- 管理复杂度稍高

**→ 详细文档：** [拆分部署](./08-standalone-deployment.md)

---

## 推荐选择流程

```
开始
  │
  ├─ 是否只需中间件？ ──是──> [中间件模式]
  │
  └─ 否
     │
     ├─ 生产环境？ ──是──> [拆分模式]
     │
     └─ 否
        │
        ├─ 资源受限？ ──是──> [单体模式]
        │
        └─ 否
           │
           ├─ 需要独立扩缩容？ ──是──> [拆分模式]
           │
           └─ 否 ──> [单体模式]
```

## 一键部署脚本

项目提供了便捷的一键启动脚本：

```bash
# 一键启动中间件 + 拆分模式
cd deploy
sh start-standalone.sh
```

---

**下一步：** 根据您选择的模式，阅读对应的部署文档：
- [中间件部署](./06-middleware-deployment.md)
- [拆分部署](./08-standalone-deployment.md)
