「MOSS - 03」MOSS队:DevOps环境准备
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023年北航敏捷软件工程 |
这个作业的要求在哪里 | 团队项目-DevOps环境准备 |
我们在这个课程的目标是 | 熟悉敏捷开发的方法论,并通过实际开发产品进行实践。 |
这个作业在哪个具体方面帮助我实现目标 | 通过在一个小的Vue项目demo中使用GitHub Actions和腾讯云服务器协作进行持续化部署和运维在实战中进行训练,为团队运维做好准备 |
Author: MOSS队
Date: 2023.03.28
Part 1 服务器选择
服务器数量
本项目采用一台服务器,原因如下:
-
本项目不具有潮汐流量特点,预期访问量较为平缓稳定,目前不需要弹性服务等
-
本项目践行了MVP最小可行产品策略,在项目早期使用最简单、最易用、最直接的方式快速提供稳定服务,不在此阶段过多考虑边际效益较低的分布式部署、弹性部署等,将精力集中在开发最小可用产品上
服务器配置参数
属性 | 值 | 原因 |
---|---|---|
厂商 | 腾讯云 | 性价比高,可用性强,大牌子,中文资料多 |
产品类型 | 轻量应用服务器 | 性价比高 |
地域 | 北京 | 离得近 |
计费方式 | 包年 | 便宜 |
CPU | 4核 | 性能强,可以满足运算要求 |
内存 | 8GB | 性能强,可以满足多线程要求 |
带宽 | 12Mbps | 性能强,可以满足峰值流量 |
系统盘 | 180GB SSD | 性能强,可以满足服务部署 |
数据盘 | 无,仅有一块系统盘 | 目前没有大量数据存储的需求且系统盘180GB已经足够大 |
Part 2 团队沟通,协作与代码管理
团队的沟通的平台和方式
沟通平台 | 沟通方式 | 使用场景 | 原因 |
---|---|---|---|
线下 | 面对面 | 重要事项需要集中讨论和表决 | 面对面效率高,表达清晰 |
腾讯会议 | 线上 | 较不重要事项讨论/紧急事项 | 方便快捷,随时随地 |
微信 | 线上 | 零碎需求/即时讨论 | 即时通讯,高效快捷 |
notion | 线上 | 事项表决/会议资料预习 | 书面资料,完整高效,不要求即时性 |
团队协作、代码管理工具链
本条不再赘述上条介绍的【团队的沟通的平台和方式】已有内容
工具 | 使用场景 |
---|---|
微信 | 即时通信 |
腾讯会议 | 快速讨论 |
notion | 公共知识库、文档集散 |
GitHub | 代码托管平台 |
GitHub Actions | CI/CD |
Part 3 CI/CD
CI/CD 演示仓库
仓库地址:https://github.com/saltyfishyjk/MOSS_DevOps_Demo
目录简介
Vue_CICD_Demo
该目录下的index.html
是本仓库用于演示的小型Vue项目的前端页面,通过每位成员在其中完成个人内容来展示CI/CD。
Vue项目的其余配置文件等均部署在服务器,没有上传到本仓库以保证仓库的简洁清晰。
.github/workflows
该目录下的main.yml
是GitHub Actions控制文件,用于设置CI/CD工作流。
效果展示页面
访问http://101.43.219.110:5173/
以查看CI/CD的部署效果。
yml
配置文件
name: MOSS CI/CD demo
# You may pin to the exact commit or the version.
# uses: TencentCloudBase/cloudbase-action@7d4cf39abbdc53bad003a47c18d968c8a28916a2
# 触发此CI/CD的事件
on:
push: # push时
branches: # 选定push到哪个分支会触发该事件
- master # 只在push到master分支时触发
paths-ignore: # 以下文件的变更不会触发部署
- README.md
jobs:
# build job
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout # 这一step的名称为Checkout
uses: actions/checkout@master
- name: Deploy
uses: appleboy/ssh-action@master # 使用该套件执行ssh命令
with:
host: ${{ secrets.HOST}} # 隐藏敏感信息
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: | # 进入指定目录拉取代码并运行
cd /home/ubuntu/tmp/MOSS_DevOps_Demo/Vue_CICD_Demo
git pull
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
npm install
nohup npm run dev serve >web.log 2>&1 & exit