73
社区成员




本次作业聚焦于团队的基础设施及 DevOps 准备。
注意:开始这次作业的前提是你们团队已经有了一个基本完善的选题。
大多数情况下,我们的项目需要租用合适的云服务器,方便之后的数据库/前端/后端部署。对于我们的软工项目来说,一般使用国内的云服务器即可。
国内主要的云厂商有阿里云,腾讯云和华为云等,而这些厂商都有相应的学生计划,以阿里云为例,有一个专门的学生免费服务器。腾讯云和华为云也都有类似的福利,同学们根据需求和自己的调研确定一个厂商。
更多内容可以查看:如何选择服务器?
在选择了合适的厂商后,我们就需要选择合适的配置。主要从以下七个方面进行选择:
选择可以大致参考下列表格
配置 | 适用场景 |
---|---|
1核CPU/2G内存/1M公网带宽 | 个人博客、小型网站,Web应用程序,也可以适用于开发环境、代码存储及测试 |
2核CPU/4G内存/3M公网带宽 | 小程序、APP、论坛、门户类网站,企业运营活动,普通数据处理服务 |
4核CPU/8G内存/8M公网带宽 | APP、视频、购物类网站,ERP系统,大数据及实时在线或离线分析、深度学习、批量计算、视频编码等 |
8MCPU/16G内存/10M公网带宽 | 游戏开发,高性能科学和工程应用,数据分析、深度学习、批量计算等 |
更具体的可以查看:如何选择云服务器配置?
由PM在厂商官网完成实例购买,并尝试ssh登录服务器查看是否可用。(记得保存相关发票和订单截图,课程组会出手!)
一般建议由至少一个同学专门负责服务器维护管理,主要负责定期重启服务器、清理垃圾、部署服务等工作
如果需要让几个人来一起登录服务器工作,以linux系统为例,可以使用ssh密钥的方式添加他人的公钥到根目录的 .ssh/authorized_keys
文件中即可
开始在你们的服务器上部署相关服务吧!
有了服务器,我们继续考虑团队沟通,协作和代码管理的问题
团队沟通:一般采用微信、QQ、腾讯会议或者当面交流,也有团队使用过Discord平台。需要让成员沟通使用时高效、简单、易用
团队协作:协作指如何分发任务,如何共同完成文档。一般来说包含共享文档编辑和看板任务管理。可以选用Notion,Coding,Gitlab,金山/腾讯文档等
代码管理:代码的存储,版本控制和CI/CD。主要有github,gitee,gitlab,腾讯coding平台等
提供几个往年的团队的选择例子:
工欲善其事必先利其器,每个团队都需要自行商议决定使用什么样的沟通+协作+代码管理工具链
这里以Gitlab为例介绍如何使用CI/CD
注:这里仅供参考,Github,Coding,Gitlab的CI/CD没有明显好坏,可以选择最顺手的使用
首先gitlab是基于group进行操作的,因此第一步首先需要建立group才能在内部进行项目创建,为了方便组员的CI测试,这里单独创建了一个setest group并拉进了所有的软工小组成员,Setest是示例项目,里面有一个python文件实现了快速排序
我们在项目中创建一个yml文件,可以直接使用模板
先在左侧栏的Settings里找到CI/CD,进入之后将Runners旁边的Expand点开,之后点击里面的安装指导,按照里面的命令在任意的服务器上装好服务并完成register就好了
笔者使用的是linux amd64服务器,命令参考如下:
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Give it permissions to execute
sudo chmod +x /usr/local/bin/gitlab-runner
# Create a GitLab CI user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
# Install and run as service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
sudo gitlab-runner register --url $URL --registration-token $REGISTRATION_TOKEN
注意这里的$URL和$REGISTRATION_TOKEN替换成相应的url和token就好了。同时可以参考选择 ruby2.7
的 docker
进行部署
这样操作完之后,Runners展开的左侧就会有runners列表,这时需要点进你的服务器的编辑按钮,将内部的 Indicates whether this runner can pick jobs without tags
勾上就可以使用了
之后就可以提交commit触发CI/CD了
提供一些往届博客供参考
Github/Gitlab:https://blog.csdn.net/takivotoid/article/details/123436565
Coding:https://www.cnblogs.com/hair-duang-duang/p/16209131.html
服务器选择
团队沟通,协作与代码管理
CI/CD
由一名同学开启一个仓库,配置CI/CD并展示配置文件的脚本。
yaml
文件,github的action
配置文件,coding的Jenkinsfile
文件每名同学至少完成一次CI/CD触发,展示触发的列表截图,如下图: