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

项目 内容
这个作业属于哪个课程 软件工程
这个作业的要求在哪里 [T.3] 团队基础设施及 DevOps 准备
我在这个课程的目标是 完整开发一个成熟软件,提升自己的工程和技术能力
这个作业在哪个具体方面帮助我实现目标 探讨技术层面基础,包括云服务器、协作平台、代码仓库管理、CI/CD 流程等,为后续项目开发打下坚实的工程化基础。

一、服务器

我们选择阿里云作为云服务提供商,为我们的“Agent学习助手”项目提供稳定、可靠的线上运行环境。

类别 配置 说明
厂商 阿里云 国内主流云厂商,提供稳定的服务和丰富的安全选项,适合团队项目初期的部署需求。
规格 ecs.e-c1m1.large 轻量级实例,性价比较高,适合承载我们的 Web 应用和数据库服务。
地域 华北2(北京)G 选择北京地域,靠近团队所在地,可有效降低网络延迟,提升用户访问体验。
镜像 Alibaba Cloud Linux 3.2104 LTS 64bit 阿里云官方操作系统,与云平台深度集成,安全性和稳定性有保障,且社区支持良好。
存储 40GB ESSD Entry 云盘 系统盘容量为40GB,对于团队项目初期的代码、数据库及日志存储完全足够。
带宽 100 Mbps (峰值) 带宽上限为100Mbps,能够满足项目初期用户访问和后台数据传输的需求。
CPU / 内存 2 核 (vCPU) / 2 GiB 2核2G的配置足以支撑知识问答(RAG)、题库资料查询及论坛功能的初期并发请求。
计费方式 包年包月 采用包年包月的计费方式,成本可控,且避免了按量付费可能产生的意外费用。

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

我们团队为“Agent学习助手”项目建立了一套高效的沟通和协作工具链,以确保信息同步和开发流程顺畅。

团队沟通

使用 微信群 进行日常沟通和快速问题讨论。

使用 GitHub Issues 管理 Bug、功能需求和技术讨论,确保所有问题都有记录和跟进。

任务分发

使用 飞书文档 进行任务分发和进度跟踪。我们创建了一个共享的任务看板,将项目分解为多个子任务,并分配给相应成员,便于整体把控项目进度。

代码管理

  • 代码仓库:使用 GitHub 作为唯一的代码托管平台,所有代码均通过 Git 进行版本控制。我们创建了以下两个仓库:
    • Backend: 后端项目源代码。
    • Frontend:前端项目源代码。
    • RAG: RAG项目源代码
  • 分支策略
    • main: 生产环境代码,始终可部署。该分支受保护,所有变更必须通过 Pull Request 合并。
    • develop: 开发环境主干,用于集成各功能分支的代码。
    • feature/<功能名>: 用于新功能的开发和测试。
    • fix/<bug名>: 用于修复线上或测试环境中的 Bug。
  • 提交规范
    • 我们遵循 <type>(<scope>): <subject> 的提交格式,例如 feat(rag): add vector store integration,以保证提交历史的清晰度和可读性。

三、CI/CD触发测试

为确保代码质量并实现自动化部署,我们在 GitHub 仓库中配置了 CI/CD 流水线。

name: Deploy Vue to Alibaba Cloud (pnpm)

on:
  push:
    branches: ['release']

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup pnpm
        uses: pnpm/action-setup@v2
        with:
          version: 8 

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: 'pnpm' 

      - name: Install dependencies
        run: pnpm install --no-frozen-lockfile # 严格依赖lockfile

      - name: Build project
        run: pnpm run build

      - name: Install rsync
        run: sudo apt-get update && sudo apt-get install -y rsync

      - name: Deploy to Server with rsync
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
        run: |
          echo "$SSH_PRIVATE_KEY" > private_key
          chmod 600 private_key
          rsync -avz --delete --exclude='.user.ini' -e "ssh -i private_key -p ${{ secrets.SERVER_SSH_PORT }} -o StrictHostKeyChecking=no" \
            ./dist/ ${{ secrets.SERVER_USER }}@47.93.81.21:/www/wwwroot/47.93.81.21/Lerning_Agent/dist
          rm -f private_key

image-20260415171534303

posted @ 2026-04-15 17:18  HakimiSN  阅读(8)  评论(0)    收藏  举报