[T.3] 团队项目:团队基础设施及 DevOps 准备
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 首页 - 2025年春季软件工程(罗杰、任健) - 北京航空航天大学 - 班级博客 - 博客园 |
| 这个作业的要求在哪里 | T.3 团队项目:团队基础设施及 DevOps 准备 - 作业 - 2025年春季软件工程(罗杰、任健) - 班级博客 - 博客园 |
| 我在这个课程的目标是 | 学习软件工程的方法论,强化成员团队合作能力,并通过实际开发产品进行实践。 |
| 这个作业在哪个具体方面帮助我实现目标 | 为团队开发打好技术方面的基础:云服务器,沟通协作平台,代码管理平台,CI/CD触发(自动化操作) |
一、服务器选择
本团队决定使用一台服务器,详情如下:
| 类别 | 配置 |
|---|---|
| 厂商 | 腾讯云 |
| 规格 | 云服务器CVM |
| 机型 | BF1.MEDIUM4 |
| 地域 | 北京 |
| 可用区 | 北京六区 |
| 镜像 | Ubuntu Server 24.04 LTS 64位 |
| 存储 | 系统盘(70GB 增强型SSD云硬盘) |
| 带宽 | 3Mbps |
| CPU数量 | 2核 |
| CPU型号名称 | General Processers |
| 内存 | 4G |
| 数据盘 | 1块 150GiB 塔强型SSD云硬盘 |
选择一台服务器的原因:
- 首先,在开发、测试、初期运行环境下,用户数量较少,数据量较少,多台服务器性能溢出,而且反而增加了代码开发(涉及到多后端ip),部署和数据同步等问题。
- 其次,从项目特性角度来考虑,用户的信息首先保存在本地,由于收发匿名信息不存在即时性,上传速度、计算速度和接收速度不影响应用流畅度,几乎不影响用户体验,因此对服务器带宽,计算性能等因素没有太大要求。
- 综上,一台服务器完全可以满足初期运行对计算和存储的要求,足以给用户带来完整良好的体验。
各类配置的原因:
- 厂商选择,腾讯云:有限时降价秒杀,最划算。
- 地域选择,北京六区:距离近,延迟低,ping往返时间平均8ms。
- CPU****,2核General Processers:有足够的处理能力来支持应用服务器和数据库交互的需求。
- 内存****,4GB:能有效支持当前的应用负载,包括数据上传,算法推荐和数据库等。
- 带宽,3Mbps:因应用对数据上传速度几乎无要求,故当前带宽足以满足初期用户量的数据传输需求,包括数据上传下载和用户并发访问。
- 系统盘,70GB SSD:容量可以满足操作系统和保存代码,应用程序及一部分数据的要求。
- 数据盘,150****GB SSD: 本应用需保存用户上传的大量信息,因此需要较大的数据盘保存。
- 计费方式,1年477.88元:1年的运行使得团队有足够的时间开发测试app并根据用户反馈调整,打磨出相对成熟的作品。若产品推广成功得到用户的认可,便可换用更大的服务器以满足日益增长的需求。同时,因程序需要上传下载大量的图片视频等,故而通过流量计费不如固定时间划算。
二、团队沟通协作与代码管理
沟通 + 协作平台
飞书 --一站式工作协同,组织管理工具
我们团队使用飞书聊天交流,并通过丰富的内置工具加速协作。
优势
- 飞书的聊天中,对于自己发送的消息,可以查看群里所有人的已读未读情况,减少已读不回等情况的发生,促进效率。
- 飞书的聊天记录同步好于微信,即使进行卸载app等操作,数据仍保存在云端,并下载回本地同步,不担心丢失记录。
- 飞书内置了大量的工具,尤其是云文档功能最为突出,可以直接在其中进行协作编辑,支持共同在线编辑文档,ppt等文件
- 可在其中记录会议内容,写markdown文档,分工等等,极大的提高了协作效率
- 飞书内置视频会议,可方便进行线上讨论。
- 飞书同时有app与pc端,app方便随时查收消息接收通知,pc端方便文档编辑等工作任务。
代码管理平台
Github,最稳定且功能最丰富完整的代码管理平台。团队成员都有git基础,并通过T4任务学习了通过分支操作实现的并行开发,因此可以很好的使用Github进行代码协作。
三、CI/CD触发
仓库地址
配置文件
name: Django CI
on:
push:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.10.6]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Tests
run: |
python manage.py test
触发截图
[T.3] 团队项目:团队基础设施及 DevOps 准备的更多相关文章
- 在Azure DevOps Server (TFS) 中修改团队项目名称
概述 [团队项目]: 在Azure DevOps Server (原名TFS)中,团队项目(Team Project)是一个最基本的数据组织容器,包含了一个团队或者信息系统中的所有信息,包括源代码.文 ...
- AxureRp 打开SVN上的团队项目
打开Axure,在菜单项中,点击 "团队" 菜单,选择 "获取团队项目": 切换到 "SVN" 选项, 填写正确的Axure项目的路径,打开 ...
- 团队项目——编写项目的Spec
团队项目--编写项目的Spec 一.Spec的目标 spec主要用来说明软件的外部功能,和用户的交互情况,主要用来说明软件内部的设计.图片编辑器是与生活息息相关的一个必备软件,随的流行, ...
- [BI项目记]-搭建代码管理环境之创建团队项目
此篇主要介绍如何基于TFS环境创建团队项目来进行项目代码的版本管理工作,这一系列将侧重于BI项目,当然对于其它项目也同样适用. 在TFS里开始一个项目,我们首先需要创建一个团队项目. 在Team Ex ...
- tfs中如何创建团队项目及如何操作团队项目
创建团队项目集合 tfs server管理控制台\团队项目集合页面.选择'创建集合'链接,按向导即可创建项目集合. 创建团队项目 创建好团队项目集合后,就要开始创建团队项目了. 进入vs,连接上tfs ...
- Surprise团队项目总结
Surprise团队项目总结 项目实现情况 实现人人模式:2个用户在同一台电脑上进行切磋下棋,即实现五子棋游戏的基本功能 实现人机模式:初级模式已经实现,可以进行人机交互,但是还没达到智能判断下棋点 ...
- 团队项目——站立会议 DAY11
团队项目--站立会议 DAY11 团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱 今日(2016/5/20),站立会议已进行了两周时间,将这一周所遇到的问题和心 ...
- 团队项目——站立会议 DAY8
第八次站立会议记录: 参会人员:张靖颜,钟灵毓秀,何玥,赵莹,王梓萱 项目进展: 1.张靖颜:在反复修改和审查后,处理功能模块代码出错处,完善并运行. 2.钟灵毓秀:再次检查代码,运行报错处的代码修改 ...
- 团队项目——站立会议DAY6
团队项目--站立会议 DAY6 团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱 今日(2016/5/13),站立会议已进行了一周时间,大家将这一周所遇到的问题和 ...
- TFS - 使用微软测试管理器实现跨团队项目的测试用例管理
在团队项目之间实现测试用例和测试计划的共享,是很多客户关注的问题.尤其在开发产品+服务的团队中,对测试用例的共享要求比较高.下面就如何在Team Foundation Server中如何实现团队项目之 ...
随机推荐
- websocket-sharp:.NET平台上的WebSocket客户端与服务器开源库
推荐一个C#开发的,实现WebSocket功能的开源项目. 01 项目简介 websocket-sharp提供 WebSocket 客户端和服务器库,基于 C# 开发的,并遵循 WebSocket 协 ...
- cookie和session的详解与区别-copy
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- VirtualBox配置安装入门(Linux连不上网络和设置共享文件夹)
VirtualBox配置安装入门 一.设置虚拟网卡 1.安装了虚拟机之后,可以在网络选择网卡 网络分为网络地址转换(NAT).桥接网卡.内部网络.仅主机(Host-Only)网络,通用驱动.NAT网络 ...
- Air实现Go程序的热重载(热加载)
简介: air是Go的热加载工具,它可以监听文件或者目录的变化,自动编译,重启程序,提高开发的工作效率. 场景: 在代码修改后需要通过ctrl+c来停止项目,go run的方式来再次重启项目,在开发进 ...
- RestClient 通过拦截器实现请求加密
今天我发现了一个关于请求加密的有效写法,特此分享给大家.如果你的加密需求是将请求参数也包含在内,通常情况下,我们需要先将请求体转换成 JSON 格式或其他对象类型,再使用字符串的形式进行加密操作.以下 ...
- linux下创建idea的桌面快捷方式
!!!使用linux系统安装idea才会用到: 在桌面上,新建文件,命名为:idea.desktop , (或者在别的地方创建后再放到桌面) 使用 vim 编辑该文件(或者不新建,直接vi idea. ...
- Shell脚本常用写法
一.变量定义 | 赋值 | 输出 1.debugmap #!/bin/bash source /etc/profile # hive_json_tuple_params_orignal.tmp # e ...
- SpringCloud自定义loadbalancer实现标签路由
一.背景 最近前端反应开发环境有时候调接口会很慢,原因是有开发图方便将本地服务注册到开发环境,请求路由到开发本地导致, 为了解决该问题想到可以通过标签路由的方式避免该问题,实现前端联调和开发自测互不干 ...
- 【COM3D2Mod 制作教程(4)】实战!制作身体部分(上)
[COM3D2Mod 制作教程(4)]实战!制作身体部分(上) 教程介绍 现在正式进入实战教程环节,我会以我的实际制作过程详尽的教授每个细节,也因此受限于篇幅大小,"实战!制作身体部分&qu ...
- 学习理论:单阶段代理损失的(H, R) - 一致界证明
1 导引 我们在上一篇博客<学习理论:预测器-拒绝器多分类弃权学习>中介绍了弃权学习的基本概念和方法,其中包括了下列针对多分类问题的单阶段预测器-拒绝器弃权损失\(L_{\text{abs ...