[T.3] 团队项目:团队基础设施及 DevOps 准备
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 软件工程 |
| 这个作业的要求在哪里 | [T.3] 团队基础设施及 DevOps 准备 |
| 我在这个课程的目标是 | 掌握软件工程的核心理论,协作完成软件项目开发 |
| 这个作业在哪个具体方面帮助我实现目标 | 探讨技术层面基础,包括云服务器,协作平台,代码仓库管理等等 |
一、服务器
| 类别 | 配置 | 说明 |
|---|---|---|
| 厂商 | 阿里云 (Alibaba Cloud) | 稳定性高:国内领先的云服务商,拥有成熟的生态和稳定的基础设施支持。 |
| 规格 | 云服务器 ECS (经济型 e) | 独享资源:相比轻量应用服务器,ECS 实例提供更稳定的计算性能,适合长期持续的开发与测试。 |
| 地域 | 华北 2 (北京) | 低时延:部署在北京,能够为目标年轻群体提供更快的响应速度 |
| 镜像 | Ubuntu Server 24.04 LTS | 兼容性强:最支持 Vue 3、Python Flask 框架以及各种自动化部署工具。 |
| 存储 | 系统盘 (40GB ESSD Entry) | 高速读写:ESSD 云盘提供稳定的 IO 性能,足以支持心情日记记录、用户画像数据及历史复盘记录的存储。 |
| 带宽 | 固定带宽 1Mbps | 成本可控:采用固定带宽模式,在 300 元免费额度内可实现长期稳定的公网访问,满足初始阶段 API 调用需求。 |
| CPU / 内存 | 2 核 (vCPU) / 4GiB | 运行流畅:4GiB 内存能确保在运行 Flask 后端、PostgreSQL 数据库及 AI 情绪分析算法时拥有充足的缓冲空间。 |
| CPU 型号 | 随机物理型号,由阿里云分配 |
最终选择按量计费的模式,便于在非开发与维护时间段关闭服务器,节省花费
二、团队沟通、协作与代码管理
团队沟通
主要使用微信同步进度、分配任务等
- 即时通讯:使用微信建立项目群,用于日常进度同步、任务分配、问题讨论及重要提醒。
- 会议沟通:每周线下约研讨室进行周会,同步整体进展、解决阻塞问题并规划下一阶段任务;紧急情况随时发起线上讨论。
代码管理
使用github进行代码管理与同步
仓库结构
- 主仓库:
/ProjectNamefrontend/:Vue 3 项目backend/:Node.js 项目docs/:技术文档、API 文档
分支策略
| 分支 | 用途 | 保护规则 |
|---|---|---|
main |
生产环境代码,始终可部署 | 仅通过 Pull Request 合并! |
develop |
测试分支,用于预发布环境 | PR 合并需通过 CI 检查 |
feature/ |
新功能/bug修复 | 从 develop 拉出,完成后 PR 到 develop |
hotfix/ |
紧急修复 | 从 main 拉出,修复后同时 PR 到 main 和 develop |
提交规范
格式:<type>(<scope>): <subject>
代码评审要求
- 每个 PR 必须由至少一名 非作者本人 的成员approve。
- 前端 PR 需经程嘉烨或刘小莉审核;
- 后端 PR 需经王宇博或吴峥审核。
- 评审重点:代码风格、逻辑正确性、安全漏洞、性能影响。
- 合并前需通过CI自动检查!
三、CI/CD触发测试
yaml配置文件
name: Nexus CI/CD Pipeline
on:
push:
branches: [ "main" ] # 仅在 main 分支有代码推送时触发
jobs:
# 后端环境检查阶段
test-backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
cd backend
pip install -r requirements.txt
# 前端构建阶段
build-frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
- name: Build Vue App
run: |
cd frontend
npm install
npm run build
# 自动化部署阶段
deploy:
needs: [test-backend, build-frontend] # 必须前两步成功才执行部署
runs-on: ubuntu-latest
steps:
- name: Deploy to Aliyun ECS
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.ALIYUN_SERVER_IP }}
username: root
key: ${{ secrets.ALIYUN_SSH_KEY }}
script: |
# 进入项目目录
cd ${{ secrets.REMOTE_TARGET }}
# 拉取最新代码
git pull origin main
# 进入后端目录,激活虚拟环境并更新依赖
cd backend
source venv/bin/activate
pip install -r requirements.txt
# 重启服务
# pm2 restart nexus-backend
触发记录


浙公网安备 33010602011771号