[T.3] 团队项目:团队基础设施及 DevOps 准备

这个作业属于哪个课程 北航2026年春季软件工程
这个作业的要求在哪里 [T.3] 团队项目:团队基础设施及 DevOps 准备
我在这个课程的目标是 提升团队协作与项目管理能力
这个作业在哪个具体方面帮助我实现目标 完成团队基础设施及 DevOps 准备

一、服务器选择

  • 厂商:阿里云

  • 地域:华北2(北京)F

离北京最近,网络延迟较低。

  • 计费方式:按量付费

使用了学生的300元免费权益,购买了固定额度的算例包,有效期6个月。若后续需要长期维护服务器,可择机转为包年包月。

  • CPU & 内存:2核4G

项目SciWeaver整体作为一个“Web 应用 + PDF 解析 + 调用外部大模型 API + 异步任务处理”的轻中度负载项目。核心算力消耗集中在 PDF 全文解析与大模型提取论文关键点(Paper Key Points),但这两项均通过异步任务队列在后台执行,且大模型推理本身交由 DeepSeek / Qwen 等外部 API 完成,服务器不承担本地训练或模型推理。综合考虑并发任务数与响应要求,2核4G配置可满足当前阶段需求。

  • 带宽:按流量计费,峰值5Mbps

流量消耗主要来自用户上传 PDF 论文文件;其他功能(如前端页面加载、API 调用响应)带宽占用较小。由于单次上传可能涉及多篇 PDF,流量波动较大,因此采用按使用流量计费模式以控制成本。为保障上传体验并防止突发流量占用过多带宽,设置峰值 5Mbps。

  • 系统盘:ESSD Entry 云盘 40 GiB (2120 IOPS)

阿里云服务器的默认配置,IO 速度较快,可满足 PDF 文件临时存储与解析过程中的读写需求。

  • 数据盘:无

数据主要用于存储用户上传的 PDF 论文、解析结果日志以及知识图谱导出文件。通常一篇论文 PDF 大小在 5MB 左右,结合前期用户规模,预计数据总量不超过 20GB,暂不需要额外挂载数据盘。后续若用户量增长或需长期归档 PDF 原文,可灵活添加 20–50GB 的 SSD 数据盘。

二、团队沟通,协作与代码管理

  • 沟通平台:微信小组群
  • 工具链
    • 项目管理:飞书
    • 代码管理:GitHub
      飞书记录需求分解、任务分配并管理项目完成情况,代码上传到GitHub管理

三、CI/CD

配置脚本:

name: CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  backend-test:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:15
        env:
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: test_db
        ports:
          - 5432:5432
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    steps:
      - uses: actions/checkout@v4
      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - name: Cache pip
        uses: actions/cache@v4
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('backend/requirements.txt') }}
      - name: Install dependencies
        run: |
          cd backend
          pip install -r requirements.txt
          pip install pytest pytest-cov
      - name: Run tests
        env:
          DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db
        run: |
          cd backend
          pytest --cov=. --cov-report=xml

  frontend-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Cache npm
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.os }}-node-${{ hashFiles('frontend/package-lock.json') }}
      - name: Install dependencies
        run: |
          cd frontend
          npm ci
      - name: Run tests
        run: |
          cd frontend
          npm run test --if-present
      - name: ci/cd test
        run: |
          echo "Hello, ${{ github.actor }}! 你的 CI 触发成功了。1 Ciallo~(∠・ω< )⌒☆ test"

image

posted @ 2026-04-14 22:21  BBnomoney  阅读(21)  评论(0)    收藏  举报