「DeployLite」系统架构白皮书(System Architecture Whitepaper)

第 4 章:DeployLite 系统架构白皮书,介绍了 DeployLite 平台的系统架构设计,包括组件架构、数据流程、安全机制等。

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 与审计事件。
package deploylite.policy

default allow = false
allow {
  input.user.role == "maintainer"
  input.action == "deploy"
  input.env == "staging"
}

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
实体关键字段说明
Projectid, name, repo_url项目定义
Pipelineid, yaml, status构建任务
Stageid, pipeline_id, order阶段任务
Artifactid, hash, size制品信息
Runnerid, token, status执行节点
Policyname, rego策略文件
AuditLogactor, 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 单节点部署

适用于小型团队:

docker-compose up -d

包括:

  • api-server
  • scheduler
  • runner
  • postgres + redis + minio

启动后即刻使用。

6.2 集群部署

适用于企业环境(Kubernetes):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploylite-api
spec:
  replicas: 3
  template:
    spec:
      containers:
        - name: api
          image: deploylite/api:v2.0

特性:

  • 自动负载均衡;
  • 支持滚动升级;
  • Redis Stream + PostgreSQL 提供 HA;
  • 使用 StatefulSet 保持 Artifact 持久性。

6.3 弹性伸缩

  • Runner 节点支持自动注册;
  • 可基于任务量动态调整数量;
  • 提供 REST API 接口:
POST /api/v1/runners/scale
{
  "min": 2,
  "max": 10
}

七、未来演进路线(Future Evolution)

阶段技术重点描述
v3.0 (GA)AI Assisted Deploy自动优化构建配置、智能回滚预测
v3.1Edge BuildWebAssembly Runner,边缘节点执行
v3.2ZeroOps自动伸缩 + 自愈架构
v4.0Universal Build Cloud跨平台构建云,实现“无处不在的部署”

八、总结(Conclusion)

DeployLite 不仅是一个 CI/CD 平台,更是未来软件交付的新基座。
通过“轻量核心 + 可扩展架构 + 策略安全 + 智能决策”的组合,
它让部署不再是一场复杂的运维行为,而成为开发者生态的自愈循环系统

“在 DeployLite 的世界里,代码不只是被构建,而是被持续理解、保护与进化。”

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页