轻量化、极致性能、稳定、可扩展的前后端分离项目
基于 Rust + SolidJS 的现代化开发范式,支持从单服务器到多服务器的完整DevOps自动化部署。
- 后端: Rust + FMOD v7架构(Function-first设计、静态分发+泛型)
- 前端: SolidJS + Web v7架构(切片独立性、Signal-first响应式设计)
- DevOps: Podman + GitHub Actions(轻量化容器、自动化部署)
- 容器镜像: 后端15MB,前端8MB(压缩率90%+)
- 资源占用: 总内存<1GB,适合轻量级服务器
- 部署速度: 从代码提交到生产部署<45秒
- 启动时间: 冷启动<10秒,热启动<3秒
- 零停机部署: 滚动更新,服务不中断
- 自动故障恢复: 健康检查+自动重启
- 完整监控: 实时状态监控和告警
- 数据安全: 自动备份和恢复机制
V7项目采用分层混合部署架构,平衡性能、复杂度和可维护性:
🏭 生产环境架构(推荐):
┌─────────────────────────────────────────────────────────┐
│ 云服务器 │
│ ┌─────────────────┐ ┌─────────────────┐ ┌──────────┐ │
│ │ Web (容器) │ │ Backend (容器) │ │Analytics │ │
│ │ nginx:8080 │ │ gRPC:50053 │ │(systemd) │ │
│ │ │ │ HTTP:3000 │ │ :50051 │ │
│ └─────────────────┘ └─────────────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────┘
架构优势:
- ✅ Web+Backend容器化:标准化部署,环境一致性
- ✅ Analytics systemd部署:极致性能,计算密集型友好
- ✅ 简化复杂度:避免Rust+Python混合容器化难题
- ✅ 灵活扩展:Analytics可独立扩展到专用计算服务器
1️⃣ Analytics Engine → 2️⃣ Backend → 3️⃣ Web
# 混合架构部署(推荐生产环境)
./scripts/deploy-v7.sh --analytics-systemd --backend-container --web-container
# 分布式部署(企业级)
./scripts/deploy-v7.sh --analytics-remote <ANALYTICS_SERVER_IP> --backend-container --web-container
Step 1: Analytics Engine (systemd)
cd analytics-engine
sudo ./scripts/setup-user.sh # 创建专用用户
./scripts/build.sh # 构建二进制
sudo -u analytics ./scripts/deploy.sh # 部署systemd服务
# 验证服务
systemctl status analytics-engine
curl http://localhost:50051/health
Step 2: Backend + Web (容器)
# 设置Analytics Engine连接地址
export ANALYTICS_ENGINE_ADDR="http://localhost:50051"
# 启动Backend和Web容器
podman-compose up -d backend web
# 验证服务
curl http://localhost:3000/health # Backend HTTP
curl http://localhost:8080/health # Web
# 终端1: 启动Analytics Engine
cd analytics-engine && ./scripts/run.sh
# 终端2: 启动Backend
cd backend && cargo run
# 终端3: 启动Web开发服务器
cd web && npm run dev
# Analytics Engine: 本地运行
cd analytics-engine && ./scripts/run.sh &
# Backend + Web: 容器运行
export ANALYTICS_ENGINE_ADDR="http://host.containers.internal:50051"
podman-compose up -d backend web
模式 | Analytics | Backend | Web | 适用场景 | 复杂度 |
---|---|---|---|---|---|
混合架构 | systemd | 容器 | 容器 | 🏭 生产环境 | ⭐⭐ |
完全本地 | 本地 | 本地 | 本地 | 🛠️ 开发环境 | ⭐ |
分布式 | 远程systemd | 容器 | 容器 | 🏢 企业级 | ⭐⭐⭐ |
基于实际部署经验:
- ❌ 构建复杂:Rust+Python混合容器化困难,600MB镜像体积
- ❌ 性能损失:计算密集型服务,容器虚拟化开销明显
- ❌ 运维复杂:systemd已经足够稳定,容器化增加不必要复杂度
- ✅ systemd优势:10MB静态二进制,3-5ms启动,原生性能
v7/
├── backend/ # Rust后端 (FMOD v7架构)
│ ├── src/slices/ # 业务切片
│ │ └── mvp_crud/ # CRUD示例切片
│ ├── src/infra/ # 基础设施层
│ └── Dockerfile # 容器构建文件
├── web/ # SolidJS前端 (Web v7架构)
│ ├── src/slices/ # 前端切片
│ │ └── mvp_crud/ # CRUD示例切片
│ ├── shared/ # 共享基础设施
│ └── Dockerfile # 容器构建文件
├── docs/ # 文档
│ ├── devops-complete-guide.md # 完整部署指南
│ └── quick-reference.md # 快速参考
├── scripts/ # 自动化脚本
│ ├── deploy.sh # 部署脚本
│ └── monitoring.sh # 监控脚本
├── .github/workflows/ # GitHub Actions
└── podman-compose.yml # 容器编排
- Function-first设计: 函数是基本单元,支持内部调用和HTTP访问
- 静态分发+泛型: 编译时优化,零运行时开销
- Clone trait支持: 类型安全的依赖注入
- 切片独立性: 零编译时依赖,完全独立开发测试
- Signal-first响应式: 细粒度响应式更新
- 四种解耦通信: 事件驱动、契约接口、信号响应、Provider模式
- 轻量化优先: 最小化资源消耗,最大化性能
- 自动化驱动: 零人工干预的完整流程
- 安全第一: 多层安全防护机制
- 语言: Rust 1.75+
- 框架: Axum (高性能异步Web框架)
- 数据库: SQLite (轻量级,支持扩展到PostgreSQL)
- 架构: FMOD v7 (Function-first + 静态分发)
- 语言: TypeScript 5.0+
- 框架: SolidJS (细粒度响应式)
- 构建工具: Vite (极速构建)
- 架构: Web v7 (切片独立 + Signal-first)
- 容器: Podman (无守护进程,更轻量)
- CI/CD: GitHub Actions (免费,强大)
- 镜像仓库: GitHub Container Registry
- 监控: 自研轻量级监控脚本
指标 | 传统方案 | V7方案 | 优化幅度 |
---|---|---|---|
后端镜像大小 | 200MB | 15MB | 92% ↓ |
前端镜像大小 | 50MB | 8MB | 84% ↓ |
内存使用 | 1.5GB | 0.8GB | 47% ↓ |
部署时间 | 5分钟 | 45秒 | 85% ↓ |
冷启动时间 | 30秒 | <10秒 | 67% ↓ |
- API响应时间: 平均<100ms
- 并发支持: 单核支持500+并发连接
- 系统可用性: 99.9%+正常运行时间
- 故障恢复: 自动恢复<30秒
项目包含一个完整的CRUD示例,展示了V7架构的核心特性:
- 后端: 完整的增删改查API,遵循FMOD v7架构
- 前端: 现代化UI界面,支持实时操作反馈
- 访问地址: http://your-server/slice/mvp_crud
- ✅ 创建、读取、更新、删除操作
- ✅ 实时数据同步
- ✅ 响应式UI更新
- ✅ 错误处理和用户反馈
- ✅ 移动端适配
- GitHub Issues - 报告问题和建议
- GitHub Discussions - 技术讨论
如果遇到生产环境问题,请:
- 查看故障排除指南
- 检查服务器日志:
podman logs v7-backend
- 运行健康检查:
./scripts/monitoring.sh
- 后端FMOD v7架构实现
- 前端Web v7架构实现
- MVP CRUD示例切片
- 完整DevOps自动化流程
- 容器化部署方案
- 监控和日志系统
- 多服务器负载均衡
- 数据库集群化
- 高级监控和告警
- 自动扩缩容
- Kubernetes支持
- 多云部署
- AI驱动的运维优化
- 更多业务切片示例
欢迎贡献代码、文档或建议!
- Fork 项目
- 创建功能分支:
git checkout -b feature/amazing-feature
- 提交更改:
git commit -m 'Add amazing feature'
- 推送分支:
git push origin feature/amazing-feature
- 创建 Pull Request
- 后端:遵循 Rust 官方代码规范
- 前端:遵循 TypeScript + SolidJS 最佳实践
- 提交信息:使用 Conventional Commits 格式
本项目采用 MIT License 开源协议。
感谢所有为这个项目做出贡献的开发者和开源社区的支持!
💡 快速提示:
🚀 立即开始: git clone https://github.com/helloCplusplus0/v7.git && cd v7
脚本 | 功能 | 使用场景 | 执行时间 |
---|---|---|---|
./scripts/local-ci-check.sh |
完整本地CI检查 | 推送前验证 | ~3-5分钟 |
./scripts/check-config-consistency.sh |
配置一致性检查 | 配置修改后 | ~30秒 |
./scripts/test-docker-build.sh |
Docker构建测试 | Docker文件修改后 | ~5-10分钟 |
./scripts/verify-ci-consistency.sh |
CI配置验证 | CI配置修改后 | ~1分钟 |
# 1. 代码修改后 - 快速检查
./scripts/check-config-consistency.sh
# 2. 重要修改后 - 完整验证
./scripts/local-ci-check.sh
# 3. Docker相关修改后 - 构建测试
./scripts/test-docker-build.sh
# 4. 推送前 - 最终验证
./scripts/verify-ci-consistency.sh
如果遇到构建问题,请参考: