Skip to content

Mingrui-Li/cloud-management-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

云资源管理平台

Python FastAPI React License

一个功能完整的云资源管理平台,支持通算和智算资源的纳管、分配、回收,以及完整的用户权限体系、计量计费、SSH访问和统计报表功能。

✨ 功能特性

核心功能

  • 资源管理:支持通算和智算两种资源类型的全生命周期管理

    • 资源创建、分配、回收
    • 资源状态跟踪(待激活、运行中、已回收)
    • 资源过期管理
  • 用户体系:三层角色权限模型

    • 平台管理员:管理所有用户和资源,分配资源给租户管理员
    • 租户管理员:向平台管理员申请资源,管理租户下的用户和资源分配
    • 租户用户:向租户管理员申请使用资源
  • 申请审批:完整的工单审批流程

    • 租户管理员向平台管理员申请资源
    • 租户用户向租户管理员申请资源
    • 支持申请状态的审批和拒绝
  • SSH访问:安全的资源访问管理

    • 临时SSH会话令牌生成
    • 可配置会话有效期
    • 自动清理过期会话
  • 计量计费:灵活的计费模式

    • 支持按卡时、CPU时、GPU时等多种计量方式
    • 账单生成和查询
    • 用量记录追踪
  • 统计报表:全面的数据统计

    • 容量统计(按租户)
    • 费用统计(按租户)
    • 会话统计

技术特点

  • 🎨 现代化UI:基于 Ant Design 的美观界面
  • 🚀 高性能:FastAPI 异步框架,响应迅速
  • 📱 响应式设计:适配不同屏幕尺寸
  • 🔒 安全可靠:JWT认证,权限控制
  • 📊 实时数据:动态更新,实时统计

🏗️ 技术架构

后端技术栈

  • FastAPI - 现代化Python Web框架
  • Pydantic - 数据验证和序列化
  • Python 3.8+ - 编程语言

前端技术栈

  • React 18 - UI框架
  • TypeScript - 类型安全
  • Ant Design - UI组件库
  • Vite - 构建工具
  • React Router - 路由管理
  • Axios - HTTP客户端

📦 项目结构

cloud-management-platform/
├── app/                    # 后端应用
│   ├── core/              # 核心配置
│   ├── routes/            # API路由
│   │   ├── auth.py        # 认证相关
│   │   ├── tenants.py     # 租户管理
│   │   ├── resources.py   # 资源管理
│   │   ├── requests.py    # 申请审批
│   │   ├── billing.py     # 计费管理
│   │   ├── reports.py     # 统计报表
│   │   └── ssh.py         # SSH访问
│   ├── schemas/           # 数据模型
│   ├── services/          # 业务逻辑
│   └── main.py            # 应用入口
├── frontend/              # 前端应用
│   ├── src/
│   │   ├── api/           # API客户端
│   │   ├── components/    # 通用组件
│   │   ├── pages/         # 页面组件
│   │   ├── App.tsx        # 应用入口
│   │   └── main.tsx       # 入口文件
│   ├── package.json
│   └── vite.config.ts
├── requirements.txt       # Python依赖
└── README.md             # 项目文档

🚀 快速开始

环境要求

  • Python 3.8+
  • Node.js 16+
  • npm 或 yarn

后端启动

  1. 安装依赖
pip install -r requirements.txt
  1. 启动服务
uvicorn app.main:app --reload

后端服务将在 http://127.0.0.1:8000 启动

  1. 访问API文档

打开浏览器访问 http://127.0.0.1:8000/docs 查看Swagger API文档

前端启动

  1. 进入前端目录
cd frontend
  1. 安装依赖
npm install
#
yarn install
  1. 启动开发服务器
npm run dev
#
yarn dev

前端应用将在 http://localhost:3000 启动

👥 默认账号

系统启动时会自动创建演示账号:

用户名 角色 权限说明
platform-admin 平台管理员 管理所有用户、租户和资源
tenant-admin 租户管理员 管理租户内的用户和资源分配
tenant-user 租户用户 申请和使用资源

注:演示环境下密码验证已简化,仅需输入用户名即可登录

📖 使用指南

1. 登录系统

访问前端地址 http://localhost:3000,使用上述账号登录。

2. 资源管理

  • 平台管理员:可以创建资源并分配给任意租户
  • 租户管理员:可以查看和管理本租户的资源
  • 租户用户:可以查看可用的资源

3. 申请审批

  • 租户管理员:向平台管理员提交资源申请
  • 租户用户:向租户管理员提交资源申请
  • 相应管理员可以在"申请审批"页面审批或拒绝申请

4. SSH访问

  • 选择已激活的资源
  • 创建SSH会话,设置有效期
  • 获取临时访问令牌
  • 使用令牌连接资源

5. 查看报表

在"统计报表"页面查看:

  • 各租户的资源容量统计
  • 各租户的费用统计
  • SSH会话统计信息

🔧 配置说明

后端配置

app/core/config.py 中修改配置:

class Settings(BaseModel):
    app_name: str = "Cloud Management Platform"
    version: str = "0.1.0"
    enable_demo_data: bool = True  # 是否启用演示数据

前端配置

frontend/vite.config.ts 中修改API代理:

proxy: {
  '/api': {
    target: 'http://localhost:8000',  // 后端地址
    changeOrigin: true,
    rewrite: (path) => path.replace(/^\/api/, '')
  }
}

📡 API接口

认证相关

  • POST /auth/login - 用户登录
  • GET /auth/me - 获取当前用户信息
  • GET /auth/users - 获取用户列表
  • POST /auth/users - 创建用户

租户管理

  • GET /tenants - 获取租户列表
  • POST /tenants - 创建租户
  • PATCH /tenants/{id}/quota - 更新租户配额

资源管理

  • GET /resources - 获取资源列表
  • POST /resources - 创建资源
  • PATCH /resources/{id}/status - 更新资源状态
  • DELETE /resources/{id} - 删除资源

申请审批

  • GET /requests - 获取申请列表
  • POST /requests - 提交申请
  • POST /requests/{id}/approve - 审批通过
  • POST /requests/{id}/reject - 拒绝申请

计费管理

  • GET /billing/usage - 获取用量记录
  • POST /billing/usage - 上报用量
  • GET /billing/bills - 获取账单列表

统计报表

  • GET /reports/capacity - 容量统计
  • GET /reports/cost - 费用统计
  • GET /reports/sessions - 会话统计

SSH访问

  • GET /ssh/sessions - 获取SSH会话列表
  • POST /ssh/sessions - 创建SSH会话

详细API文档请访问 http://127.0.0.1:8000/docs

🧪 开发说明

代码规范

  • 后端使用 Python 类型提示
  • 前端使用 TypeScript 严格模式
  • 遵循 PEP 8 和 ESLint 规范

数据存储

当前版本使用内存存储,适合演示和开发。生产环境建议:

  • 使用 PostgreSQL 作为主数据库
  • 使用 Redis 做缓存和会话管理
  • 使用对象存储保存审计日志

🔒 安全建议

  1. 生产环境配置

    • 启用HTTPS
    • 使用强密码策略
    • 实现完整的JWT认证
    • 添加请求限流
  2. 权限控制

    • 完善RBAC权限模型
    • 实现细粒度权限控制
    • 添加操作审计日志
  3. 数据安全

    • 数据库加密
    • 敏感信息脱敏
    • 定期数据备份

🚧 待办事项

  • 集成真实数据库(PostgreSQL)
  • 实现完整的JWT认证机制
  • 添加资源使用监控
  • 实现自动资源回收
  • 添加邮件/短信通知
  • 完善单元测试和集成测试
  • 添加多租户数据隔离
  • 实现资源配额限制

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

📞 联系方式

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发送邮件

🙏 致谢

感谢以下开源项目:


⭐ 如果这个项目对你有帮助,请给个 Star!

About

A fully functional cloud resource management platform that supports the management, allocation, and recycling of general computing and intelligent computing resources, as well as a complete user permission system, metering and billing, SSH access, and statistical reporting functions

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors