「DeployLite」功能与特性清单
By Leeting Yan
下面是一份「轻量级打包与部署平台」的功能与特性清单,按从MVP → v1 → v2逐步演进来组织。 内容覆盖:核心场景、功能模块、架构与交互、非功能性指标、安全合规、可运营特性、以及示例清单与配置片段。
目标与定位
- 定位:面向个人开发者与小团队的一站式“从代码到上线”的打包、制品管理与部署平台(自托管/云)。
- 核心目标:极简上手、默认安全、低成本、开箱即用,支持容器与非容器二进制部署。
- 关键指标:10分钟完成首个项目上线;单项目平均构建时长 < 3 分钟;回滚 < 30 秒;月度可用性 ≥ 99.9%。
核心使用者画像
- Indie 开发者 / 小型创业团队:追求低学习成本,能快速把服务跑起来。
- 业务工程师:需要稳定的部署流水线、灰度/回滚能力与可观测性。
- 运维/平台工程师:希望“少即是多”,可按需扩展 runner 与环境。
一、MVP(最小可用集)
目标:一键连接仓库 → 自动打包 → 产出制品 → 部署到目标环境 → 失败可回滚。
1. 项目与源码接入
- GitHub/GitLab/Gitee OAuth 绑定,支持仓库选择、私有仓库。
- 触发方式:手动、Push/Tag、PR 合并、定时(cron)。
- 分支/标签过滤(如
main,release/*,v*.*.*)。
2. 构建与打包
- 语言支持:Go、Node.js、Python、Java等。
- 构建缓存:模块缓存与依赖缓存(Go mod、npm/pip/maven)。
- 制品类型:Docker 镜像、Linux/Windows/macOS 二进制、Zip/Tar 包。
- 版本策略:SemVer 推导(基于标签),默认
git commit短 SHA 添加后缀。 - 基础 SBOM(软件成分清单)生成(如 Syft)。
3. 制品库(Artifacts)
- 内置简易制品存储(本地/对象存储 S3 兼容)。
- 保留策略:按版本/时间/下载次数自动清理。
- 下载权限控制与短链分享。
4. 部署目标
- Kubernetes(通过 Kubeconfig/ClusterRole):Deployment/Service/Ingress。
- Linux 主机(SSH):上传二进制/包,执行
pre/post钩子。 - Docker 主机:拉取镜像,重启容器(compose/原生 docker)。
- 环境模板:dev / staging / prod(变量、密钥隔离)。
5. 配置与密钥
- 项目级环境变量/密钥管理(KV + Secret,支持覆盖层级)。
- 模板化配置渲染(envsubst/简单变量替换)。
6. 部署策略与回滚
- 滚动更新(K8s 原生滚动/容器重启)。
- 一键回滚至上一版本(保留 N 个已知良好版本)。
- 健康检查(HTTP/Command)与超时回退。
7. 可观测性与记录
- 构建/部署日志(流式 + 存档)。
- 事件审计(谁在何时做了什么,项目级审计流)。
- 基本告警:失败通知(Email/Webhook)。
二、v1(扩展与稳定期)
目标:覆盖更多场景、提升平台工程能力与安全性。
1. 流水线与工作流
-
YAML 工作流定义(
pipeline.yaml):- Stages:build → test → package → release → deploy。
- 并行/串行、条件(仅标签/分支)、手动审批 gate。
-
共享 Job 模板(如“构建 Go 服务”、“前端构建 + 静态资源上传”)。
-
产物在流水线阶段间传递(artifact passing)。
示例(简化版)
|
|
2. Runner/Agent
-
轻量 Runner(单二进制),支持:
- 容器执行(Docker/K8s Pod)、沙箱权限。
- 自动注册与心跳、并发配额、队列。
-
弹性扩容:K8s HPA/节点自动伸缩(可选)。
3. 更丰富的部署策略
- 蓝绿发布(Blue/Green):流量切换,健康验证后再清理旧环境。
- 金丝雀(Canary):按比例/权重灰度,失败自动回退。
- 数据库变更管理:迁移前/后钩子与“只读检查”提示。
4. 配置与密钥进阶
- Secret 后端可选:K8s Secrets、HashiCorp Vault、AWS Secrets Manager。
- 配置分层与继承:全局 → 组织 → 项目 → 环境 → 任务。
5. 安全与供应链
- 镜像签名(cosign)与验签 Gate。
- 漏洞扫描(Trivy)与阈值策略阻断。
- SBOM 导出 + 发布页展示。
- 权限模型:组织/项目/环境级 RBAC(Owner/Maintainer/Developer/Viewer)。
6. 可观测与诊断
- 内置指标(Prometheus Exporter):构建时长分布、成功率、队列时间。
- 分布式追踪(可选接 Jaeger/Tempo)。
- Web 终端查看容器/主机最近日志(只读)。
7. 生态与集成
- Webhook/通知:Slack/Feishu/Teams/钉钉。
- Issue/PR 链接(GitHub/GitLab),把部署信息回写到 PR。
- Registry 集成:Docker Hub/GHCR/Harbor;对象存储:S3/MinIO。
三、v2(平台化与策略化)
目标:多租户、策略编排、合规与运营能力。
1. 多租户与计费
- 组织/空间隔离,配额(Runner 数、并发任务、存储上限)。
- 计费维度:构建分钟数、制品存储量、团队成员数。
- 计划套餐:Free / Pro / Team / Enterprise。
2. 策略与合规
- Policy as Code(OPA/Rego):禁止
latest镜像、必须签名等。 - 审批流编排:按环境/风险级别设置多级审批人。
- 合规导出:变更记录、发布单、审计报表(CSV/PDF)。
3. 更多运行时与目标
- Serverless:AWS Lambda / Cloud Run / Fly.io(提供打包适配器)。
- 边缘与静态站点:静态资源分发(CDN 自动刷新)。
- Nomad/Swarm 支持(可选插件)。
4. 高级发布与回滚
- 自动化回滚策略:基于探针失败率、SLO 触发(错误率/延迟)。
- 影子发布(Shadow):镜像真实流量但不对外可见,用于对比。
5. 成本与性能
- 构建缓存分布式共享(基于对象存储层或本地盘 overlay)。
- 任务调度优化:就近镜像缓存、亲和/反亲和规则。
- 成本看板:构建分钟/存储/流量按项目与环境维度细分。
四、界面与交互(必备页面)
- Dashboard:最近构建/部署、失败率、平均时长、待审批。
- Projects:项目列表、状态、触发开关。
- Pipelines:每次流水线详情、日志、重试/跳过、生成的制品。
- Artifacts:版本列表、SBOM/签名、下载与保留策略。
- Environments:dev/staging/prod 概览、变量/密钥、部署历史、回滚按钮。
- Runners:在线/离线、并发数、队列长度、资源占用。
- Settings:组织/成员/RBAC、通知渠道、Registry、Secret 后端。
- Reports:审计、合规导出、计费与配额。
五、非功能性需求(NFR)
- 可用性:控制面 ≥ 99.9%;部署执行端故障时不影响已运行服务。
- 性能:冷启动构建 ≤ 5 分钟(含依赖下载);缓存命中后 ≤ 2 分钟。
- 扩展性:水平扩展 Runner;控制面可多副本。
- 安全:最小权限原则、静态/传输加密(TLS)、密钥不落盘(可选内存钱包)。
- 备份与恢复:元数据每日快照;制品多副本/跨区域(可选)。
- 合规:基础供应链(签名、SBOM、扫描);审计日志 180 天可查。
六、可运营与增长
-
极速上手:引导向导、模板市场(10+ 官方模板)。
-
内置示例:Go Web/Node API/静态站点/K8s 部署示例仓库一键导入。
-
埋点与 KPI:
- TTFD(Time To First Deploy)
- 构建成功率、平均时长
- 回滚次数/MTTR
- 活跃项目数、日活 Runner、模板使用量
-
降本策略:夜间 runner 缩容、按需拉起;制品生命周期策略。
七、与同类差异化(轻量化优势)
- 安装即用:单二进制控制面 + 轻量 Runner;支持 docker-compose 一把梭。
- 兼容容器与非容器发布;SSH 主机零代理部署(可选 agent)。
- 默认内置供应链最小闭环(SBOM+扫描+签名),无需额外搭建。
- 强调“可读可改”的 YAML 工作流与人性化 UI 共存。
八、插件/扩展点(建议)
- Runner 执行器:
exec.docker/exec.k8s/exec.ssh。 - 步骤 Step 插件:
codecov、cache、artifact、notify、helm、kubectl、terraform。 - 策略 Hook:pre-build、pre-deploy、post-deploy;可注册 OPA 校验。
- 事件总线:构建开始/结束、部署开始/成功/失败 → Webhook。
九、数据模型(核心对象)
Organization、Project、Environment、PipelineRun、JobRun、Artifact、Release、Deployment、Runner、Secret、Policy、AuditLog。- 关键关系:Project-Environment(1:N)、PipelineRun-JobRun(1:N)、Release-Deployment(1:N)。
十、示例:K8s 部署模板(变量化)
|
|
十一、MVP 范围边界(Out of Scope)
- 复杂多云成本优化(初期不做),多区域主动容灾(先提供备份)。
- 企业级单点登录(SAML/SCIM)可延后到 v2。
- 高级 A/B 实验平台、流量编排(先支持金丝雀/蓝绿)。
十二、实施路线图(建议)
- S0(2–4 周):仓库连接、基础构建缓存、Docker/K8s/SSH 部署、回滚、日志。
- S1(4–6 周):YAML 工作流、Runner 池、制品库、密钥管理、通知与审计。
- S2(6–8 周):蓝绿/金丝雀、漏洞扫描+SBOM+签名、RBAC、报表。
- S3(8–12 周):多租户、计费、Policy as Code、Serverless/静态站点、成本看板。