「DeployLite」系统架构白皮书
By Leeting Yan
DeployLite System Architecture Whitepaper (版本:v1.0 / 2025年10月)
一、项目综述(Project Overview)
1.1 背景与使命
在现代软件交付体系中,构建与部署流程已成为影响开发效率与企业运营成本的关键环节。 然而,传统的 CI/CD 平台(如 Jenkins、GitLab CI、ArgoCD)在轻量化、自托管、安全隔离和成本控制上存在显著缺陷。
DeployLite 的诞生目标是:
“为中小团队和独立开发者提供一套轻量、可自托管、可商业化的现代化打包与部署基础设施。”
它并非又一个 CI 工具,而是一个 部署操作系统(Deployment Operating System) —— 集成了:
- 代码触发(Trigger)
- 构建调度(Pipeline Engine)
- 执行节点(Runner)
- 制品与配置管理(Artifact + Env)
- 策略与权限控制(Policy Engine)
- 自动回滚与可观测性体系
从而实现:
“从代码提交 → 构建打包 → 部署上线 → 监控反馈 → 自动修复”的一体化生命周期闭环。
1.2 设计愿景
| 维度 | 核心理念 |
|---|---|
| 轻量(Lightweight) | 部署快、依赖少、资源占用低(1核1G 即可运行) |
| 模块化(Modular) | 所有功能皆为独立微模块,可替换与组合 |
| 可扩展(Extensible) | 插件、策略、Runner 可自由扩展 |
| 安全(Secure) | 多层权限控制与密钥隔离机制 |
| 智能(Intelligent) | 自动化分析、预测、回滚与成本调度 |
| 开放(Open) | API First,完全可二次开发 |
二、总体架构设计(System Overview)
2.1 架构理念:三层分治模型
DeployLite 采用“三层分治”架构:
- Control Plane(控制面)
- Runner Plane(执行面)
- Storage & Policy Plane(状态与策略面)
flowchart TB
subgraph Control Plane
API[API Server]
Scheduler[Task Scheduler]
Policy[Policy Engine]
Monitor[Metrics & Events]
end
subgraph Runner Plane
Agent[Runner Agent]
Executor[Build Executor]
Cache[Local Cache]
end
subgraph Storage Plane
DB[(PostgreSQL)]
Redis[(Redis)]
Artifact[(S3 Storage)]
PolicyDB[(OPA Policies)]
end
API --> Scheduler --> Agent
Agent --> Executor --> Artifact
Policy --> Scheduler
Monitor --> DB
2.2 模块定义
| 模块 | 作用 | 技术栈 |
|---|---|---|
| API Server | 提供 REST/gRPC 接口、认证与控制 | Go + Fiber + OpenAPI |
| Scheduler | 调度任务、分配 Runner、维持状态 | Go + Redis Stream |
| Runner Agent | 执行构建与部署任务 | Go + Docker / SSH |
| Artifact Service | 管理构建产物与制品版本 | Go + MinIO / S3 |
| Policy Engine | 策略控制与审批验证 | OPA + Rego |
| Monitor | 实时指标与日志监控 | Prometheus + Loki |
| UI Console | 可视化控制面板 | Vue3 + Tailwind + shadcn/ui |
2.3 数据流(Data Flow)
sequenceDiagram
participant Dev as Developer
participant API as API Server
participant Sch as Scheduler
participant Run as Runner Agent
participant Art as Artifact Storage
participant Mon as Monitor
Dev->>API: 提交代码(Push / Webhook)
API->>Sch: 生成 Pipeline 任务
Sch->>Run: 分配任务并启动执行
Run->>Art: 上传构建产物
Run->>API: 回传状态与日志
API->>Mon: 记录事件与指标
Mon-->>Dev: 实时通知与报表
三、核心模块架构(Core Modules)
3.1 Pipeline Engine
核心功能:
- 基于 YAML 的 DSL;
- 有向无环图(DAG)依赖模型;
- 每个 Stage 支持并发;
- 插件驱动执行模型。
内部结构:
graph LR
A[Parser] --> B[Validator]
B --> C[Executor]
C --> D[Logger]
C --> E[Artifact Uploader]
特性:
- 支持 step 级别的缓存;
- 失败后自动回滚;
- 可视化执行图;
- 支持条件执行与矩阵构建。
3.2 Runner Agent
Runner 是 DeployLite 的计算执行节点。
- 支持容器(Docker)、虚拟机、SSH、K8s Pod 模式;
- 可水平扩展;
- 与控制面心跳同步;
- 自动任务抢占与队列隔离。
核心逻辑:
- 任务拉取 → 执行 → 日志上传 → 状态上报;
- 使用 goroutine 池与 channel 管理并发;
- 任务上下文独立,防止变量污染。
3.3 Policy Engine (OPA Integration)
功能:
- 对关键操作(部署、审批、发布)进行策略评估;
- 支持 Rego DSL;
- 动态加载;
- 提供 Webhook 与审计事件。
|
|
3.4 Artifact Service
- 使用对象存储(MinIO/S3);
- 支持制品版本、签名、SBOM 报告;
- 文件存储 + 元数据索引双层模型;
- 提供 API 下载、预签名 URL;
- 可设定过期时间与清理策略。
3.5 Monitoring & Observability
监控体系基于 Prometheus + Loki + Grafana。
| 指标类别 | 示例 |
|---|---|
| 构建性能 | pipeline_duration_seconds |
| Runner 状态 | runner_heartbeat_total |
| 调度延迟 | scheduler_latency_ms |
| 存储容量 | artifact_storage_used_bytes |
| 策略评估 | policy_eval_count |
可视化大屏:
- 实时任务数;
- 成功率趋势;
- 构建平均耗时;
- Runner 资源利用率。
四、数据模型(Data Model)
erDiagram
PROJECTS ||--o{ PIPELINES : contains
PIPELINES ||--o{ STAGES : includes
PIPELINES ||--o{ ARTIFACTS : generates
PIPELINES ||--o{ LOGS : produces
RUNNERS ||--o{ TASKS : executes
POLICIES ||--o{ AUDIT_LOGS : validates
| 实体 | 关键字段 | 说明 |
|---|---|---|
| Project | id, name, repo_url | 项目定义 |
| Pipeline | id, yaml, status | 构建任务 |
| Stage | id, pipeline_id, order | 阶段任务 |
| Artifact | id, hash, size | 制品信息 |
| Runner | id, token, status | 执行节点 |
| Policy | name, rego | 策略文件 |
| AuditLog | actor, action, trace_id | 审计记录 |
五、系统特性(System Capabilities)
5.1 性能指标
| 维度 | 指标 |
|---|---|
| API 响应时间 | P95 < 250ms |
| 构建延迟 | 平均 < 3min |
| Runner 并发 | 单节点 20 并发 |
| 可用性 | 99.9% |
| 启动时间 | < 10s |
| 内存占用 | < 200MB(控制面) |
5.2 安全体系
- 双层 RBAC(租户 + 项目级);
- JWT + Refresh Token;
- Secret 加密存储(AES-256-GCM);
- 签名验证(Cosign / Sigstore);
- 审计日志全链路追踪;
- 配合企业 KMS 可实现 HSM 级保护。
5.3 可扩展性
- 插件体系(Step / Policy / Notify / Deploy);
- 自定义 Runner 镜像;
- API SDK 支持 Go / Python / Node;
- Webhook 事件流可订阅;
- 适配 Kubernetes CRD。
5.4 可观测性
- 内置 Prometheus exporter;
- 分布式 Trace (OpenTelemetry);
- 日志统一标准化格式;
- 一键接入 Grafana Dashboard。
六、部署架构与弹性设计
6.1 单节点部署
适用于小型团队:
|
|
包括:
- api-server
- scheduler
- runner
- postgres + redis + minio
启动后即刻使用。
6.2 集群部署
适用于企业环境(Kubernetes):
|
|
特性:
- 自动负载均衡;
- 支持滚动升级;
- Redis Stream + PostgreSQL 提供 HA;
- 使用 StatefulSet 保持 Artifact 持久性。
6.3 弹性伸缩
- Runner 节点支持自动注册;
- 可基于任务量动态调整数量;
- 提供 REST API 接口:
|
|
七、未来演进路线(Future Evolution)
| 阶段 | 技术重点 | 描述 |
|---|---|---|
| v3.0 (GA) | AI Assisted Deploy | 自动优化构建配置、智能回滚预测 |
| v3.1 | Edge Build | WebAssembly Runner,边缘节点执行 |
| v3.2 | ZeroOps | 自动伸缩 + 自愈架构 |
| v4.0 | Universal Build Cloud | 跨平台构建云,实现“无处不在的部署” |
八、总结(Conclusion)
DeployLite 不仅是一个 CI/CD 平台,更是未来软件交付的新基座。 通过“轻量核心 + 可扩展架构 + 策略安全 + 智能决策”的组合, 它让部署不再是一场复杂的运维行为,而成为开发者生态的自愈循环系统。
“在 DeployLite 的世界里,代码不只是被构建,而是被持续理解、保护与进化。”