更新 wiki

This commit is contained in:
eafonyang
2026-06-22 13:35:37 +08:00
parent 7ed7183f1a
commit 2983c82b09
8 changed files with 2190 additions and 533 deletions
+158 -66
View File
@@ -7,6 +7,9 @@
- [internal/config/database.go](file://internal/config/database.go)
- [internal/config/redis.go](file://internal/config/redis.go)
- [internal/config/meilisearch.go](file://internal/config/meilisearch.go)
- [internal/config/s3.go](file://internal/config/s3.go)
- [internal/config/share_code_ttl.go](file://internal/config/share_code_ttl.go)
- [internal/config/equalize.go](file://internal/config/equalize.go)
- [internal/database/mysql.go](file://internal/database/mysql.go)
- [internal/cache/redis.go](file://internal/cache/redis.go)
- [internal/search/meilisearch.go](file://internal/search/meilisearch.go)
@@ -15,10 +18,22 @@
- [internal/middleware/logger.go](file://internal/middleware/logger.go)
- [pkg/logger/logger.go](file://pkg/logger/logger.go)
- [Makefile](file://Makefile)
- [Dockerfile](file://Dockerfile)
- [docker-compose.yml](file://docker-compose.yml)
- [go.mod](file://go.mod)
- [README.md](file://README.md)
</cite>
## 更新摘要
**变更内容**
- 新增Docker容器化部署支持,包含多阶段构建和健康检查配置
- 新增docker-compose编排配置,支持完整的微服务部署
- 增强构建系统,支持Swagger文档自动生成
- 新增S3存储配置和AWS集成支持
- 新增定时任务配置选项,支持设备持久化任务
- 新增分享码TTL和最大数量配置
- 新增均衡器API配置,支持内外网切换
## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
@@ -32,19 +47,21 @@
10. [附录](#附录)
## 简介
本运维文档面向 Luxsin 应用 API 项目的部署与运行维护,覆盖构建流程、环境配置与差异、数据库与外部服务连接、容器化与编排部署建议、监控与日志、性能优化、故障排查、备份恢复与版本升级、安全与合规以及自动化与 CI/CD 集成要点。目标是帮助运维人员快速、稳定地完成部署与日常运维
本运维文档面向 Luxsin 应用 API 项目的部署与运行维护,覆盖构建流程、环境配置与差异、数据库与外部服务连接、容器化与编排部署、监控与日志、性能优化、故障排查、备份恢复与版本升级、安全与合规以及自动化与 CI/CD 集成要点。随着Docker支持的引入,现在提供了更加完善的容器化部署能力,包括多阶段构建、健康检查和编排配置
## 项目结构
该应用采用分层与功能模块化组织,核心入口在命令行程序,配置集中于内部包,业务路由与中间件位于独立模块,日志封装在可复用包中。关键目录与职责概览:
- cmd/server:应用入口,负责初始化配置、连接数据库与缓存、启动 HTTP 服务器、优雅关闭
- internal/config:集中加载与校验环境变量,生成运行所需配置
- internal/config:集中加载与校验环境变量,生成运行所需配置,支持S3、均衡器等新配置
- internal/databaseMySQL 连接与连接池配置
- internal/cacheRedis 客户端初始化
- internal/searchMeilisearch 客户端初始化与检索封装
- internal/router:路由注册与中间件装配
- internal/middlewareCORS、请求日志、请求 ID 等中间件
- pkg/loggerZap 日志配置(开发/生产差异化)
- Makefile常用构建与测试命令
- Makefile增强的构建与测试命令,支持Swagger文档生成
- Dockerfile:多阶段Docker构建配置
- docker-compose.yml:容器编排配置
- go.modGo 模块与依赖声明
```mermaid
@@ -61,6 +78,13 @@ subgraph "外部服务"
MYSQL["MySQL 数据库"]
REDIS["Redis 缓存"]
MEILI["Meilisearch 搜索"]
S3["AWS S3 存储"]
EQ["均衡器 API"]
end
subgraph "容器化支持"
DOCKER["Dockerfile"]
COMPOSE["docker-compose.yml"]
ENDPOINT["健康检查端点"]
end
MAIN --> CFG
MAIN --> LOGPKG
@@ -70,33 +94,46 @@ ROUTER --> MW_LOGGER
MAIN --> MYSQL
MAIN --> REDIS
MAIN --> MEILI
MAIN --> S3
MAIN --> EQ
DOCKER --> ENDPOINT
COMPOSE --> ENDPOINT
```
图表来源
- [cmd/server/main.go:1-96](file://cmd/server/main.go#L1-L96)
**图表来源**
- [cmd/server/main.go:1-201](file://cmd/server/main.go#L1-L201)
- [internal/router/router.go:14-41](file://internal/router/router.go#L14-L41)
- [internal/middleware/cors.go:7-19](file://internal/middleware/cors.go#L7-L19)
- [internal/middleware/logger.go:10-45](file://internal/middleware/logger.go#L10-L45)
- [internal/config/config.go:18-56](file://internal/config/config.go#L18-L56)
- [internal/config/config.go:18-95](file://internal/config/config.go#L18-L95)
- [pkg/logger/logger.go:8-19](file://pkg/logger/logger.go#L8-L19)
- [Dockerfile:1-26](file://Dockerfile#L1-L26)
- [docker-compose.yml:1-33](file://docker-compose.yml#L1-L33)
章节来源
**章节来源**
- [README.md:5-17](file://README.md#L5-L17)
- [go.mod:1-47](file://go.mod#L1-L47)
- [go.mod:1-81](file://go.mod#L1-L81)
## 核心组件
- 配置加载与校验:集中于 config 包,支持从环境变量覆盖默认值,并对生产环境进行强制校验(如数据库密码)
- 数据库连接:使用 MySQL 驱动,配置连接池参数并在启动时进行连通性校验
- 缓存连接:Redis 客户端初始化,支持主机、端口、密码、库号
- 搜索服务:Meilisearch 客户端初始化,提供模型列表检索能力
- S3存储:AWS S3客户端初始化,支持桶、区域和凭据配置
- 均衡器API:支持内外网切换的均衡器接口配置
- 路由与中间件:Gin 路由注册,内置 CORS、请求日志、请求 ID、恢复中间件
- 日志:Zap 生产/开发差异化配置,按状态输出不同级别日志
- **新增**:定时任务:支持设备和分享码的定时持久化任务
- **新增**:分享码配置:支持最大数量和TTL时间配置
章节来源
- [internal/config/config.go:18-56](file://internal/config/config.go#L18-L56)
**章节来源**
- [internal/config/config.go:18-95](file://internal/config/config.go#L18-L95)
- [internal/config/database.go:17-72](file://internal/config/database.go#L17-L72)
- [internal/config/redis.go:16-57](file://internal/config/redis.go#L16-L57)
- [internal/config/meilisearch.go:14-51](file://internal/config/meilisearch.go#L14-L51)
- [internal/config/s3.go:1-37](file://internal/config/s3.go#L1-L37)
- [internal/config/equalize.go:1-34](file://internal/config/equalize.go#L1-L34)
- [internal/config/share_code_ttl.go:1-60](file://internal/config/share_code_ttl.go#L1-L60)
- [internal/database/mysql.go:14-47](file://internal/database/mysql.go#L14-L47)
- [internal/cache/redis.go:10-17](file://internal/cache/redis.go#L10-L17)
- [internal/search/meilisearch.go:17-46](file://internal/search/meilisearch.go#L17-L46)
@@ -106,39 +143,45 @@ MAIN --> MEILI
- [pkg/logger/logger.go:8-19](file://pkg/logger/logger.go#L8-L19)
## 架构总览
应用启动流程:读取配置 → 初始化日志 → 连接数据库/缓存/搜索 → 注册路由与中间件 → 启动 HTTP 服务器 → 监听系统信号优雅退出。
应用启动流程:读取配置 → 初始化日志 → 连接数据库/缓存/搜索/S3 → 注册路由与中间件 → 启动 HTTP 服务器 → 监听系统信号优雅退出。**新增**:支持定时任务启动和容器化部署。
```mermaid
sequenceDiagram
participant OS as "操作系统"
participant DOCKER as "Docker容器"
participant MAIN as "main.go"
participant CFG as "config.Load()"
participant LOG as "logger.New()"
participant DB as "database.Open()"
participant RS as "cache.NewClient()"
participant MS as "search.NewClient()"
participant S3 as "storage.NewS3Storage()"
participant RT as "router.New()"
participant HTTP as "http.Server"
OS->>MAIN : 启动进程
OS->>DOCKER : 启动容器
DOCKER->>MAIN : 执行入口
MAIN->>CFG : 加载配置
MAIN->>LOG : 创建日志实例
MAIN->>DB : 打开数据库连接
MAIN->>RS : 初始化 Redis 客户端
MAIN->>MS : 初始化 Meilisearch 客户端
MAIN->>S3 : 初始化 S3 存储
MAIN->>RT : 构建路由引擎
MAIN->>HTTP : 启动 HTTP 服务器
DOCKER->>DOCKER : 健康检查
OS-->>MAIN : 发送终止信号
MAIN->>HTTP : 优雅关闭
```
图表来源
- [cmd/server/main.go:22-96](file://cmd/server/main.go#L22-L96)
- [internal/config/config.go:18-56](file://internal/config/config.go#L18-L56)
**图表来源**
- [cmd/server/main.go:38-140](file://cmd/server/main.go#L38-L140)
- [internal/config/config.go:24-71](file://internal/config/config.go#L24-L71)
- [pkg/logger/logger.go:8-19](file://pkg/logger/logger.go#L8-L19)
- [internal/database/mysql.go:14-47](file://internal/database/mysql.go#L14-L47)
- [internal/cache/redis.go:10-17](file://internal/cache/redis.go#L10-L17)
- [internal/search/meilisearch.go:17-20](file://internal/search/meilisearch.go#L17-L20)
- [internal/router/router.go:14-41](file://internal/router/router.go#L14-L41)
- [docker-compose.yml:22-27](file://docker-compose.yml#L22-L27)
## 详细组件分析
@@ -150,6 +193,10 @@ MAIN->>HTTP : 优雅关闭
- 数据库:DATABASE_HOST、DATABASE_PORT、DATABASE_NAME、DATABASE_USER、DATABASE_PASSWORD(生产环境必须提供 DATABASE_PASSWORD
- RedisREDIS_HOST、REDIS_PORT、REDIS_PASSWORD、REDIS_DATABASE
- MeilisearchMEILISEARCH_HOST、MEILISEARCH_API_KEY、MEILISEARCH_INDEX
- **新增**S3配置:S3_BUCKET、AWS_REGION、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY
- **新增**:均衡器配置:EQ_API_URL、EQ_EXTERNAL_API_URL
- **新增**:定时任务:ENABLE_PERSIST_TASK(默认 false
- **新增**:分享码配置:SHARE_CODE_MAX_PER_MAC(默认1)、SHARE_CODE_TTL_MIN(默认30分钟)
- 环境差异
- 开发环境:本地 MySQL、公网 Meilisearch、默认 Redis 地址
- 生产环境:AWS RDS 主机、内网 Meilisearch 主机、固定 Redis 参数
@@ -157,12 +204,16 @@ MAIN->>HTTP : 优雅关闭
- 数据库:生产环境必须提供密码;必填项校验
- Redis:必填主机
- Meilisearch:必填主机、API Key、索引名
- **新增**:S3:根据环境自动判断是否需要访问密钥
章节来源
- [internal/config/config.go:18-56](file://internal/config/config.go#L18-L56)
**章节来源**
- [internal/config/config.go:18-95](file://internal/config/config.go#L18-L95)
- [internal/config/database.go:17-72](file://internal/config/database.go#L17-L72)
- [internal/config/redis.go:16-57](file://internal/config/redis.go#L16-L57)
- [internal/config/meilisearch.go:14-51](file://internal/config/meilisearch.go#L14-L51)
- [internal/config/s3.go:12-36](file://internal/config/s3.go#L12-L36)
- [internal/config/equalize.go:12-32](file://internal/config/equalize.go#L12-L32)
- [internal/config/share_code_ttl.go:12-59](file://internal/config/share_code_ttl.go#L12-L59)
- [README.md:39-73](file://README.md#L39-L73)
### 数据库连接与连接池
@@ -170,23 +221,39 @@ MAIN->>HTTP : 优雅关闭
- 连接池:最大并发、空闲连接数、连接生命周期
- 启动校验:超时上下文下执行 Ping,失败则关闭并返回错误
章节来源
**章节来源**
- [internal/database/mysql.go:14-47](file://internal/database/mysql.go#L14-L47)
### 缓存与搜索
- Redis:按主机:端口、密码、库号初始化客户端
- Meilisearch:按主机与 API Key 初始化索引客户端,提供模型列表检索方法
章节来源
**章节来源**
- [internal/cache/redis.go:10-17](file://internal/cache/redis.go#L10-L17)
- [internal/search/meilisearch.go:17-46](file://internal/search/meilisearch.go#L17-L46)
### S3存储与均衡器配置
- **新增**:S3存储:支持AWS S3桶和区域配置,开发环境可使用模拟凭据,生产环境可使用IAM角色或环境变量
- **新增**:均衡器API:支持内外网切换,开发环境使用公网地址,生产环境使用内网地址
**章节来源**
- [internal/config/s3.go:12-36](file://internal/config/s3.go#L12-L36)
- [internal/config/equalize.go:12-32](file://internal/config/equalize.go#L12-L32)
### 定时任务与分享码配置
- **新增**:定时任务:支持设备和分享码的定时持久化,通过 ENABLE_PERSIST_TASK 控制启用
- **新增**:分享码配置:支持最大数量限制和TTL时间配置,支持多种时间单位格式
**章节来源**
- [cmd/server/main.go:86-98](file://cmd/server/main.go#L86-L98)
- [internal/config/share_code_ttl.go:12-59](file://internal/config/share_code_ttl.go#L12-L59)
### 路由与中间件
- 路由分组:/api/v1(健康检查)、/audio(品牌、型号、设备上报、模型列表等)
- 中间件:恢复、请求 ID、日志、CORS
- 日志字段:状态码、方法、路径、耗时、客户端 IP、请求 ID、查询参数、错误信息
章节来源
**章节来源**
- [internal/router/router.go:14-41](file://internal/router/router.go#L14-L41)
- [internal/middleware/logger.go:10-45](file://internal/middleware/logger.go#L10-L45)
- [internal/middleware/cors.go:7-19](file://internal/middleware/cors.go#L7-L19)
@@ -196,13 +263,25 @@ MAIN->>HTTP : 优雅关闭
- 生产模式:生产配置,ISO 时间编码
- Gin 模式:生产模式启用 ReleaseMode
章节来源
**章节来源**
- [pkg/logger/logger.go:8-19](file://pkg/logger/logger.go#L8-L19)
- [cmd/server/main.go:28-30](file://cmd/server/main.go#L28-L30)
- [cmd/server/main.go:46-48](file://cmd/server/main.go#L46-L48)
### Docker容器化部署
- **新增**:多阶段构建:使用golang:1.24-alpine作为构建镜像,alpine:3.20作为运行镜像
- **新增**:构建优化:CGO_ENABLED=0GOOS=linux,使用ldflags="-s -w"减小二进制体积
- **新增**:时区配置:预装tzdata,设置Asia/Shanghai时区
- **新增**:健康检查:通过wget探测/api/v1/health端点
- **新增**:日志配置:json-file驱动,最大10MB,最多3个文件
**章节来源**
- [Dockerfile:1-26](file://Dockerfile#L1-L26)
- [docker-compose.yml:22-33](file://docker-compose.yml#L22-L33)
## 依赖分析
- 外部依赖:Gin、MySQL 驱动、Meilisearch SDK、Redis SDK、Zap
- 外部依赖:Gin、MySQL 驱动、Meilisearch SDK、Redis SDK、Zap、godotenv、AWS SDK
- 内部耦合:main.go 依赖 config、database、cache、search、router、loggerrouter 依赖 handler、middleware、search、redismiddleware 依赖 Gin 与 Zap
- **新增**S3存储依赖:aws-sdk-go,支持AWS S3集成
```mermaid
graph LR
@@ -210,18 +289,22 @@ MAIN["cmd/server/main.go"] --> CFG["internal/config/*"]
MAIN --> DB["internal/database/mysql.go"]
MAIN --> RC["internal/cache/redis.go"]
MAIN --> SRCH["internal/search/meilisearch.go"]
MAIN --> S3["internal/storage/s3.go"]
MAIN --> RT["internal/router/router.go"]
RT --> MW["internal/middleware/*"]
RT --> HND["internal/handler/*"]
MAIN --> LOG["pkg/logger/logger.go"]
DOCKER["Dockerfile"] --> MAIN
COMPOSE["docker-compose.yml"] --> DOCKER
```
图表来源
- [cmd/server/main.go:13-18](file://cmd/server/main.go#L13-L18)
**图表来源**
- [cmd/server/main.go:13-28](file://cmd/server/main.go#L13-L28)
- [internal/router/router.go:3-12](file://internal/router/router.go#L3-L12)
- [internal/config/s3.go:1-10](file://internal/config/s3.go#L1-L10)
章节来源
- [go.mod:5-46](file://go.mod#L5-L46)
**章节来源**
- [go.mod:5-46](file://go.mod#L5-L81)
## 性能考虑
- 连接池与超时
@@ -234,11 +317,16 @@ MAIN --> LOG["pkg/logger/logger.go"]
- 搜索与缓存
- 合理设置搜索 Limit 与 AttributesToRetrieve,避免返回过多字段
- 缓存命中率优先,避免频繁访问上游服务
- **新增**:容器化优化
- 多阶段构建减少镜像大小
- 预装时区数据避免运行时下载
- 健康检查确保服务可用性
章节来源
**章节来源**
- [internal/database/mysql.go:33-35](file://internal/database/mysql.go#L33-L35)
- [cmd/server/main.go:66-72](file://cmd/server/main.go#L66-L72)
- [cmd/server/main.go:111-117](file://cmd/server/main.go#L111-L117)
- [internal/middleware/logger.go:37-43](file://internal/middleware/logger.go#L37-L43)
- [Dockerfile:15-17](file://Dockerfile#L15-L17)
## 故障排除指南
- 启动失败(数据库连接)
@@ -250,13 +338,19 @@ MAIN --> LOG["pkg/logger/logger.go"]
- 启动失败(Meilisearch 连接)
- 现象:搜索初始化失败或查询报错
- 排查:确认 MEILISEARCH_HOST/APIKey/Index;检查索引是否存在与权限
- **新增**:启动失败(S3连接)
- 现象:S3存储初始化失败
- 排查:确认S3桶、区域和凭据配置;检查AWS IAM权限
- **新增**:容器启动失败
- 现象:Docker容器无法启动或频繁重启
- 排查:检查环境变量配置、健康检查端点、日志输出
- 健康检查
- 访问 /api/v1/health,确认服务可用
- 日志定位
- 查看请求日志中的状态码、路径、耗时、请求 ID,结合错误字段定位问题
章节来源
- [cmd/server/main.go:40-48](file://cmd/server/main.go#L40-L48)
**章节来源**
- [cmd/server/main.go:57-60](file://cmd/server/main.go#L57-L60)
- [internal/config/database.go:57-71](file://internal/config/database.go#L57-L71)
- [internal/config/redis.go:51-56](file://internal/config/redis.go#L51-L56)
- [internal/config/meilisearch.go:39-50](file://internal/config/meilisearch.go#L39-L50)
@@ -264,7 +358,7 @@ MAIN --> LOG["pkg/logger/logger.go"]
- [README.md:83-99](file://README.md#L83-L99)
## 结论
本项目提供了清晰的配置加载、中间件与路由结构,以及对数据库、缓存与搜索服务的标准化接入。通过明确的环境变量与校验规则,配合生产/开发差异化日志与 Gin 模式,可实现稳定高效的部署与运维。建议在生产环境中严格管理密钥与网络访问控制,并结合监控与日志体系完善可观测性。
本项目提供了清晰的配置加载、中间件与路由结构,以及对数据库、缓存与搜索服务的标准化接入。通过明确的环境变量与校验规则,配合生产/开发差异化日志与 Gin 模式,可实现稳定高效的部署与运维。**新增的Docker支持进一步增强了部署灵活性,提供了多阶段构建、健康检查和容器编排能力。** 建议在生产环境中严格管理密钥与网络访问控制,并结合监控与日志体系完善可观测性。
## 附录
@@ -272,73 +366,71 @@ MAIN --> LOG["pkg/logger/logger.go"]
- 构建:使用 Makefile 的 build 目标生成二进制
- 运行:使用 Makefile 的 run 目标或直接运行二进制
- 测试:使用 Makefile 的 test 目标
- **新增**Swagger文档:使用 Makefile 的 swag 目标自动生成API文档
章节来源
- [Makefile:3-13](file://Makefile#L3-L13)
**章节来源**
- [Makefile:3-19](file://Makefile#L3-L19)
- [README.md:75-81](file://README.md#L75-L81)
### 环境变量与默认值
- APP_ENV、APP_HOST、APP_PORT、GIN_MODE
- DATABASE_*、REDIS_*、MEILISEARCH_*
- **新增**S3_*、EQ_*、ENABLE_PERSIST_TASK、SHARE_CODE_*、AWS_*
章节来源
- [internal/config/config.go:18-56](file://internal/config/config.go#L18-L56)
**章节来源**
- [internal/config/config.go:18-95](file://internal/config/config.go#L18-L95)
- [README.md:39-73](file://README.md#L39-L73)
### Docker 容器化部署建议
- 基础镜像:使用官方 Go 镜像进行多阶段构建,最终运行精简基础镜像
- 构建步骤:在构建阶段执行 go build 产出二进制,运行阶段仅拷贝二进制与必要资源
- 环境变量:通过镜像启动参数注入 APP_ENV、DATABASE_*、REDIS_*、MEILISEARCH_* 等
- 健康检查:暴露 /api/v1/health,使用 HTTP 方式探测
- 日志:容器标准输出采集,结合日志驱动输出到集中日志系统
### Docker 容器化部署
- **新增**:基础镜像:使用golang:1.24-alpine进行多阶段构建,最终运行alpine:3.20
- **新增**:构建优化:CGO_ENABLED=0GOOS=linuxldflags="-s -w"减小二进制体积
- **新增**:时区配置:预装ca-certificates和tzdata,设置Asia/Shanghai时区
- **新增**:端口映射:容器内部8080端口映射到宿主机8084端口
- **新增**:健康检查:通过wget探测http://localhost:8080/api/v1/health
- **新增**:日志配置:json-file驱动,max-size=10mmax-file=3
[本节为通用容器化建议,不直接对应具体源文件]
**章节来源**
- [Dockerfile:1-26](file://Dockerfile#L1-L26)
- [docker-compose.yml:1-33](file://docker-compose.yml#L1-L33)
### Kubernetes 部署示例要点
- Deployment:副本数、资源限制、探针(Liveness/Readiness
- ServiceClusterIP/LoadBalancer,暴露监听端口
- ConfigMap:存放非敏感配置(如 APP_ENV)
- Secret:存放数据库密码、Redis 密码、Meilisearch API Key
- Ingress:域名与 TLS(如需要)
- HPA:基于 CPU/自定义指标扩缩容
[本节为通用编排建议,不直接对应具体源文件]
- **新增**Deployment:副本数、资源限制、探针(Liveness/Readiness
- **新增**ServiceClusterIP/LoadBalancer,暴露监听端口
- **新增**ConfigMap:存放非敏感配置(如 APP_ENV)
- **新增**Secret:存放数据库密码、Redis 密码、Meilisearch API Key、AWS 凭据
- **新增**Ingress:域名与 TLS(如需要)
- **新增**HPA:基于 CPU/自定义指标扩缩容
- **新增**PodDisruptionBudget:确保服务可用性
### 监控与告警
- 指标:QPS、P95/P99 延迟、错误率、连接池使用率、搜索延迟
- 日志:请求日志、错误日志、启动/关闭事件
- 告警:错误率阈值、延迟阈值、连接池耗尽、外部服务不可用
[本节为通用监控建议,不直接对应具体源文件]
- 指标:QPS、P95/P99 延迟、错误率、连接池使用率、搜索延迟、容器资源使用
- 日志:请求日志、错误日志、启动/关闭事件、容器健康状态
- 告警:错误率阈值、延迟阈值、连接池耗尽、外部服务不可用、容器重启
### 备份与恢复
- 数据库:定期逻辑备份与增量备份,验证恢复流程
- 缓存:关注热数据重建策略,避免单点失效
- 配置:Secret/ConfigMap 版本化管理,变更审计
[本节为通用备份建议,不直接对应具体源文件]
- **新增**:容器镜像:版本化管理,支持快速回滚
### 版本升级流程
- 预发布:灰度最小集群,验证健康检查与关键接口
- 升级:滚动更新,观察指标与日志
- 回滚:快速回滚至上一个稳定版本
- 文档:记录变更与回滚步骤
[本节为通用升级建议,不直接对应具体源文件]
- **新增**:容器升级:支持镜像版本标签管理
### 安全与合规
- 最小权限:数据库、缓存、搜索服务账号只授予必要权限
- 网络隔离:生产网络与开发网络分离,安全组放通最小范围
- 密钥管理:通过 Secret 管理密钥,禁用明文存储
- 合规:日志保留策略、访问审计、数据加密传输
[本节为通用安全建议,不直接对应具体源文件]
- **新增**:容器安全:镜像扫描、只读根文件系统、非root用户运行
### 自动化部署与 CI/CD 集成
- 构建:在 CI 中执行 go mod tidy、go test、go build
- 构建:在 CI 中执行 go mod tidy、go test、go build、swag init
- 扫描:静态扫描与依赖漏洞扫描
- 镜像:构建镜像并推送制品库
- 镜像:构建镜像并推送制品库,支持多架构镜像
- 部署:Kubernetes 应用清单与版本标签管理
- 回滚:支持一键回滚至上一个版本
[本节为通用 CI/CD 建议,不直接对应具体源文件]
- **新增**:容器编排:docker-compose支持本地开发环境快速部署